diff --git a/js/dist/admin.js.map b/js/dist/admin.js.map index 95fa4d1..7964d32 100644 --- a/js/dist/admin.js.map +++ b/js/dist/admin.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://@dem13n/discussion/cards/webpack/bootstrap","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['app']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/helpers/icon']\"","webpack://@dem13n/discussion/cards/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@dem13n/discussion/cards/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/Component']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Switch']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Button']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['tags/utils/sortTags']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/utils/saveSettings']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/components/UploadImageButton']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/components/LoadingModal']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/utils/Stream']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/utils/withAttr']\"","webpack://@dem13n/discussion/cards/./src/admin/components/switchTagList.js","webpack://@dem13n/discussion/cards/./src/admin/components/Settings.js","webpack://@dem13n/discussion/cards/./src/admin/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","constructor","SwitchTagList","oninit","vnode","this","tags","attrs","view","sortTags","app","store","all","map","tag","allowedTags","Switch","id","slug","state","length","includes","onchange","indexOf","splice","push","className","style","color","lineHeight","fontSize","marginLeft","isPrimary","position","icon","Component","Settings","settings","JSON","parse","data","dem13n_discussion_cards","content","fontWeight","marginRight","translator","trans","forum","attributes","dem13n_discussion_cards_default_imageUrl","attribute","dem13n_discussion_cards_default_image_path","onsubmit","UploadImageButton","previewText","cardBadges","cardFooter","Replies","onIndexPage","percent","desktopCardWidth","type","min","max","step","oninput","e","target","width","tabletCardWidth","smallCards","Button","loading","preventDefault","saveSettings","stringify","modal","show","LoadingModal","request","method","url","then","window","location","reload","ExtensionPage","initializers","add","extensionData","registerPage"],"mappings":"2BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,I,gBClFrDhC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAY,K,cCAzCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,wB,6BCArB,SAASC,EAAgB1B,EAAGqB,GAMzC,OALAK,EAAkBzB,OAAO0B,gBAAkB,SAAyB3B,EAAGqB,GAErE,OADArB,EAAE4B,UAAYP,EACPrB,IAGcA,EAAGqB,GCLb,SAASQ,EAAeC,EAAUC,GAC/CD,EAASX,UAAYlB,OAAOY,OAAOkB,EAAWZ,WAC9CW,EAASX,UAAUa,YAAcF,EACjC,EAAeA,EAAUC,G,iDCJ3BzC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,qB,eCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,6B,cCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,6B,eCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,wB,mBCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,mC,cCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,6B,qBCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,uC,cCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,kC,cCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,wB,cCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,0B,iNCYfQ,E,0GAEnBC,OAAA,SAAOC,GACL,YAAMD,OAAN,UAAaC,GACbC,KAAKC,KAAOD,KAAKE,MAAMD,M,EAGzBE,KAAA,WAAO,WAEL,OAAO5C,EAAE,YAAa,CACpBA,EAAE,aAAc,CACd6C,IAASC,IAAIC,MAAMC,IAAI,SAASC,KAAI,SAACC,GACnC,IAAMC,EAAc,EAAKT,KACzB,MAAO,CACL1C,EAAEoD,IAAQ,CACNC,GAAIH,EAAII,OACRC,QAAQJ,EAAYK,QAAUL,EAAYM,SAASP,EAAII,QACvDI,SAAU,WACRjB,KAAKc,OACiC,IAAlCJ,EAAYQ,QAAQlB,KAAKY,KAAcF,EAAYS,OAAOT,EAAYQ,QAAQlB,KAAKY,IAAK,GACxFF,EAAYU,KAAKpB,KAAKY,KAE5BS,UAAW,cACV9D,EAAE,KAAM,CACT+D,MAAO,CACLC,MAAOd,EAAIc,QACXC,WAAY,OACZC,SAAU,OACVC,WAAcjB,EAAIkB,aAAkC,OAAnBlB,EAAImB,WAAgC,EAAT,SAE7DC,IAAKpB,EAAIoB,QAASpB,EAAI/C,kB,GA9BIoE,K,iBCAtBC,E,0GAEnBjC,OAAA,SAAOC,GACL,YAAMD,OAAN,UAAaC,GACbC,KAAKgC,SAAWC,KAAKC,MAAM7B,IAAI8B,KAAKH,SAASI,yBAA2B,O,EAG1EC,QAAA,WAEE,IAAKrC,KAAKgC,SACR,OAAOzE,EAAE,0BAA2B,CAClCA,EAAE,aAAc,CACZ+D,MAAO,CAACC,MAAO,MAAOe,WAAY,SAEpCT,IAAK,8BAA+B,CAACP,MAAO,CAACG,SAAU,OAAQc,YAAa,UAC5ElC,IAAImC,WAAWC,MAAM,2CAI3B,IAAMT,EAAWhC,KAAKgC,SAMtB,OAJA3B,IAAIqC,MAAMP,KAAKQ,WAAWC,yCACxBvC,IAAIqC,MAAMG,UAAU,WAAa,WACjCxC,IAAI8B,KAAKH,SAASc,2CAEb,CACLvF,EAAE,0BAA2B,CAC3BA,EAAE,aAAc,CACdA,EAAE,OAAQ,CACRwF,SAAU/C,KAAK+C,SAASpE,KAAKqB,OAC5B,CACDzC,EAAE,cAAe,CACfA,EAAE,QAAS8C,IAAImC,WAAWC,MAAM,sCAChClF,EAAEyF,IAAmB,CAACtF,KAAM,4CAE9BH,EAAE,cAAe,CACfA,EAAEoD,IAAQ,CACNG,MAAOkB,EAASiB,cAAe,EAC/BhC,SAAU,WACRe,EAASiB,cAAe,IAEzB5C,IAAImC,WAAWC,MAAM,yCAG5BlF,EAAE,cAAe,CACfA,EAAEoD,IAAQ,CACNG,MAAOkB,EAASkB,aAAc,EAC9BjC,SAAU,WACRe,EAASkB,aAAc,IAG3B7C,IAAImC,WAAWC,MAAM,mCAGzBlF,EAAE,cAAe,CACfA,EAAEoD,IAAQ,CACNG,MAAOkB,EAASmB,WAChBlC,SAAU,WACRe,EAASmB,aAAc,IAExB9C,IAAImC,WAAWC,MAAM,uCAG5BlF,EAAE,cAAe,CACfA,EAAEoD,IAAQ,CACNG,MAAOkB,EAASoB,QAChBnC,SAAU,WACRe,EAASoB,UAAW,IAErB/C,IAAImC,WAAWC,MAAM,yCAG5BlF,EAAE,cAAe,CACfA,EAAEoD,IAAQ,CACNG,MAAOkB,EAASqB,YAChBpC,SAAU,WACRe,EAASqB,cAAe,IAEzBhD,IAAImC,WAAWC,MAAM,iDAG5BlF,EAAE,cAAe,CACfA,EAAE,QAAS8C,IAAImC,WAAWC,MAAM,2CAA4C,CAACa,QAAStB,EAASuB,kBAAoB,MACnHhG,EAAE,QAAS,CACTiG,KAAM,QACNC,IAAK,EACLC,IAAK,IACLC,KAAM,GACNvF,MAAO4D,EAASuB,kBAAoB,GACpCK,QAAS,SAAAC,GACP7B,EAASuB,iBAAmBM,EAAEC,OAAO1F,OAEvCkD,MAAO,CAACyC,MAAO,YAGnBxG,EAAE,cAAe,CACfA,EAAE,QAAS8C,IAAImC,WAAWC,MAAM,0CAA2C,CAACa,QAAStB,EAASgC,iBAAmB,MACjHzG,EAAE,QAAS,CACTiG,KAAM,QACNC,IAAK,EACLC,IAAK,IACLC,KAAM,GACNvF,MAAO4D,EAASgC,iBAAmB,GACnCJ,QAAS,SAAAC,GACP7B,EAASgC,gBAAkBH,EAAEC,OAAO1F,OAEtCkD,MAAO,CAACyC,MAAO,YAGnBxG,EAAE,cAAe,CACfA,EAAE,QAAS8C,IAAImC,WAAWC,MAAM,sCAChClF,EAAE,oBAAqB,CACrBiG,KAAM,SACNC,IAAK,EACLrF,MAAO4D,EAASiC,WAChBL,QAAS,SAAAC,GACP7B,EAASiC,WAAaJ,EAAEC,OAAO1F,WAIrCb,EAAE,cAAe,CACfA,EAAE,QAAS8C,IAAImC,WAAWC,MAAM,sCAChClF,EAAEsC,EAAe,CAACI,KAAM+B,EAAStB,cACjCnD,EAAE2G,IAAQ,CACNV,KAAM,SACNnC,UAAW,yBACX8C,QAASnE,KAAKmE,SACb9D,IAAImC,WAAWC,MAAM,gD,EAWtCM,SAAA,SAASc,GACPA,EAAEO,iBACEpE,KAAKmE,UACTnE,KAAKmE,SAAU,EACfE,IAAa,CACXjC,wBAAyBH,KAAKqC,UAAUtE,KAAKgC,YAE/C3B,IAAIkE,MAAMC,KAAKC,KACfpE,IAAIqE,QAAQ,CACRC,OAAQ,SACRC,IAAKvE,IAAIqC,MAAMG,UAAU,UAAY,WAEtCgC,MAAK,kBAAMC,OAAOC,SAASC,c,GAtJIC,KCRtC5E,IAAI6E,aAAaC,IAAI,2BAA2B,WAC9C9E,IAAI+E,cAAJ,IACO,2BACJC,aAAatD","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 28);\n","module.exports = flarum.core.compat['app'];","module.exports = flarum.core.compat['common/helpers/icon'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\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}","module.exports = flarum.core.compat['common/Component'];","module.exports = flarum.core.compat['common/components/Switch'];","module.exports = flarum.core.compat['common/components/Button'];","module.exports = flarum.core.compat['tags/utils/sortTags'];","module.exports = flarum.core.compat['admin/components/ExtensionPage'];","module.exports = flarum.core.compat['admin/utils/saveSettings'];","module.exports = flarum.core.compat['admin/components/UploadImageButton'];","module.exports = flarum.core.compat['admin/components/LoadingModal'];","module.exports = flarum.core.compat['common/utils/Stream'];","module.exports = flarum.core.compat['common/utils/withAttr'];","import Component from \"flarum/common/Component\";\r\n\r\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\r\nimport app from 'flarum/app';\r\nimport Stream from 'flarum/common/utils/Stream';\r\nimport Button from 'flarum/common/components/Button';\r\nimport saveSettings from 'flarum/admin/utils/saveSettings';\r\nimport Switch from 'flarum/common/components/Switch';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport withAttr from 'flarum/common/utils/withAttr';\r\nimport sortTags from 'flarum/tags/utils/sortTags';\r\n\r\nexport default class SwitchTagList extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.tags = this.attrs.tags;\r\n }\r\n\r\n view() {\r\n\r\n return m('.TagGroup', [\r\n m('ul.TagList', [\r\n sortTags(app.store.all('tags')).map((tag) => {\r\n const allowedTags = this.tags;\r\n return [\r\n m(Switch, {\r\n id: tag.slug(),\r\n state: (allowedTags.length) ? allowedTags.includes(tag.slug()) : false,\r\n onchange: function () {\r\n this.state\r\n ? allowedTags.indexOf(this.id) !== -1 && allowedTags.splice(allowedTags.indexOf(this.id), 1)\r\n : allowedTags.push(this.id);\r\n },\r\n className: 'switchTags'\r\n }, m(\"li\", {\r\n style: {\r\n color: tag.color(),\r\n lineHeight: '20px',\r\n fontSize: '16px',\r\n marginLeft: !(tag.isPrimary() || tag.position() === null) ? '20px' : 0,\r\n }\r\n }, icon(tag.icon()), tag.name())\r\n )\r\n ];\r\n })\r\n ])\r\n ])\r\n\r\n }\r\n\r\n}\r\n","import ExtensionPage from 'flarum/admin/components/ExtensionPage';\r\nimport app from 'flarum/app';\r\nimport Button from 'flarum/common/components/Button';\r\nimport saveSettings from 'flarum/admin/utils/saveSettings';\r\nimport Switch from 'flarum/common/components/Switch';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport UploadImageButton from 'flarum/admin/components/UploadImageButton';\r\nimport SwitchTagList from './switchTagList';\r\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\r\n\r\n\r\n\r\nexport default class Settings extends ExtensionPage {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.settings = JSON.parse(app.data.settings.dem13n_discussion_cards || null);\r\n }\r\n\r\n content() {\r\n\r\n if (!this.settings) {\r\n return m('.ExtensionPage-settings', [\r\n m('.container', {\r\n style: {color: 'red', fontWeight: 'bold'}\r\n },\r\n icon('fas fa-exclamation-triangle', {style: {fontSize: '24px', marginRight: '10px'}}),\r\n app.translator.trans('dem13n.admin.settings.settings_error'))\r\n ]);\r\n }\r\n\r\n const settings = this.settings;\r\n\r\n app.forum.data.attributes.dem13n_discussion_cards_default_imageUrl =\r\n app.forum.attribute(\"baseUrl\") + \"/assets/\" +\r\n app.data.settings.dem13n_discussion_cards_default_image_path;\r\n\r\n return [\r\n m('.ExtensionPage-settings', [\r\n m('.container', [\r\n m('Form', {\r\n onsubmit: this.onsubmit.bind(this),\r\n }, [\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.default_img')),\r\n m(UploadImageButton, {name: \"dem13n_discussion_cards_default_image\"}),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.previewText || false,\r\n onchange: () => {\r\n settings.previewText ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.preview_text')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.cardBadges || false,\r\n onchange: () => {\r\n settings.cardBadges ^= true\r\n },\r\n },\r\n app.translator.trans('dem13n.admin.settings.badges')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.cardFooter,\r\n onchange: () => {\r\n settings.cardFooter ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.actor_info')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.Replies,\r\n onchange: () => {\r\n settings.Replies ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.show_replies')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.onIndexPage,\r\n onchange: () => {\r\n settings.onIndexPage ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.output_on_index_page')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.desktop_card_width', {percent: settings.desktopCardWidth || 49})),\r\n m('input', {\r\n type: 'range',\r\n min: 1,\r\n max: 100,\r\n step: 0.1,\r\n value: settings.desktopCardWidth || 49,\r\n oninput: e => {\r\n settings.desktopCardWidth = e.target.value;\r\n },\r\n style: {width: '100%'}\r\n }),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.tablet_card_width', {percent: settings.tabletCardWidth || 49})),\r\n m('input', {\r\n type: 'range',\r\n min: 1,\r\n max: 100,\r\n step: 0.1,\r\n value: settings.tabletCardWidth || 49,\r\n oninput: e => {\r\n settings.tabletCardWidth = e.target.value;\r\n },\r\n style: {width: '100%'}\r\n }),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.small_cards')),\r\n m('input.FormControl', {\r\n type: 'number',\r\n min: 0,\r\n value: settings.smallCards,\r\n oninput: e => {\r\n settings.smallCards = e.target.value;\r\n }\r\n }),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.choose_tags')),\r\n m(SwitchTagList, {tags: settings.allowedTags}),\r\n m(Button, {\r\n type: 'submit',\r\n className: 'Button Button--primary',\r\n loading: this.loading\r\n }, app.translator.trans('core.admin.settings.submit_button')\r\n ),\r\n ]),\r\n ]),\r\n ])\r\n ])\r\n ]\r\n\r\n\r\n }\r\n\r\n onsubmit(e) {\r\n e.preventDefault();\r\n if (this.loading) return;\r\n this.loading = true;\r\n saveSettings({\r\n dem13n_discussion_cards: JSON.stringify(this.settings),\r\n });\r\n app.modal.show(LoadingModal);\r\n app.request({\r\n method: 'DELETE',\r\n url: app.forum.attribute('apiUrl') + '/cache',\r\n })\r\n .then(() => window.location.reload());\r\n }\r\n\r\n}\r\n","import app from 'flarum/app';\r\nimport Settings from './components/Settings';\r\n\r\n\r\napp.initializers.add('dem13n/discussion/cards', () => {\r\n app.extensionData\r\n .for('dem13n-discussion-cards')\r\n .registerPage(Settings)\r\n});\r\n\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://@dem13n/discussion/cards/webpack/bootstrap","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['app']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/helpers/icon']\"","webpack://@dem13n/discussion/cards/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@dem13n/discussion/cards/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/Component']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Switch']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Button']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['tags/utils/sortTags']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/utils/saveSettings']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/components/UploadImageButton']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['admin/components/LoadingModal']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/utils/Stream']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/utils/withAttr']\"","webpack://@dem13n/discussion/cards/./src/admin/components/switchTagList.js","webpack://@dem13n/discussion/cards/./src/admin/components/Settings.js","webpack://@dem13n/discussion/cards/./src/admin/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","constructor","SwitchTagList","oninit","vnode","this","tags","attrs","view","sortTags","app","store","all","map","tag","allowedTags","Switch","id","slug","state","length","includes","onchange","indexOf","splice","push","className","style","color","lineHeight","fontSize","marginLeft","isPrimary","position","icon","Component","Settings","settings","JSON","parse","data","dem13n_discussion_cards","content","fontWeight","marginRight","translator","trans","forum","attributes","dem13n_discussion_cards_default_imageUrl","attribute","dem13n_discussion_cards_default_image_path","onsubmit","UploadImageButton","previewText","cardBadges","cardFooter","Replies","onIndexPage","percent","desktopCardWidth","type","min","max","step","oninput","e","target","width","tabletCardWidth","smallCards","Button","loading","preventDefault","saveSettings","stringify","modal","show","LoadingModal","request","method","url","then","window","location","reload","ExtensionPage","initializers","add","extensionData","registerPage"],"mappings":"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","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 28);\n","module.exports = flarum.core.compat['app'];","module.exports = flarum.core.compat['common/helpers/icon'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\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}","module.exports = flarum.core.compat['common/Component'];","module.exports = flarum.core.compat['common/components/Switch'];","module.exports = flarum.core.compat['common/components/Button'];","module.exports = flarum.core.compat['tags/utils/sortTags'];","module.exports = flarum.core.compat['admin/components/ExtensionPage'];","module.exports = flarum.core.compat['admin/utils/saveSettings'];","module.exports = flarum.core.compat['admin/components/UploadImageButton'];","module.exports = flarum.core.compat['admin/components/LoadingModal'];","module.exports = flarum.core.compat['common/utils/Stream'];","module.exports = flarum.core.compat['common/utils/withAttr'];","import Component from \"flarum/common/Component\";\r\n\r\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\r\nimport app from 'flarum/app';\r\nimport Stream from 'flarum/common/utils/Stream';\r\nimport Button from 'flarum/common/components/Button';\r\nimport saveSettings from 'flarum/admin/utils/saveSettings';\r\nimport Switch from 'flarum/common/components/Switch';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport withAttr from 'flarum/common/utils/withAttr';\r\nimport sortTags from 'flarum/tags/utils/sortTags';\r\n\r\nexport default class SwitchTagList extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.tags = this.attrs.tags;\r\n }\r\n\r\n view() {\r\n\r\n return m('.TagGroup', [\r\n m('ul.TagList', [\r\n sortTags(app.store.all('tags')).map((tag) => {\r\n const allowedTags = this.tags;\r\n return [\r\n m(Switch, {\r\n id: tag.slug(),\r\n state: (allowedTags.length) ? allowedTags.includes(tag.slug()) : false,\r\n onchange: function () {\r\n this.state\r\n ? allowedTags.indexOf(this.id) !== -1 && allowedTags.splice(allowedTags.indexOf(this.id), 1)\r\n : allowedTags.push(this.id);\r\n },\r\n className: 'switchTags'\r\n }, m(\"li\", {\r\n style: {\r\n color: tag.color(),\r\n lineHeight: '20px',\r\n fontSize: '16px',\r\n marginLeft: !(tag.isPrimary() || tag.position() === null) ? '20px' : 0,\r\n }\r\n }, icon(tag.icon()), tag.name())\r\n )\r\n ];\r\n })\r\n ])\r\n ])\r\n\r\n }\r\n\r\n}\r\n","import ExtensionPage from 'flarum/admin/components/ExtensionPage';\r\nimport app from 'flarum/app';\r\nimport Button from 'flarum/common/components/Button';\r\nimport saveSettings from 'flarum/admin/utils/saveSettings';\r\nimport Switch from 'flarum/common/components/Switch';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport UploadImageButton from 'flarum/admin/components/UploadImageButton';\r\nimport SwitchTagList from './switchTagList';\r\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\r\n\r\n\r\n\r\nexport default class Settings extends ExtensionPage {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.settings = JSON.parse(app.data.settings.dem13n_discussion_cards || null);\r\n }\r\n\r\n content() {\r\n\r\n if (!this.settings) {\r\n return m('.ExtensionPage-settings', [\r\n m('.container', {\r\n style: {color: 'red', fontWeight: 'bold'}\r\n },\r\n icon('fas fa-exclamation-triangle', {style: {fontSize: '24px', marginRight: '10px'}}),\r\n app.translator.trans('dem13n.admin.settings.settings_error'))\r\n ]);\r\n }\r\n\r\n const settings = this.settings;\r\n\r\n app.forum.data.attributes.dem13n_discussion_cards_default_imageUrl =\r\n app.forum.attribute(\"baseUrl\") + \"/assets/\" +\r\n app.data.settings.dem13n_discussion_cards_default_image_path;\r\n\r\n return [\r\n m('.ExtensionPage-settings', [\r\n m('.container', [\r\n m('Form', {\r\n onsubmit: this.onsubmit.bind(this),\r\n }, [\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.default_img')),\r\n m(UploadImageButton, {name: \"dem13n_discussion_cards_default_image\"}),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.previewText || false,\r\n onchange: () => {\r\n settings.previewText ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.preview_text')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.cardBadges || false,\r\n onchange: () => {\r\n settings.cardBadges ^= true\r\n },\r\n },\r\n app.translator.trans('dem13n.admin.settings.badges')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.cardFooter,\r\n onchange: () => {\r\n settings.cardFooter ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.actor_info')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.Replies,\r\n onchange: () => {\r\n settings.Replies ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.show_replies')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m(Switch, {\r\n state: settings.onIndexPage,\r\n onchange: () => {\r\n settings.onIndexPage ^= true\r\n },\r\n }, app.translator.trans('dem13n.admin.settings.output_on_index_page')\r\n ),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.desktop_card_width', {percent: settings.desktopCardWidth || 49})),\r\n m('input', {\r\n type: 'range',\r\n min: 1,\r\n max: 100,\r\n step: 0.1,\r\n value: settings.desktopCardWidth || 49,\r\n oninput: e => {\r\n settings.desktopCardWidth = e.target.value;\r\n },\r\n style: {width: '100%'}\r\n }),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.tablet_card_width', {percent: settings.tabletCardWidth || 49})),\r\n m('input', {\r\n type: 'range',\r\n min: 1,\r\n max: 100,\r\n step: 0.1,\r\n value: settings.tabletCardWidth || 49,\r\n oninput: e => {\r\n settings.tabletCardWidth = e.target.value;\r\n },\r\n style: {width: '100%'}\r\n }),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.small_cards')),\r\n m('input.FormControl', {\r\n type: 'number',\r\n min: 0,\r\n value: settings.smallCards,\r\n oninput: e => {\r\n settings.smallCards = e.target.value;\r\n }\r\n }),\r\n ]),\r\n m('.Form-group', [\r\n m('label', app.translator.trans('dem13n.admin.settings.choose_tags')),\r\n m(SwitchTagList, {tags: settings.allowedTags}),\r\n m(Button, {\r\n type: 'submit',\r\n className: 'Button Button--primary',\r\n loading: this.loading\r\n }, app.translator.trans('core.admin.settings.submit_button')\r\n ),\r\n ]),\r\n ]),\r\n ])\r\n ])\r\n ]\r\n\r\n\r\n }\r\n\r\n onsubmit(e) {\r\n e.preventDefault();\r\n if (this.loading) return;\r\n this.loading = true;\r\n saveSettings({\r\n dem13n_discussion_cards: JSON.stringify(this.settings),\r\n });\r\n app.modal.show(LoadingModal);\r\n app.request({\r\n method: 'DELETE',\r\n url: app.forum.attribute('apiUrl') + '/cache',\r\n })\r\n .then(() => window.location.reload());\r\n }\r\n\r\n}\r\n","import app from 'flarum/app';\r\nimport Settings from './components/Settings';\r\n\r\n\r\napp.initializers.add('dem13n/discussion/cards', () => {\r\n app.extensionData\r\n .for('dem13n-discussion-cards')\r\n .registerPage(Settings)\r\n});\r\n\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/dist/forum.js b/js/dist/forum.js index f239705..07128fe 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -1,2 +1,2 @@ -module.exports=function(t){var e={};function s(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,s),r.l=!0,r.exports}return s.m=t,s.c=e,s.d=function(t,e,a){s.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},s.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(s.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)s.d(a,r,function(e){return t[e]}.bind(null,r));return a},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,"a",e),e},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.p="",s(s.s=27)}([function(t,e){t.exports=flarum.core.compat.app},function(t,e){t.exports=flarum.core.compat["common/helpers/icon"]},function(t,e,s){"use strict";function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,a(t,e)}s.d(e,"a",(function(){return r}))},function(t,e){t.exports=flarum.core.compat["common/Component"]},function(t,e){t.exports=flarum.core.compat["common/components/Link"]},,function(t,e){t.exports=flarum.core.compat["common/components/Button"]},function(t,e){t.exports=flarum.core.compat["forum/utils/DiscussionControls"]},function(t,e){t.exports=flarum.core.compat["tags/utils/sortTags"]},function(t,e){t.exports=flarum.core.compat["common/utils/string"]},function(t,e){t.exports=flarum.core.compat["common/helpers/avatar"]},function(t,e){t.exports=flarum.core.compat["common/utils/humanTime"]},function(t,e){t.exports=flarum.core.compat["common/helpers/username"]},function(t,e){t.exports=flarum.core.compat["common/components/Dropdown"]},,,function(t,e){t.exports=flarum.core.compat.extend},function(t,e){t.exports=flarum.core.compat["forum/components/IndexPage"]},function(t,e){t.exports=flarum.core.compat["forum/components/DiscussionList"]},function(t,e){t.exports=flarum.core.compat["forum/states/DiscussionListState"]},function(t,e){t.exports=flarum.core.compat["common/components/LoadingIndicator"]},function(t,e){t.exports=flarum.core.compat["common/components/Placeholder"]},function(t,e){t.exports=flarum.core},,,,,function(t,e,s){"use strict";function a(){return(a=Object.assign||function(t){for(var e=1;e/.exec(t.contentHtml());return"number"==typeof e&&e>0?r?r[e]:s?a:null:"~"===e?r:null}}var j=s(4),A=s.n(j),C=s(8),D=s.n(C);function B(t){if(t)return[D()(t).map((function(t){return[m(A.a,{className:"cardTag",style:{backgroundColor:t.color()},href:app.route("tag",{tags:t.slug()})},t.name())]}))]}var T=s(11),_=s.n(T),I=s(12),R=s.n(I),k=s(10),F=s.n(k),H=s(13),M=s.n(H),z=s(7),J=s.n(z),q=s(9),E=function(t){function e(){return t.apply(this,arguments)||this}Object(y.a)(e,t);var s=e.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e),this.discussion=this.attrs.discussion},s.view=function(){return this.discussion.posts().splice(-10).filter((function(t){return!t.isHidden()&&1!==t.number()&&"comment"===t.contentType()})).sort((function(t,e){return e.createdAt()-t.createdAt()})).map((function(t){return t.user()})).filter((function(t,e,s){return s.indexOf(t)===e})).reverse().splice(-3).map((function(t){return F()(t,{className:"Avatar--mini"})}))},e}(O.a),G=function(t){function e(){return t.apply(this,arguments)||this}Object(y.a)(e,t);var s=e.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e),this.discussion=this.attrs.discussion},s.view=function(){var t=this.discussion,e=JSON.parse(app.forum.attribute("dem13nDiscussionCards")),s={};s.className="wrapImg"+(1===e.cardFooter?" After":"");var a=L(t.firstPost()),r=a?m("img",{src:a,className:"previewCardImg",alt:t.title(),loading:"lazy"}):m("div",{className:"imgStub"});return m("div",{key:t.id(),"data-id":t.id(),className:"CardsListItem Card"+(t.isHidden()?" Hidden":"")},J.a.controls(t,this).toArray().length?m(M.a,{icon:"fas fa-ellipsis-v",className:"DiscussionListItem-controls",buttonClassName:"Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right"},J.a.controls(t,this).toArray()):"",m(A.a,{href:app.route.discussion(t,0),className:"cardLink"},1===e.cardBadges?w(t.badges().toArray()):"",m("div",s,r,1===e.cardFooter?m("div",{className:"cardFoot"},m("div",{className:"Author"},R()(t.user())),m("div",{className:"Date"},_()(t.createdAt()))):""),m("div",{className:"cardTags"},B(t.tags())),m("div",{className:"cardTitle"},m("h2",null,t.title())),1===e.previewText?m("div",{className:"previewPost"},Object(q.truncate)(t.firstPost().contentPlain(),150)):"",1===e.Replies?m("div",{className:"cardSpacer"},m(A.a,{className:"Replies",href:app.route.discussion(t,t.lastPostNumber())},m("div",{className:"Left"},m("div",{className:"Avatars"},m(E,{discussion:t})),m("div",{className:"Repcount"},app.translator.trans("dem13n.forum.replies",{count:t.replyCount()||"0"}))),m("div",{className:"Arrow"},S()("fas fa-angle-right")))):""))},e}(O.a),U=function(t){function e(){return t.apply(this,arguments)||this}Object(y.a)(e,t);var s=e.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e)},s.view=function(){var t=this.attrs.discussion,e=JSON.parse(app.forum.attribute("dem13nDiscussionCards")),s={};s.className="wrapImg"+(1===e.cardFooter?" After":"");var a=L(t.firstPost()),r=a?m("img",{src:a,className:"previewCardImg",alt:t.title(),loading:"lazy"}):m("div",{className:"imgStub"});return m("div",{key:t.id(),"data-id":t.id(),className:"CardsListItem List"+(t.isHidden()?" Hidden":"")},J.a.controls(t,this).toArray().length?m(M.a,{icon:"fas fa-ellipsis-v",className:"DiscussionListItem-controls",buttonClassName:"Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right"},J.a.controls(t,this).toArray()):"",m(A.a,{href:app.route.discussion(t,0),className:"cardLink"},1===e.cardBadges?w(t.badges().toArray()):"",m("div",{className:"cardGrid"},m("div",{className:"rowSpan-3 colSpan"},m("div",s,r,1===e.cardFooter?m("div",{className:"cardFoot"},m("div",{className:"Author"},R()(t.user())),m("div",{className:"Date"},_()(t.createdAt()))):"")),m("div",{className:"rowSpan-3 colSpan-2"},m("div",{className:"flexBox"},m("div",{className:"cardTitle"},m("h2",{title:t.title(),className:"title"},Object(q.truncate)(t.title(),80))),m("div",{className:"cardTags"},B(t.tags()))),1===e.previewText?m("div",{className:"previewPost"},Object(q.truncate)(t.firstPost().contentPlain(),150)):"","phone"===app.screen()&&1===e.Replies?m("div",{className:"cardSpacer"},m(A.a,{className:"Replies",href:app.route.discussion(t,t.lastPostNumber())},m("div",{className:"Left"},m("div",{className:"Avatars"},m(E,{discussion:t})),m("div",{className:"Repcount"},app.translator.trans("dem13n.forum.replies",{count:t.replyCount()||"0"}))),m("div",{className:"Arrow"},S()("fas fa-angle-right")))):""))))},e}(O.a),K={"dem13n/discussion/cards/components/CardItem":G,"dem13n/discussion/cards/components/ListItem":U,"dem13n/discussion/cards/components/LastReplies":E,"dem13n/discussion/cards/utils/craftTags":B,"dem13n/discussion/cards/utils/craftBadges":w},Q=s(22);n.a.initializers.add("dem13n/discussion/cards",(function(){Object(o.extend)(l.a.prototype,"requestParams",(function(t){n.a.current.matches(p.a)&&t.include.push(["firstPost","posts","posts.user"])})),Object(o.override)(c.a.prototype,"view",(function(t){var e,s=JSON.parse(n.a.forum.attribute("dem13nDiscussionCards")),a=this.attrs.state,r=a.getParams();if(a.isLoading()?e=m(v.a):a.moreResults&&(e=m(b.a,{className:"Button",onclick:a.loadMore.bind(a)},n.a.translator.trans("core.forum.discussion_list.load_more_button"))),a.isEmpty()){var o=n.a.translator.trans("core.forum.discussion_list.empty_text");return m("div",{className:"DiscussionList"},m(h.a,{text:o}))}return n.a.current.matches(p.a)&&(s.allowedTags.length&&s.allowedTags.includes(r.tags)||!r.tags&&1===s.onIndexPage)?m("div",{className:"DiscussionList"+(a.isSearchResults()?" DiscussionList--searchResults":"")},m("div",{class:"DiscussionList-discussions flexCard"},a.getPages().map((function(t){return t.items.map((function(t,e){return e/.exec(t.contentHtml());return"number"==typeof e&&e>0?n?n[e]:s?a:null:"~"===e?n:null}}var w=s(4),j=s.n(w),A=s(8),C=s.n(A);function D(t){if(t)return[C()(t).map((function(t){return[m(j.a,{className:"cardTag",style:{backgroundColor:t.color()},href:app.route("tag",{tags:t.slug()})},t.name())]}))]}var B=s(11),I=s.n(B),T=s(12),_=s.n(T),R=s(10),k=s.n(R),F=s(13),H=s.n(F),M=s(7),z=s.n(M),J=s(9),q=function(t){function e(){return t.apply(this,arguments)||this}Object(b.a)(e,t);var s=e.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e),this.discussion=this.attrs.discussion},s.view=function(){return this.discussion.posts().splice(-10).filter((function(t){return!t.isHidden()&&1!==t.number()&&"comment"===t.contentType()})).sort((function(t,e){return e.createdAt()-t.createdAt()})).map((function(t){return t.user()})).filter((function(t,e,s){return s.indexOf(t)===e})).reverse().splice(-3).map((function(t){return k()(t,{className:"Avatar--mini"})}))},e}(x.a),E=function(t){function e(){return t.apply(this,arguments)||this}Object(b.a)(e,t);var s=e.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e),this.discussion=this.attrs.discussion},s.view=function(){var t=this.discussion,e=JSON.parse(app.forum.attribute("dem13nDiscussionCards")),s={};s.className="wrapImg"+(1===e.cardFooter?" After":"");var a=S(t.firstPost()),n=a?m("img",{src:a,className:"previewCardImg",alt:t.title(),loading:"lazy"}):m("div",{className:"imgStub"});return m("div",{key:t.id(),"data-id":t.id(),className:"CardsListItem Card"+(t.isHidden()?" Hidden":"")},z.a.controls(t,this).toArray().length?m(H.a,{icon:"fas fa-ellipsis-v",className:"DiscussionListItem-controls",buttonClassName:"Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right"},z.a.controls(t,this).toArray()):"",m(j.a,{href:app.route.discussion(t,0),className:"cardLink"},1===e.cardBadges?L(t.badges().toArray()):"",m("div",s,n,1===e.cardFooter?m("div",{className:"cardFoot"},m("div",{className:"Author"},_()(t.user())),m("div",{className:"Date"},I()(t.createdAt()))):""),m("div",{className:"cardTags"},D(t.tags())),m("div",{className:"cardTitle"},m("h2",null,t.title())),1===e.previewText?m("div",{className:"previewPost"},Object(J.truncate)(t.firstPost().contentPlain(),150)):"",1===e.Replies?m("div",{className:"cardSpacer"},m(j.a,{className:"Replies",href:app.route.discussion(t,t.lastPostNumber())},m("div",{className:"Left"},m("div",{className:"Avatars"},m(q,{discussion:t})),m("div",{className:"Repcount"},app.translator.trans("dem13n.forum.replies",{count:t.replyCount()||"0"}))),m("div",{className:"Arrow"},P()("fas fa-angle-right")))):""))},e}(x.a),G=function(t){function e(){return t.apply(this,arguments)||this}Object(b.a)(e,t);var s=e.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e)},s.view=function(){var t=this.attrs.discussion,e=JSON.parse(app.forum.attribute("dem13nDiscussionCards")),s={};s.className="wrapImg"+(1===e.cardFooter?" After":"");var a=S(t.firstPost()),n=a?m("img",{src:a,className:"previewCardImg",alt:t.title(),loading:"lazy"}):m("div",{className:"imgStub"});return m("div",{key:t.id(),"data-id":t.id(),className:"CardsListItem List"+(t.isHidden()?" Hidden":"")},z.a.controls(t,this).toArray().length?m(H.a,{icon:"fas fa-ellipsis-v",className:"DiscussionListItem-controls",buttonClassName:"Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right"},z.a.controls(t,this).toArray()):"",m(j.a,{href:app.route.discussion(t,0),className:"cardLink"},1===e.cardBadges?L(t.badges().toArray()):"",m("div",{className:"cardGrid"},m("div",{className:"rowSpan-3 colSpan"},m("div",s,n,1===e.cardFooter?m("div",{className:"cardFoot"},m("div",{className:"Author"},_()(t.user())),m("div",{className:"Date"},I()(t.createdAt()))):"")),m("div",{className:"rowSpan-3 colSpan-2"},m("div",{className:"flexBox"},m("div",{className:"cardTitle"},m("h2",{title:t.title(),className:"title"},Object(J.truncate)(t.title(),80))),m("div",{className:"cardTags"},D(t.tags()))),1===e.previewText?m("div",{className:"previewPost"},Object(J.truncate)(t.firstPost().contentPlain(),150)):"","phone"===app.screen()&&1===e.Replies?m("div",{className:"cardSpacer"},m(j.a,{className:"Replies",href:app.route.discussion(t,t.lastPostNumber())},m("div",{className:"Left"},m("div",{className:"Avatars"},m(q,{discussion:t})),m("div",{className:"Repcount"},app.translator.trans("dem13n.forum.replies",{count:t.replyCount()||"0"}))),m("div",{className:"Arrow"},P()("fas fa-angle-right")))):""))))},e}(x.a),U={"dem13n/discussion/cards/components/CardItem":E,"dem13n/discussion/cards/components/ListItem":G,"dem13n/discussion/cards/components/LastReplies":q,"dem13n/discussion/cards/utils/craftTags":D,"dem13n/discussion/cards/utils/craftBadges":L},K=s(22);n.a.initializers.add("dem13n/discussion/cards",(function(){Object(o.extend)(u.a.prototype,"requestParams",(function(t){n.a.current.matches(d.a)&&t.include.push(["firstPost","posts","posts.user"])})),Object(o.override)(i.a.prototype,"view",(function(t){var e,s=JSON.parse(n.a.forum.attribute("dem13nDiscussionCards")),a=this.attrs.state,o=a.getParams();if(a.isInitialLoading()||a.isLoadingNext()?e=m(f.a,null):a.hasNext()&&(e=h.a.component({className:"Button",onclick:a.loadNext.bind(a)},n.a.translator.trans("core.forum.discussion_list.load_more_button"))),a.isEmpty()){var r=n.a.translator.trans("core.forum.discussion_list.empty_text");return m("div",{className:"DiscussionList"},m(g.a,{text:r}))}return n.a.current.matches(d.a)&&(s.allowedTags.length&&s.allowedTags.includes(o.tags)||!o.tags&&1===s.onIndexPage)?m("div",{className:"DiscussionList"+(a.isSearchResults()?" DiscussionList--searchResults":"")},m("div",{class:"DiscussionList-discussions flexCard"},a.getPages().map((function(t,e){return t.items.map((function(t,a){return a {\r\n return [m('span.cardBadge.Badge.Badge--' + badge.attrs.type, {\r\n 'data-original-title': badge.attrs.label[0],\r\n oncreate: (vnode) => $(vnode.dom).tooltip({placement: 'right'})\r\n }, [icon(badge.attrs.icon)])]\r\n })])];\r\n }\r\n};\r\n","export default function getPostImage(post, key = 1) {\r\n\r\n const regex = //;\r\n const image = app.forum.attribute('dem13nDiscussionCardsDefaultImage');\r\n const defaultImg = app.forum.attribute(\"baseUrl\") + \"/assets/\" + image;\r\n\r\n if (post) {\r\n const src = regex.exec(post.contentHtml());\r\n if (typeof key === \"number\" && key > 0) {\r\n return (src) ? src[key] : (image ? defaultImg : null);\r\n } else if (key === '~') {\r\n return src;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n","import Link from 'flarum/common/components/Link';\r\nimport sortTags from 'flarum/tags/utils/sortTags';\r\n\r\nexport default function craftTags(tags) {\r\n if (tags) {\r\n return [sortTags(tags).map(function (tag) {\r\n return [\r\n \r\n {tag.name()}\r\n \r\n ]\r\n })];\r\n }\r\n};\r\n","import Component from 'flarum/common/Component';\r\nimport avatar from 'flarum/common/helpers/avatar';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport Link from 'flarum/common/components/Link';\r\n\r\n\r\nexport default class LastReplies extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.discussion = this.attrs.discussion;\r\n }\r\n\r\n view() {\r\n const discussion = this.discussion;\r\n\r\n // let's assume that the last 10 posts will be enough for us to identify 3 unique users\r\n const posts = discussion.posts().splice(-10);\r\n\r\n const filteredPosts = posts\r\n .filter((post) => {\r\n return !post.isHidden() && post.number() !== 1 && post.contentType() === \"comment\";\r\n })\r\n .sort((a, b) => b.createdAt() - a.createdAt());\r\n\r\n const groupedUsers = filteredPosts\r\n .map(post => post.user())\r\n .filter((user, i, self) => {\r\n return self.indexOf(user) === i\r\n })\r\n .reverse()\r\n // last 3 users\r\n .splice(-3);\r\n\r\n\r\n return groupedUsers.map(user => {\r\n return avatar(user, {className: 'Avatar--mini'})\r\n })\r\n\r\n }\r\n\r\n}\r\n","import Component from \"flarum/common/Component\";\r\nimport craftBadges from \"../utils/craftBadges\";\r\nimport getPostImage from \"../helpers/getPostImage\";\r\nimport craftTags from \"../utils/craftTags\";\r\nimport humanTime from 'flarum/common/utils/humanTime';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport username from 'flarum/common/helpers/username';\r\nimport avatar from 'flarum/common/helpers/avatar';\r\nimport Dropdown from 'flarum/common/components/Dropdown';\r\nimport DiscussionControls from 'flarum/forum/utils/DiscussionControls';\r\nimport Link from 'flarum/common/components/Link';\r\nimport {truncate} from 'flarum/common/utils/string';\r\nimport LastReplies from './LastReplies';\r\n\r\n\r\nexport default class cardItem extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.discussion = this.attrs.discussion;\r\n }\r\n\r\n view() {\r\n const discussion = this.discussion;\r\n const settings = JSON.parse(app.forum.attribute('dem13nDiscussionCards'));\r\n const attrs = {};\r\n attrs.className = \"wrapImg\" + (settings.cardFooter === 1 ? \" After\" : '');\r\n const image = getPostImage(discussion.firstPost());\r\n const media = image\r\n ? {discussion.title()}\r\n\r\n :
\r\n\r\n return (\r\n
\r\n {DiscussionControls.controls(discussion, this).toArray().length\r\n ? m(Dropdown, {\r\n icon: 'fas fa-ellipsis-v',\r\n className: 'DiscussionListItem-controls',\r\n buttonClassName: 'Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right',\r\n }, DiscussionControls.controls(discussion, this).toArray())\r\n : ''}\r\n \r\n {settings.cardBadges === 1\r\n ? craftBadges(discussion.badges().toArray())\r\n : ''}\r\n\r\n
\r\n {media}\r\n\r\n {settings.cardFooter === 1\r\n ?
\r\n
\r\n {username(discussion.user())}\r\n
\r\n
\r\n {humanTime(discussion.createdAt())}\r\n
\r\n
\r\n : ''}\r\n\r\n
\r\n\r\n
{craftTags(discussion.tags())}
\r\n

{discussion.title()}

\r\n {settings.previewText === 1\r\n ?
{truncate(discussion.firstPost().contentPlain(), 150)}
\r\n : ''}\r\n\r\n {settings.Replies === 1\r\n ?
\r\n \r\n
\r\n
\r\n {m(LastReplies, {discussion: discussion})}\r\n
\r\n
\r\n {app.translator.trans('dem13n.forum.replies', {count: discussion.replyCount() || '0'})}\r\n
\r\n
\r\n
\r\n {icon('fas fa-angle-right')}\r\n
\r\n \r\n
\r\n : ''}\r\n\r\n \r\n
\r\n );\r\n\r\n }\r\n\r\n}\r\n","import Component from \"flarum/common/Component\";\r\nimport craftBadges from \"../utils/craftBadges\";\r\nimport getPostImage from \"../helpers/getPostImage\";\r\nimport craftTags from \"../utils/craftTags\";\r\nimport humanTime from 'flarum/common/utils/humanTime';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport username from 'flarum/common/helpers/username';\r\nimport avatar from 'flarum/common/helpers/avatar';\r\nimport Dropdown from 'flarum/common/components/Dropdown';\r\nimport DiscussionControls from 'flarum/forum/utils/DiscussionControls';\r\nimport Link from 'flarum/common/components/Link';\r\nimport {truncate} from 'flarum/common/utils/string';\r\nimport LastReplies from './LastReplies';\r\n\r\n\r\nexport default class listItem extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n }\r\n\r\n view() {\r\n\r\n const discussion = this.attrs.discussion;\r\n const settings = JSON.parse(app.forum.attribute('dem13nDiscussionCards'));\r\n const attrs = {};\r\n attrs.className = \"wrapImg\" + (settings.cardFooter === 1 ? \" After\" : '');\r\n const image = getPostImage(discussion.firstPost());\r\n const media = image\r\n ? {discussion.title()}\r\n\r\n :
\r\n\r\n return (\r\n
\r\n {DiscussionControls.controls(discussion, this).toArray().length\r\n ? m(Dropdown, {\r\n icon: 'fas fa-ellipsis-v',\r\n className: 'DiscussionListItem-controls',\r\n buttonClassName: 'Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right',\r\n }, DiscussionControls.controls(discussion, this).toArray())\r\n : ''}\r\n \r\n\r\n {settings.cardBadges === 1\r\n ? craftBadges(discussion.badges().toArray())\r\n : ''}\r\n\r\n
\r\n\r\n
\r\n
\r\n {media}\r\n\r\n {settings.cardFooter === 1\r\n ?
\r\n
\r\n {username(discussion.user())}\r\n
\r\n
\r\n {humanTime(discussion.createdAt())}\r\n
\r\n
\r\n : ''}\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

{truncate(discussion.title(), 80)}

\r\n
\r\n
{craftTags(discussion.tags())}
\r\n
\r\n\r\n {settings.previewText === 1\r\n ?
{truncate(discussion.firstPost().contentPlain(), 150)}
\r\n : ''}\r\n\r\n {app.screen() === 'phone' && settings.Replies === 1\r\n ?
\r\n \r\n
\r\n
\r\n {m(LastReplies, {discussion: discussion})}\r\n
\r\n
\r\n {app.translator.trans('dem13n.forum.replies', {count: discussion.replyCount() || '0'})}\r\n
\r\n
\r\n
\r\n {icon('fas fa-angle-right')}\r\n
\r\n \r\n
\r\n : ''}\r\n
\r\n
\r\n \r\n
\r\n );\r\n\r\n }\r\n\r\n}\r\n","import CardItem from './components/CardItem';\r\nimport ListItem from './components/ListItem';\r\nimport LastReplies from './components/LastReplies';\r\nimport craftTags from \"./utils/craftTags\";\r\nimport craftBadges from \"./utils/craftBadges\";\r\n\r\nexport default {\r\n 'dem13n/discussion/cards/components/CardItem': CardItem,\r\n 'dem13n/discussion/cards/components/ListItem': ListItem,\r\n 'dem13n/discussion/cards/components/LastReplies': LastReplies,\r\n 'dem13n/discussion/cards/utils/craftTags': craftTags,\r\n 'dem13n/discussion/cards/utils/craftBadges': craftBadges,\r\n};\r\n","import app from 'flarum/app';\r\nimport {extend, override} from 'flarum/extend';\r\nimport DiscussionList from 'flarum/forum/components/DiscussionList';\r\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\r\nimport IndexPage from 'flarum/forum/components/IndexPage';\r\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\r\nimport Placeholder from 'flarum/common/components/Placeholder';\r\nimport Button from 'flarum/common/components/Button';\r\nimport CardItem from './components/CardItem';\r\nimport ListItem from './components/ListItem';\r\n\r\n\r\napp.initializers.add('dem13n/discussion/cards', () => {\r\n\r\n extend(DiscussionListState.prototype, 'requestParams', function (params) {\r\n if (app.current.matches(IndexPage)) {\r\n params.include.push(['firstPost', 'posts', 'posts.user']);\r\n }\r\n });\r\n\r\n override(DiscussionList.prototype, 'view', function (original) {\r\n const settings = JSON.parse(app.forum.attribute('dem13nDiscussionCards'));\r\n const state = this.attrs.state;\r\n const params = state.getParams();\r\n let loading;\r\n if (state.isLoading()) {\r\n loading = m(LoadingIndicator);\r\n } else if (state.moreResults) {\r\n loading = m(Button, {\r\n className: 'Button',\r\n onclick: state.loadMore.bind(state),\r\n }, app.translator.trans('core.forum.discussion_list.load_more_button')\r\n );\r\n }\r\n if (state.isEmpty()) {\r\n const text = app.translator.trans('core.forum.discussion_list.empty_text');\r\n return
{m(Placeholder, {text})}
;\r\n }\r\n if (app.current.matches(IndexPage) && ((settings.allowedTags.length && settings.allowedTags.includes(params.tags)) || (!params.tags && settings.onIndexPage === 1))) {\r\n return (\r\n
\r\n
\r\n {state.getPages().map((pg) => {\r\n return pg.items.map((discussion, i) => {\r\n return (i < settings.smallCards) \r\n ? m(CardItem, {discussion: discussion}) \r\n : m(ListItem, {discussion: discussion})\r\n });\r\n })}\r\n
\r\n
{loading}
\r\n
\r\n );\r\n\r\n } else {\r\n return original();\r\n }\r\n })\r\n}, -1);\r\n\r\n\r\n// Expose compat API\r\nimport extCompat from './compat';\r\nimport { compat } from '@flarum/core/forum';\r\n\r\nObject.assign(compat, extCompat);\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://@dem13n/discussion/cards/webpack/bootstrap","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['app']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/helpers/icon']\"","webpack://@dem13n/discussion/cards/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@dem13n/discussion/cards/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/Component']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Link']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Button']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['forum/utils/DiscussionControls']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['tags/utils/sortTags']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/utils/string']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/helpers/avatar']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/utils/humanTime']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/helpers/username']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Dropdown']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['extend']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['forum/components/DiscussionList']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@dem13n/discussion/cards/external \"flarum.core.compat['common/components/Placeholder']\"","webpack://@dem13n/discussion/cards/external \"flarum.core\"","webpack://@dem13n/discussion/cards/./src/forum/utils/craftBadges.js","webpack://@dem13n/discussion/cards/./src/forum/helpers/getPostImage.js","webpack://@dem13n/discussion/cards/./src/forum/utils/craftTags.js","webpack://@dem13n/discussion/cards/./src/forum/components/LastReplies.js","webpack://@dem13n/discussion/cards/./src/forum/components/CardItem.js","webpack://@dem13n/discussion/cards/./src/forum/components/ListItem.js","webpack://@dem13n/discussion/cards/./src/forum/compat.js","webpack://@dem13n/discussion/cards/./src/forum/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","constructor","craftBadges","badges","length","map","badge","attrs","type","label","oncreate","vnode","$","dom","tooltip","placement","icon","getPostImage","post","image","app","forum","attribute","defaultImg","src","exec","contentHtml","craftTags","tags","sortTags","tag","className","style","backgroundColor","color","href","route","slug","LastReplies","oninit","this","discussion","view","posts","splice","filter","isHidden","number","contentType","sort","a","b","createdAt","user","self","indexOf","reverse","avatar","Component","cardItem","settings","JSON","parse","cardFooter","firstPost","media","alt","title","loading","id","data-id","DiscussionControls","controls","toArray","Dropdown","buttonClassName","cardBadges","username","humanTime","previewText","truncate","contentPlain","Replies","lastPostNumber","translator","trans","count","replyCount","listItem","screen","CardItem","ListItem","initializers","add","extend","DiscussionListState","params","current","matches","IndexPage","include","push","override","DiscussionList","original","state","getParams","isInitialLoading","isLoadingNext","hasNext","Button","component","onclick","loadNext","isEmpty","text","Placeholder","allowedTags","includes","onIndexPage","isSearchResults","class","getPages","pg","items","smallCards","assign","extCompat"],"mappings":"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","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 27);\n","module.exports = flarum.core.compat['app'];","module.exports = flarum.core.compat['common/helpers/icon'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\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}","module.exports = flarum.core.compat['common/Component'];","module.exports = flarum.core.compat['common/components/Link'];","module.exports = flarum.core.compat['common/components/Button'];","module.exports = flarum.core.compat['forum/utils/DiscussionControls'];","module.exports = flarum.core.compat['tags/utils/sortTags'];","module.exports = flarum.core.compat['common/utils/string'];","module.exports = flarum.core.compat['common/helpers/avatar'];","module.exports = flarum.core.compat['common/utils/humanTime'];","module.exports = flarum.core.compat['common/helpers/username'];","module.exports = flarum.core.compat['common/components/Dropdown'];","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['forum/components/IndexPage'];","module.exports = flarum.core.compat['forum/components/DiscussionList'];","module.exports = flarum.core.compat['forum/states/DiscussionListState'];","module.exports = flarum.core.compat['common/components/LoadingIndicator'];","module.exports = flarum.core.compat['common/components/Placeholder'];","module.exports = flarum.core;","import icon from 'flarum/common/helpers/icon';\r\n\r\nexport default function craftBadges(badges) {\r\n if (badges.length) {\r\n return [m('.cardBadges', [badges.map((badge) => {\r\n return [m('span.cardBadge.Badge.Badge--' + badge.attrs.type, {\r\n 'data-original-title': badge.attrs.label[0],\r\n oncreate: (vnode) => $(vnode.dom).tooltip({placement: 'right'})\r\n }, [icon(badge.attrs.icon)])]\r\n })])];\r\n }\r\n};\r\n","export default function getPostImage(post, key = 1) {\r\n\r\n const regex = //;\r\n const image = app.forum.attribute('dem13nDiscussionCardsDefaultImage');\r\n const defaultImg = app.forum.attribute(\"baseUrl\") + \"/assets/\" + image;\r\n\r\n if (post) {\r\n const src = regex.exec(post.contentHtml());\r\n if (typeof key === \"number\" && key > 0) {\r\n return (src) ? src[key] : (image ? defaultImg : null);\r\n } else if (key === '~') {\r\n return src;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n","import Link from 'flarum/common/components/Link';\r\nimport sortTags from 'flarum/tags/utils/sortTags';\r\n\r\nexport default function craftTags(tags) {\r\n if (tags) {\r\n return [sortTags(tags).map(function (tag) {\r\n return [\r\n \r\n {tag.name()}\r\n \r\n ]\r\n })];\r\n }\r\n};\r\n","import Component from 'flarum/common/Component';\r\nimport avatar from 'flarum/common/helpers/avatar';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport Link from 'flarum/common/components/Link';\r\n\r\n\r\nexport default class LastReplies extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.discussion = this.attrs.discussion;\r\n }\r\n\r\n view() {\r\n const discussion = this.discussion;\r\n\r\n // let's assume that the last 10 posts will be enough for us to identify 3 unique users\r\n const posts = discussion.posts().splice(-10);\r\n\r\n const filteredPosts = posts\r\n .filter((post) => {\r\n return !post.isHidden() && post.number() !== 1 && post.contentType() === \"comment\";\r\n })\r\n .sort((a, b) => b.createdAt() - a.createdAt());\r\n\r\n const groupedUsers = filteredPosts\r\n .map(post => post.user())\r\n .filter((user, i, self) => {\r\n return self.indexOf(user) === i\r\n })\r\n .reverse()\r\n // last 3 users\r\n .splice(-3);\r\n\r\n\r\n return groupedUsers.map(user => {\r\n return avatar(user, {className: 'Avatar--mini'})\r\n })\r\n\r\n }\r\n\r\n}\r\n","import Component from \"flarum/common/Component\";\r\nimport craftBadges from \"../utils/craftBadges\";\r\nimport getPostImage from \"../helpers/getPostImage\";\r\nimport craftTags from \"../utils/craftTags\";\r\nimport humanTime from 'flarum/common/utils/humanTime';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport username from 'flarum/common/helpers/username';\r\nimport avatar from 'flarum/common/helpers/avatar';\r\nimport Dropdown from 'flarum/common/components/Dropdown';\r\nimport DiscussionControls from 'flarum/forum/utils/DiscussionControls';\r\nimport Link from 'flarum/common/components/Link';\r\nimport {truncate} from 'flarum/common/utils/string';\r\nimport LastReplies from './LastReplies';\r\n\r\n\r\nexport default class cardItem extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n this.discussion = this.attrs.discussion;\r\n }\r\n\r\n view() {\r\n const discussion = this.discussion;\r\n const settings = JSON.parse(app.forum.attribute('dem13nDiscussionCards'));\r\n const attrs = {};\r\n attrs.className = \"wrapImg\" + (settings.cardFooter === 1 ? \" After\" : '');\r\n const image = getPostImage(discussion.firstPost());\r\n const media = image\r\n ? {discussion.title()}\r\n\r\n :
\r\n\r\n return (\r\n
\r\n {DiscussionControls.controls(discussion, this).toArray().length\r\n ? m(Dropdown, {\r\n icon: 'fas fa-ellipsis-v',\r\n className: 'DiscussionListItem-controls',\r\n buttonClassName: 'Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right',\r\n }, DiscussionControls.controls(discussion, this).toArray())\r\n : ''}\r\n \r\n {settings.cardBadges === 1\r\n ? craftBadges(discussion.badges().toArray())\r\n : ''}\r\n\r\n
\r\n {media}\r\n\r\n {settings.cardFooter === 1\r\n ?
\r\n
\r\n {username(discussion.user())}\r\n
\r\n
\r\n {humanTime(discussion.createdAt())}\r\n
\r\n
\r\n : ''}\r\n\r\n
\r\n\r\n
{craftTags(discussion.tags())}
\r\n

{discussion.title()}

\r\n {settings.previewText === 1\r\n ?
{truncate(discussion.firstPost().contentPlain(), 150)}
\r\n : ''}\r\n\r\n {settings.Replies === 1\r\n ?
\r\n \r\n
\r\n
\r\n {m(LastReplies, {discussion: discussion})}\r\n
\r\n
\r\n {app.translator.trans('dem13n.forum.replies', {count: discussion.replyCount() || '0'})}\r\n
\r\n
\r\n
\r\n {icon('fas fa-angle-right')}\r\n
\r\n \r\n
\r\n : ''}\r\n\r\n \r\n
\r\n );\r\n\r\n }\r\n\r\n}\r\n","import Component from \"flarum/common/Component\";\r\nimport craftBadges from \"../utils/craftBadges\";\r\nimport getPostImage from \"../helpers/getPostImage\";\r\nimport craftTags from \"../utils/craftTags\";\r\nimport humanTime from 'flarum/common/utils/humanTime';\r\nimport icon from 'flarum/common/helpers/icon';\r\nimport username from 'flarum/common/helpers/username';\r\nimport avatar from 'flarum/common/helpers/avatar';\r\nimport Dropdown from 'flarum/common/components/Dropdown';\r\nimport DiscussionControls from 'flarum/forum/utils/DiscussionControls';\r\nimport Link from 'flarum/common/components/Link';\r\nimport {truncate} from 'flarum/common/utils/string';\r\nimport LastReplies from './LastReplies';\r\n\r\n\r\nexport default class listItem extends Component {\r\n\r\n oninit(vnode) {\r\n super.oninit(vnode);\r\n }\r\n\r\n view() {\r\n\r\n const discussion = this.attrs.discussion;\r\n const settings = JSON.parse(app.forum.attribute('dem13nDiscussionCards'));\r\n const attrs = {};\r\n attrs.className = \"wrapImg\" + (settings.cardFooter === 1 ? \" After\" : '');\r\n const image = getPostImage(discussion.firstPost());\r\n const media = image\r\n ? {discussion.title()}\r\n\r\n :
\r\n\r\n return (\r\n
\r\n {DiscussionControls.controls(discussion, this).toArray().length\r\n ? m(Dropdown, {\r\n icon: 'fas fa-ellipsis-v',\r\n className: 'DiscussionListItem-controls',\r\n buttonClassName: 'Button Button--icon Button--flat Slidable-underneath Slidable-underneath--right',\r\n }, DiscussionControls.controls(discussion, this).toArray())\r\n : ''}\r\n \r\n\r\n {settings.cardBadges === 1\r\n ? craftBadges(discussion.badges().toArray())\r\n : ''}\r\n\r\n
\r\n\r\n
\r\n
\r\n {media}\r\n\r\n {settings.cardFooter === 1\r\n ?
\r\n
\r\n {username(discussion.user())}\r\n
\r\n
\r\n {humanTime(discussion.createdAt())}\r\n
\r\n
\r\n : ''}\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

{truncate(discussion.title(), 80)}

\r\n
\r\n
{craftTags(discussion.tags())}
\r\n
\r\n\r\n {settings.previewText === 1\r\n ?
{truncate(discussion.firstPost().contentPlain(), 150)}
\r\n : ''}\r\n\r\n {app.screen() === 'phone' && settings.Replies === 1\r\n ?
\r\n \r\n
\r\n
\r\n {m(LastReplies, {discussion: discussion})}\r\n
\r\n
\r\n {app.translator.trans('dem13n.forum.replies', {count: discussion.replyCount() || '0'})}\r\n
\r\n
\r\n
\r\n {icon('fas fa-angle-right')}\r\n
\r\n \r\n
\r\n : ''}\r\n
\r\n
\r\n \r\n
\r\n );\r\n\r\n }\r\n\r\n}\r\n","import CardItem from './components/CardItem';\r\nimport ListItem from './components/ListItem';\r\nimport LastReplies from './components/LastReplies';\r\nimport craftTags from \"./utils/craftTags\";\r\nimport craftBadges from \"./utils/craftBadges\";\r\n\r\nexport default {\r\n 'dem13n/discussion/cards/components/CardItem': CardItem,\r\n 'dem13n/discussion/cards/components/ListItem': ListItem,\r\n 'dem13n/discussion/cards/components/LastReplies': LastReplies,\r\n 'dem13n/discussion/cards/utils/craftTags': craftTags,\r\n 'dem13n/discussion/cards/utils/craftBadges': craftBadges,\r\n};\r\n","import app from 'flarum/app';\nimport {extend, override} from 'flarum/extend';\nimport DiscussionList from 'flarum/forum/components/DiscussionList';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Placeholder from 'flarum/common/components/Placeholder';\nimport Button from 'flarum/common/components/Button';\nimport CardItem from './components/CardItem';\nimport ListItem from './components/ListItem';\n\n\napp.initializers.add('dem13n/discussion/cards', () => {\n\n extend(DiscussionListState.prototype, 'requestParams', function (params) {\n if (app.current.matches(IndexPage)) {\n params.include.push(['firstPost', 'posts', 'posts.user']);\n }\n });\n\n override(DiscussionList.prototype, 'view', function (original) {\n const settings = JSON.parse(app.forum.attribute('dem13nDiscussionCards'));\n const state = this.attrs.state;\n const params = state.getParams();\n let loading;\n if (state.isInitialLoading() || state.isLoadingNext()) {\n loading = ;\n } else if (state.hasNext()) {\n loading = Button.component(\n {\n className: 'Button',\n onclick: state.loadNext.bind(state),\n },\n app.translator.trans('core.forum.discussion_list.load_more_button')\n );\n }\n if (state.isEmpty()) {\n const text = app.translator.trans('core.forum.discussion_list.empty_text');\n return
{m(Placeholder, {text})}
;\n }\n if (app.current.matches(IndexPage) && ((settings.allowedTags.length && settings.allowedTags.includes(params.tags)) || (!params.tags && settings.onIndexPage === 1))) {\n return (\n
\n
\n {state.getPages().map((pg, o) => {\n return pg.items.map((discussion, i) => {\n return (i < settings.smallCards && o === 0)\n ? m(CardItem, {discussion: discussion})\n : m(ListItem, {discussion: discussion})\n });\n })}\n
\n
{loading}
\n
\n );\n\n } else {\n return original();\n }\n })\n}, -1);\n\n\n// Expose compat API\nimport extCompat from './compat';\nimport {compat} from '@flarum/core/forum';\n\nObject.assign(compat, extCompat);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/package-lock.json b/js/package-lock.json index 110d1c2..89daf29 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "@dem13n/discussion/cards", "dependencies": { - "flarum-webpack-config": "0.1.0-beta.10", + "flarum-webpack-config": "1.0.0", "webpack": "^4.43.0", "webpack-cli": "^3.3.11" } @@ -23,9 +23,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", - "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", "engines": { "node": ">=6.9.0" } @@ -211,9 +211,9 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "dependencies": { "@babel/types": "^7.14.5" }, @@ -386,9 +386,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -413,9 +413,9 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", - "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.14.5", @@ -550,11 +550,11 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", - "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", "dependencies": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", @@ -822,6 +822,20 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", @@ -915,9 +929,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", - "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1096,9 +1110,9 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", - "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", + "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.14.5" }, @@ -1359,6 +1373,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz", + "integrity": "sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.14.6", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-typescript": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", @@ -1389,16 +1419,16 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.5.tgz", - "integrity": "sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz", + "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==", "dependencies": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.14.5", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -1407,7 +1437,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-proposal-private-methods": "^7.14.5", @@ -1433,7 +1463,7 @@ "@babel/plugin-transform-block-scoping": "^7.14.5", "@babel/plugin-transform-classes": "^7.14.5", "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", "@babel/plugin-transform-dotall-regex": "^7.14.5", "@babel/plugin-transform-duplicate-keys": "^7.14.5", "@babel/plugin-transform-exponentiation-operator": "^7.14.5", @@ -1445,7 +1475,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.5", "@babel/plugin-transform-modules-systemjs": "^7.14.5", "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", "@babel/plugin-transform-new-target": "^7.14.5", "@babel/plugin-transform-object-super": "^7.14.5", "@babel/plugin-transform-parameters": "^7.14.5", @@ -1453,7 +1483,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -1464,7 +1494,7 @@ "babel-plugin-polyfill-corejs2": "^0.2.2", "babel-plugin-polyfill-corejs3": "^0.2.2", "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.14.0", + "core-js-compat": "^3.15.0", "semver": "^6.3.0" }, "engines": { @@ -1508,6 +1538,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz", + "integrity": "sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-typescript": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { "version": "7.14.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", @@ -1533,16 +1579,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", "dependencies": { "@babel/code-frame": "^7.14.5", "@babel/generator": "^7.14.5", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", + "@babel/parser": "^7.14.7", "@babel/types": "^7.14.5", "debug": "^4.1.0", "globals": "^11.1.0" @@ -1563,6 +1609,11 @@ "node": ">=6.9.0" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.15", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", + "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==" + }, "node_modules/@types/json-schema": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", @@ -1746,6 +1797,14 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-walk": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz", + "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2320,9 +2379,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", + "version": "1.0.30001241", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", + "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/browserslist" @@ -2633,9 +2692,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", - "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", + "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", "dependencies": { "browserslist": "^4.16.6", "semver": "7.0.0" @@ -2842,6 +2901,11 @@ "npm": ">=1.2" } }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -2854,9 +2918,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.752", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz", - "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==" + "version": "1.3.766", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.766.tgz", + "integrity": "sha512-u2quJ862q9reRKh/je3GXis3w38+RoXH1J9N3XjtsS6NzmUAosNsyZgUVFZPN/ZlJ3v6T0rTyZR3q/J5c6Sy5w==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -3307,22 +3371,26 @@ } }, "node_modules/flarum-webpack-config": { - "version": "0.1.0-beta.10", - "resolved": "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-0.1.0-beta.10.tgz", - "integrity": "sha512-Iri/5sGBW4ebUQIZw9thR3LdS/avhdlgqgOxy2so1Abh6IyVNjaHInPgHNJSCMxbvfQJz4K3kcsbIpjwi3YB+g==", - "dependencies": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-transform-object-assign": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/preset-env": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@babel/runtime": "^7.0.0", - "babel-loader": "^8.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-1.0.0.tgz", + "integrity": "sha512-T+olIRaIVetPJMP8xlbMnp7tzT/d/ZWI6Mr7twRBdsKbKO7dpKS2+fjnKL6QqNYgOLElT/TWrRSbTp7EiL1yXA==", + "dependencies": { + "@babel/core": "^7.14.3", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-transform-object-assign": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.14.3", + "@babel/plugin-transform-runtime": "^7.14.3", + "@babel/preset-env": "^7.14.2", + "@babel/preset-react": "^7.13.13", + "@babel/preset-typescript": "^7.13.0", + "@babel/runtime": "^7.14.0", + "babel-loader": "^8.2.2", + "typescript": "^4.3.2", + "webpack-bundle-analyzer": "^4.4.2" }, "peerDependencies": { - "webpack": "^4.0.0" + "webpack": "^4.46.0" } }, "node_modules/flush-write-stream": { @@ -3501,6 +3569,20 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4038,6 +4120,11 @@ "node": ">=8" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -4143,6 +4230,17 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, + "node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -4457,6 +4555,14 @@ "wrappy": "1" } }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -4713,6 +4819,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The", "engines": { "node": ">=0.4.x" } @@ -5130,6 +5237,19 @@ "node": ">=0.10.0" } }, + "node_modules/sirv": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz", + "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==", + "dependencies": { + "@polka/url": "^1.0.0-next.15", + "mime": "^2.3.1", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -5795,6 +5915,14 @@ "node": ">=0.10.0" } }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "engines": { + "node": ">=6" + } + }, "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -5805,6 +5933,18 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "node_modules/typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -6187,6 +6327,111 @@ } } }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", + "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==", + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/webpack-cli": { "version": "3.3.12", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", @@ -6297,6 +6542,26 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "node_modules/ws": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz", + "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -6394,9 +6659,9 @@ } }, "@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", - "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==" + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==" }, "@babel/core": { "version": "7.14.6", @@ -6530,9 +6795,9 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "requires": { "@babel/types": "^7.14.5" } @@ -6660,9 +6925,9 @@ } }, "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==" + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.14.5", @@ -6675,9 +6940,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", - "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.14.5", @@ -6758,11 +7023,11 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", - "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", "requires": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", @@ -6937,6 +7202,14 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-transform-arrow-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", @@ -6994,9 +7267,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", - "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" } @@ -7103,9 +7376,9 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", - "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", + "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", "requires": { "@babel/helper-create-regexp-features-plugin": "^7.14.5" } @@ -7258,6 +7531,16 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-transform-typescript": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz", + "integrity": "sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.6", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-typescript": "^7.14.5" + } + }, "@babel/plugin-transform-unicode-escapes": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", @@ -7276,16 +7559,16 @@ } }, "@babel/preset-env": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.5.tgz", - "integrity": "sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz", + "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==", "requires": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.14.5", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -7294,7 +7577,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-proposal-private-methods": "^7.14.5", @@ -7320,7 +7603,7 @@ "@babel/plugin-transform-block-scoping": "^7.14.5", "@babel/plugin-transform-classes": "^7.14.5", "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", "@babel/plugin-transform-dotall-regex": "^7.14.5", "@babel/plugin-transform-duplicate-keys": "^7.14.5", "@babel/plugin-transform-exponentiation-operator": "^7.14.5", @@ -7332,7 +7615,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.5", "@babel/plugin-transform-modules-systemjs": "^7.14.5", "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", "@babel/plugin-transform-new-target": "^7.14.5", "@babel/plugin-transform-object-super": "^7.14.5", "@babel/plugin-transform-parameters": "^7.14.5", @@ -7340,7 +7623,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -7351,7 +7634,7 @@ "babel-plugin-polyfill-corejs2": "^0.2.2", "babel-plugin-polyfill-corejs3": "^0.2.2", "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.14.0", + "core-js-compat": "^3.15.0", "semver": "^6.3.0" } }, @@ -7380,6 +7663,16 @@ "@babel/plugin-transform-react-pure-annotations": "^7.14.5" } }, + "@babel/preset-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz", + "integrity": "sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-typescript": "^7.14.5" + } + }, "@babel/runtime": { "version": "7.14.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", @@ -7399,16 +7692,16 @@ } }, "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", "requires": { "@babel/code-frame": "^7.14.5", "@babel/generator": "^7.14.5", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", + "@babel/parser": "^7.14.7", "@babel/types": "^7.14.5", "debug": "^4.1.0", "globals": "^11.1.0" @@ -7423,6 +7716,11 @@ "to-fast-properties": "^2.0.0" } }, + "@polka/url": { + "version": "1.0.0-next.15", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", + "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==" + }, "@types/json-schema": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", @@ -7600,6 +7898,11 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" }, + "acorn-walk": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz", + "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==" + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -8059,9 +8362,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==" + "version": "1.0.30001241", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", + "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==" }, "chalk": { "version": "2.4.2", @@ -8320,9 +8623,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-compat": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", - "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", + "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", "requires": { "browserslist": "^4.16.6", "semver": "7.0.0" @@ -8494,6 +8797,11 @@ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -8506,9 +8814,9 @@ } }, "electron-to-chromium": { - "version": "1.3.752", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz", - "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==" + "version": "1.3.766", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.766.tgz", + "integrity": "sha512-u2quJ862q9reRKh/je3GXis3w38+RoXH1J9N3XjtsS6NzmUAosNsyZgUVFZPN/ZlJ3v6T0rTyZR3q/J5c6Sy5w==" }, "elliptic": { "version": "6.5.4", @@ -8870,19 +9178,23 @@ } }, "flarum-webpack-config": { - "version": "0.1.0-beta.10", - "resolved": "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-0.1.0-beta.10.tgz", - "integrity": "sha512-Iri/5sGBW4ebUQIZw9thR3LdS/avhdlgqgOxy2so1Abh6IyVNjaHInPgHNJSCMxbvfQJz4K3kcsbIpjwi3YB+g==", - "requires": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-transform-object-assign": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/preset-env": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@babel/runtime": "^7.0.0", - "babel-loader": "^8.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-1.0.0.tgz", + "integrity": "sha512-T+olIRaIVetPJMP8xlbMnp7tzT/d/ZWI6Mr7twRBdsKbKO7dpKS2+fjnKL6QqNYgOLElT/TWrRSbTp7EiL1yXA==", + "requires": { + "@babel/core": "^7.14.3", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-transform-object-assign": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.14.3", + "@babel/plugin-transform-runtime": "^7.14.3", + "@babel/preset-env": "^7.14.2", + "@babel/preset-react": "^7.13.13", + "@babel/preset-typescript": "^7.13.0", + "@babel/runtime": "^7.14.0", + "babel-loader": "^8.2.2", + "typescript": "^4.3.2", + "webpack-bundle-analyzer": "^4.4.2" } }, "flush-write-stream": { @@ -9018,6 +9330,14 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -9408,6 +9728,11 @@ "p-locate": "^4.1.0" } }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -9497,6 +9822,11 @@ } } }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -9760,6 +10090,11 @@ "wrappy": "1" } }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" + }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -10308,6 +10643,16 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, + "sirv": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz", + "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==", + "requires": { + "@polka/url": "^1.0.0-next.15", + "mime": "^2.3.1", + "totalist": "^1.0.0" + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -10835,6 +11180,11 @@ "repeat-string": "^1.6.1" } }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -10845,6 +11195,11 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==" + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -11171,6 +11526,77 @@ } } }, + "webpack-bundle-analyzer": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", + "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==", + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "webpack-cli": { "version": "3.3.12", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", @@ -11251,6 +11677,12 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "ws": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz", + "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==", + "requires": {} + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/js/src/forum/index.js b/js/src/forum/index.js index 3dee5b8..a6b9c11 100644 --- a/js/src/forum/index.js +++ b/js/src/forum/index.js @@ -23,13 +23,15 @@ app.initializers.add('dem13n/discussion/cards', () => { const state = this.attrs.state; const params = state.getParams(); let loading; - if (state.isLoading()) { - loading = m(LoadingIndicator); - } else if (state.moreResults) { - loading = m(Button, { + if (state.isInitialLoading() || state.isLoadingNext()) { + loading = ; + } else if (state.hasNext()) { + loading = Button.component( + { className: 'Button', - onclick: state.loadMore.bind(state), - }, app.translator.trans('core.forum.discussion_list.load_more_button') + onclick: state.loadNext.bind(state), + }, + app.translator.trans('core.forum.discussion_list.load_more_button') ); } if (state.isEmpty()) { @@ -40,12 +42,12 @@ app.initializers.add('dem13n/discussion/cards', () => { return (
- {state.getPages().map((pg) => { - return pg.items.map((discussion, i) => { - return (i < settings.smallCards) - ? m(CardItem, {discussion: discussion}) - : m(ListItem, {discussion: discussion}) - }); + {state.getPages().map((pg, o) => { + return pg.items.map((discussion, i) => { + return (i < settings.smallCards && o === 0) + ? m(CardItem, {discussion: discussion}) + : m(ListItem, {discussion: discussion}) + }); })}
{loading}
@@ -61,6 +63,6 @@ app.initializers.add('dem13n/discussion/cards', () => { // Expose compat API import extCompat from './compat'; -import { compat } from '@flarum/core/forum'; +import {compat} from '@flarum/core/forum'; Object.assign(compat, extCompat);