HEX
Server: Apache
System: Linux server1.ariadata.co 4.18.0-553.120.1.el8_10.x86_64 #1 SMP Mon Apr 20 18:04:27 EDT 2026 x86_64
User: nepi (1051)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,show_source,popen,proc_open
Upload Files
File: /home/nepi/public_html/public/admin/js/settings_permissions.d378e8b8.js.map
{"version":3,"sources":["webpack:///./src/routes/settings/permissions.vue?fd42","webpack:///./src/components/permissions/permissions.vue?d407","webpack:///./src/components/permissions/permissions-row.vue?5ebb","webpack:///./src/routes/settings/permissions.vue?c18a","webpack:///./src/components/permissions/permissions.vue?c56f","webpack:///./src/components/permissions/permissions-header.vue?cdf1","webpack:///./src/components/permissions/permissions-header.vue","webpack:///./src/components/permissions/permissions-row.vue?e1e6","webpack:///./src/components/permissions/permissions-toggle.vue?f933","webpack:///src/components/permissions/permissions-toggle.vue","webpack:///./src/components/permissions/permissions-toggle.vue?1d8c","webpack:///./src/components/permissions/permissions-toggle.vue","webpack:///src/components/permissions/permissions-row.vue","webpack:///./src/components/permissions/permissions-row.vue?4227","webpack:///./src/components/permissions/permissions-row.vue","webpack:///src/components/permissions/permissions.vue","webpack:///./src/components/permissions/permissions.vue?8647","webpack:///./src/components/permissions/permissions.vue","webpack:///src/routes/settings/permissions.vue","webpack:///./src/routes/settings/permissions.vue?41d3","webpack:///./src/routes/settings/permissions.vue","webpack:///./src/components/permissions/permissions-toggle.vue?1bfe","webpack:///./src/components/permissions/permissions-header.vue?b926"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","currentProjectKey","$t","_e","staticClass","breadcrumb","slot","isNew","isSystem","removing","on","$event","confirmRemove","editing","saving","save","_v","_s","permissions","statuses","permissionFields","setPermission","fields","role","Object","assign","roleEdits","id","stageValue","name","remove","staticRenderFns","toggleAll","keys","rows","length","_l","permission","key","mapping","$emit","model","value","callback","$$v","showDirectus","expression","$tc","directives","rawName","script","component","class","system","$helpers","formatTitle","permissionName","substring","preventDefault","setAll","getCombinedVal","setAllStatuses","permissionOptions","limited","fieldState","active","create","emitValue","read","update","delete","comment","fieldsSelect","collection","_m","getFieldSettingsPerStatus","status","$create","status_blacklist","statusSelect","statusInfo","confirm","text","field","blacklist","includes","toggleField","write","toggleStatus","none","option"],"mappings":"0NAAA,yBAA6jB,EAAG,G,kCCAhkB,yBAA6jB,EAAG,G,2DCAhkB,yBAAikB,EAAG,G,yCCApkB,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAS,MAAEI,EAAG,MAAM,CAACA,EAAG,WAAW,CAACE,MAAM,CAAC,YAAa,IAAMN,EAAIO,kBAAoB,kBAAmB,SAAW,MAAOP,EAAS,MAAEI,EAAG,UAAU,CAACE,MAAM,CAAC,KAAO,gBAAgB,MAAQ,UAAU,MAAQN,EAAIQ,GAAG,kBAAkB,KAAOR,EAAIQ,GAAG,0BAA0BR,EAAIS,MAAM,GAAGL,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,WAAW,CAACE,MAAM,CAAC,WAAaN,EAAIW,WAAW,YAAa,IAAMX,EAAIO,kBAAoB,kBAAmB,SAAW,KAAK,CAACH,EAAG,WAAW,CAACQ,KAAK,WAAW,CAAGZ,EAAIa,OAAUb,EAAIc,SAAuPd,EAAIS,KAAjPL,EAAG,kBAAkB,CAACE,MAAM,CAAC,QAAUN,EAAIe,SAAS,MAAQf,EAAIQ,GAAG,UAAU,KAAO,iBAAiB,aAAa,QAAQ,mBAAmB,SAAS,cAAc,eAAeQ,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAIkB,eAAgB,MAAkBd,EAAG,kBAAkB,CAACE,MAAM,CAAC,UAAYN,EAAImB,QAAQ,QAAUnB,EAAIoB,OAAO,MAAQpB,EAAIQ,GAAG,QAAQ,KAAO,QAAQ,mBAAmB,kCAAkC,aAAa,6BAA6BQ,GAAG,CAAC,MAAQhB,EAAIqB,SAAS,IAAI,GAAGjB,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACV,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIQ,GAAG,mBAAoBR,EAAW,QAAEI,EAAG,WAAW,CAACM,YAAY,aAAaJ,MAAM,CAAC,MAAQ,YAAY,CAACN,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,sBAAsB,OAAOJ,EAAG,gBAAgB,CAACE,MAAM,CAAC,UAAYN,EAAIwB,aAAexB,EAAIyB,UAAU,YAAczB,EAAIwB,YAAY,SAAWxB,EAAIyB,SAAS,OAASzB,EAAI0B,kBAAkBV,GAAG,CAAC,MAAQhB,EAAI2B,iBAAkB3B,EAAI4B,QAAU5B,EAAI6B,KAAMzB,EAAG,SAAS,CAACE,MAAM,CAAC,OAASN,EAAI4B,OAAO,OAASE,OAAOC,OAAO,GAAI/B,EAAI6B,KAAM7B,EAAIgC,WAAW,cAAchC,EAAI6B,KAAKI,GAAG,WAAa,kBAAkBjB,GAAG,CAAC,cAAchB,EAAIkC,cAAclC,EAAIS,KAAMT,EAAiB,cAAEI,EAAG,SAAS,CAACE,MAAM,CAAC,GAAK,UAAU,CAACF,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,SAAS,QAAUN,EAAIQ,GAAG,2BAA4B,CAAE2B,KAAMnC,EAAI6B,KAAKM,OAAQ,eAAenC,EAAIQ,GAAG,UAAU,QAAUR,EAAIe,UAAUC,GAAG,CAAC,OAAS,SAASC,GAAQjB,EAAIkB,eAAgB,GAAO,QAAUlB,EAAIoC,WAAW,GAAGpC,EAAIS,KAAKL,EAAG,iBAAiB,CAACE,MAAM,CAAC,KAAO,KAAK,CAACF,EAAG,OAAO,CAACM,YAAY,aAAa,CAACV,EAAIsB,GAAG,oBAAoB,IAC/lEe,EAAkB,G,yMCDlB,EAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAW,QAAEI,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAACN,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,kBAAkB,mBAAmB,sBAAsB,GAAGF,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACN,EAAG,uBAAuB,CAACY,GAAG,CAAC,aAAahB,EAAIsC,aAAalC,EAAG,MAAM,CAACM,YAAY,QAAQ,CAAmC,IAAjCoB,OAAOS,KAAKvC,EAAIwC,MAAMC,OAAcrC,EAAG,WAAW,CAACM,YAAY,yBAAyBJ,MAAM,CAAC,MAAQ,SAAS,CAACN,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,+BAA+B,OAAOR,EAAIS,KAAKT,EAAI0C,GAAI1C,EAAQ,MAAE,SAAS2C,EAAWR,GAAM,OAAO/B,EAAG,oBAAoB,CAACwC,IAAIT,EAAK7B,MAAM,CAAC,WAAaqC,EAAW,kBAAkBR,EAAK,UAAYnC,EAAIyB,SAASU,IAAS,IAAIU,QAAQ,OAAS7C,EAAI4B,OAAOO,IAAOnB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,QAAS7B,UAAejB,EAAgB,aAAEA,EAAI0C,GAAI1C,EAAgB,cAAE,SAAS2C,EAAWR,GAAM,OAAO/B,EAAG,oBAAoB,CAACwC,IAAIT,EAAK7B,MAAM,CAAC,WAAaqC,EAAW,kBAAkBR,EAAK,UAAYnC,EAAIyB,SAASU,IAAS,IAAIU,QAAQ,OAAS7C,EAAI4B,OAAOO,GAAM,OAAS,IAAInB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,QAAS7B,UAAcjB,EAAIS,MAAM,IAAI,GAAGL,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQN,EAAIQ,GAAG,8BAA8BuC,MAAM,CAACC,MAAOhD,EAAgB,aAAEiD,SAAS,SAAUC,GAAMlD,EAAImD,aAAaD,GAAKE,WAAW,mBAAmB,IAC33C,EAAkB,GCDlB,G,UAAS,WAAa,IAAIpD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,UAAU,CAACN,EAAG,MAAM,CAACM,YAAY,OAAO,CAACN,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACV,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIqD,IAAI,aAAc,OAAOjD,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,UAAW4C,WAAW,iBAAiB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,aAAc,aAAa,CAAC1C,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,iBAAiB,KAAKF,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,QAAS4C,WAAW,eAAe1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,aAAc,WAAW,CAAC1C,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,iBAAiB,KAAKF,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,UAAW4C,WAAW,iBAAiB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,aAAc,aAAa,CAAC1C,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,WAAW,KAAKF,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,UAAW4C,WAAW,iBAAiB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,aAAc,aAAa,CAAC1C,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,aAAa,KAAKF,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,WAAY4C,WAAW,kBAAkB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,aAAc,cAAc,CAAC1C,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,cAAc,KAAKF,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACV,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIqD,IAAI,QAAS,OAAOjD,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACV,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIQ,GAAG,sBACj+D,EAAkB,G,wBCAlBgD,EAAS,GAMTC,EAAY,eACdD,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAC,E,QClBX,EAAS,WAAa,IAAIzD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,oBAAoBgD,MAAM,CAAE,aAAc1D,EAAI2D,SAAU,CAAG3D,EAAIyB,SAA60ErB,EAAG,MAAM,CAACM,YAAY,OAAO,CAACN,EAAG,MAAM,CAACM,YAAY,yBAAyB,CAACN,EAAG,OAAO,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAkB,eAAEoD,WAAW,mBAAmB1C,YAAY,OAAOgD,MAAM,CAAEC,OAAQ3D,EAAI2D,SAAU,CAAC3D,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAI4D,SAASC,YAAY7D,EAAI2D,OAAS3D,EAAI8D,eAAeC,UAAU,GAAK/D,EAAI8D,iBAAiB,OAAO1D,EAAG,OAAO,CAACM,YAAY,WAAW,CAACN,EAAG,SAAS,CAACM,YAAY,KAAKJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAO+C,iBAAwBhE,EAAIiE,QAAO,MAAS,CAAC7D,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,eAAgB4C,WAAW,sBAAsB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,OAAO,MAAQ,GAAG,MAAQ,gBAAgB,GAAGF,EAAG,SAAS,CAACM,YAAY,MAAMJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAO+C,iBAAwBhE,EAAIiE,QAAO,MAAU,CAAC7D,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,gBAAiB4C,WAAW,uBAAuB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,QAAQ,MAAQ,GAAG,MAAQ,eAAe,OAAOF,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAIkE,eAAe,UAAU,QAAU,CAAC,OAAQ,SAASlD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAImE,eAAe,SAAUlD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAIkE,eAAe,QAAQ,QAAUlE,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAImE,eAAe,OAAQlD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAIkE,eAAe,UAAU,QAAUlE,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAImE,eAAe,SAAUlD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAIkE,eAAe,UAAU,QAAUlE,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAImE,eAAe,SAAUlD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAIkE,eAAe,WAAW,QAAU,CAAC,OAAQ,SAAU,SAAU,SAASlD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAImE,eAAe,UAAWlD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,SAAS,CAACsD,MAAM,CAAEW,QAASrE,EAAIsE,YAAatD,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAIuE,QAAUvE,EAAIuE,UAAU,CAACvE,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIsE,WAAatE,EAAIQ,GAAG,SAAWR,EAAIQ,GAAG,QAAQ,SAASJ,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,SAAS,CAACM,YAAY,QAAQM,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAIuE,QAAUvE,EAAIuE,UAAU,CAACvE,EAAIsB,GAAG,gBAAhxJlB,EAAG,MAAM,CAACM,YAAY,OAAO,CAACN,EAAG,MAAM,CAACM,YAAY,yBAAyB,CAACN,EAAG,OAAO,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAkB,eAAEoD,WAAW,mBAAmB1C,YAAY,OAAOgD,MAAM,CAAEC,OAAQ3D,EAAI2D,SAAU,CAAC3D,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAI4D,SAASC,YAAY7D,EAAI2D,OAAS3D,EAAI8D,eAAeC,UAAU,GAAK/D,EAAI8D,iBAAiB,OAAO1D,EAAG,OAAO,CAACM,YAAY,WAAW,CAACN,EAAG,SAAS,CAACM,YAAY,KAAKJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAO+C,iBAAwBhE,EAAIiE,QAAO,MAAS,CAAC7D,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,eAAgB4C,WAAW,sBAAsB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,OAAO,MAAQ,GAAG,MAAQ,gBAAgB,GAAGF,EAAG,SAAS,CAACM,YAAY,MAAMJ,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAO+C,iBAAwBhE,EAAIiE,QAAO,MAAU,CAAC7D,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAOhD,EAAIQ,GAAG,gBAAiB4C,WAAW,uBAAuB1C,YAAY,OAAOJ,MAAM,CAAC,KAAO,QAAQ,MAAQ,GAAG,MAAQ,eAAe,OAAOF,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAW6B,OAAO,QAAU,CAAC,OAAQ,SAASxD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,SAAUxD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAW+B,KAAK,QAAU1E,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,OAAQxD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWgC,OAAO,QAAU3E,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,SAAUxD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWiC,OAAO,QAAU5E,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,SAAUxD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWkC,QAAQ,QAAU,CAAC,OAAQ,OAAQ,SAAU,SAAU,SAAS7D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,UAAWxD,QAAa,GAAGb,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,SAAS,CAACsD,MAAM,CAAEW,QAASrE,EAAIsE,YAAatD,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAI8E,aAAe,CAAEC,WAAY/E,EAAI8D,mBAAoB,CAAC9D,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIsE,WAAatE,EAAIQ,GAAG,WAAaR,EAAIQ,GAAG,QAAQ,SAASR,EAAIgF,GAAG,KAAm+EhF,EAAU,OAAE,CAACI,EAAG,MAAM,CAACM,YAAY,WAAW,CAACN,EAAG,MAAM,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAM,gBAAkBI,WAAW,oBAAoB1C,YAAY,QAAQ,CAACV,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,gCAAgC,OAAOJ,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,YAAY,GAAGF,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,YAAY,GAAGF,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,YAAY,GAAGF,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,YAAY,GAAGF,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,YAAY,GAAGF,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,SAAS,CAACsD,MAAM,CAAEW,QAASrE,EAAIiF,0BAA0B,YAAajE,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAI8E,aAAe,CAAEC,WAAY/E,EAAI8D,eAAgBoB,OAAQ,cAAe,CAAClF,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIiF,0BAA0B,WAAajF,EAAIQ,GAAG,WAAaR,EAAIQ,GAAG,QAAQ,SAAUR,EAAY,SAAEI,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,SAAS,CAACsD,MAAM,CACr9LW,QAAoE,KAA1DrE,EAAI2C,WAAWwC,QAAQC,kBAAoB,IAAI3C,QACxDzB,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAIqF,aAAe,CAAEN,WAAY/E,EAAI8D,eAAgBoB,OAAQ,cAAe,CAAClF,EAAIsB,GAAG,IAAItB,EAAIuB,GAA8D,KAA1DvB,EAAI2C,WAAWwC,QAAQC,kBAAoB,IAAI3C,OAAezC,EAAIQ,GAAG,OAASR,EAAIQ,GAAG,YAAY,SAASJ,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,OAAO,CAACM,YAAY,SAAS,CAACV,EAAIsB,GAAG,aAAatB,EAAIS,KAAMT,EAAIyB,UAAYzB,EAAIuE,OAAQvE,EAAI0C,GAAI1C,EAAY,UAAE,SAASsF,EAAWJ,GAAQ,OAAO9E,EAAG,MAAM,CAACwC,IAAK5C,EAAI8D,eAAiB,IAAMoB,EAAQxE,YAAY,WAAW,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,OAAO,CAACkD,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYP,MAAM,EAASI,WAAW,YAAY,CAACpD,EAAIsB,GAAGtB,EAAIuB,GAAG+D,EAAWnD,WAAW/B,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWuC,GAAQV,OAAO,QAAU,CAAC,OAAQ,SAASxD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,SAAUxD,EAAQiE,QAAa,GAAG9E,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWuC,GAAQR,KAAK,QAAU1E,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,OAAQxD,EAAQiE,QAAa,GAAG9E,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWuC,GAAQP,OAAO,QAAU3E,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,SAAUxD,EAAQiE,QAAa,GAAG9E,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWuC,GAAQN,OAAO,QAAU5E,EAAIoE,mBAAmBpD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,SAAUxD,EAAQiE,QAAa,GAAG9E,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,uBAAuB,CAACE,MAAM,CAAC,MAAQN,EAAI2C,WAAWuC,GAAQL,QAAQ,QAAU,CAAC,OAAQ,SAAU,SAAU,SAAS7D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAIyE,UAAU,UAAWxD,EAAQiE,QAAa,GAAG9E,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,SAAS,CAACsD,MAAM,CAAEW,QAASrE,EAAIiF,0BAA0BC,IAAUlE,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAI8E,aAAe,CAAEC,WAAY/E,EAAI8D,eAAgBoB,OAAQA,MAAY,CAAClF,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIiF,0BAA0BC,GAAUlF,EAAIQ,GAAG,WAAaR,EAAIQ,GAAG,QAAQ,SAASJ,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,SAAS,CAACsD,MAAM,CAClkEW,QAAoE,KAA1DrE,EAAI2C,WAAWuC,GAAQE,kBAAoB,IAAI3C,QACxDzB,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAIqF,aAAe,CAAEN,WAAY/E,EAAI8D,eAAgBoB,OAAQA,MAAY,CAAClF,EAAIsB,GAAG,IAAItB,EAAIuB,GAA8D,KAA1DvB,EAAI2C,WAAWuC,GAAQE,kBAAoB,IAAI3C,OAAezC,EAAIQ,GAAG,OAASR,EAAIQ,GAAG,YAAY,cAAaR,EAAIS,KAAKL,EAAG,SAAS,CAACM,YAAY,WAAWM,GAAG,CAAC,MAAQ,SAASC,GAAQjB,EAAIuE,QAAUvE,EAAIuE,UAAU,CAACnE,EAAG,SAAS,CAACE,MAAM,CAAC,KAAON,EAAIuE,OAAS,cAAgB,kBAAkB,GAAIvE,EAAgB,aAAEI,EAAG,SAAS,CAACE,MAAM,CAAC,GAAK,UAAU,CAACF,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQN,EAAIQ,GAAG,iBAAiB,QAAU,CAAE+E,QAAS,CAAEC,KAAMxF,EAAIQ,GAAG,aAAe,kBAAkB,IAAIQ,GAAG,CAAC,QAAU,SAASC,GAAQjB,EAAI8E,aAAe,QAAQ,CAAC1E,EAAG,OAAO,CAACM,YAAY,gBAAgBM,GAAG,CAAC,OAAS,SAASC,GAAQA,EAAO+C,oBAAqB,CAAC5D,EAAG,WAAW,CAACA,EAAG,SAAS,CAACM,YAAY,cAAc,CAACV,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIQ,GAAG,uBAAuBR,EAAI0C,GAAI1C,EAAmB,iBAAE,SAASyF,EAAMtD,GAAM,OAAO/B,EAAG,aAAa,CAACwC,IAAK5C,EAAI8D,eAAiB,SAAW3B,EAAM7B,MAAM,CAAC,GAAMN,EAAI8D,eAAiB,SAAW3B,EAAM,YAAcnC,EAAI0F,UAAUhB,KAAKiB,SAASxD,GAAM,MAAQnC,EAAI4D,SAASC,YAAY1B,GAAM,MAAQA,GAAMnB,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOjB,EAAI4F,YAAYzD,WAAa,GAAG/B,EAAG,WAAW,CAACA,EAAG,SAAS,CAACM,YAAY,cAAc,CAACV,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIQ,GAAG,uBAAuBR,EAAI0C,GAAI1C,EAAU,QAAE,SAASyF,EAAMtD,GAAM,OAAO/B,EAAG,aAAa,CAACwC,IAAK5C,EAAI8D,eAAiB,UAAY3B,EAAM7B,MAAM,CAAC,GAAMN,EAAI8D,eAAiB,UAAY3B,EAAM,YAAcnC,EAAI0F,UAAUG,MAAMF,SAASxD,GAAM,MAAQnC,EAAI4D,SAASC,YAAY1B,GAAM,MAAQA,GAAMnB,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOjB,EAAI4F,YAAYzD,GAAM,WAAa,QAAQ,GAAGnC,EAAIS,KAAMT,EAAIqF,cAAgBrF,EAAIyB,SAAUrB,EAAG,SAAS,CAACE,MAAM,CAAC,GAAK,UAAU,CAACF,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQN,EAAIQ,GAAG,mBAAmB,QAAU,CAAE+E,QAAS,CAAEC,KAAMxF,EAAIQ,GAAG,aAAe,kBAAkB,IAAIQ,GAAG,CAAC,QAAU,SAASC,GAAQjB,EAAIqF,aAAe,QAAQ,CAACjF,EAAG,OAAO,CAACM,YAAY,gBAAgBM,GAAG,CAAC,OAAS,SAASC,GAAQA,EAAO+C,oBAAqB,CAAC5D,EAAG,WAAW,CAACA,EAAG,SAAS,CAACM,YAAY,cAAc,CAACV,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIQ,GAAG,8BAA8BR,EAAI0C,GAAI1C,EAAY,UAAE,SAASkF,EAAO/C,GAAM,OAAO/B,EAAG,aAAa,CAACwC,IAAK,UAAYT,EAAM7B,MAAM,CAAC,GAAM,UAAY6B,EAAM,aAAenC,EAAI2C,WAAW3C,EAAIqF,aAAaH,QAAQE,kBAAoB,IAAIO,SAC/vExD,GACC,MAAQ+C,EAAO/C,KAAK,MAAQA,GAAMnB,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOjB,EAAI8F,aAAa3D,WAAa,QAAQ,GAAGnC,EAAIS,MAAM,IAChI,EAAkB,CAAC,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,OAAO,CAACM,YAAY,SAAS,CAACV,EAAIsB,GAAG,YCP7K,G,oBAAS,WAAa,IAAItB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,YAAY,CAACE,MAAM,CAAC,UAAY,aAAa,OAAS,MAAM,CAACF,EAAG,SAAS,CAACM,YAAY,MAAMgD,MAAM,CAAC,CAAEqC,KAAoB,OAAd/F,EAAIgD,OAAkBhD,EAAIgD,QAAQ,CAAgB,SAAdhD,EAAIgD,MAAkB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,QAAQ,KAAO,MAAqB,SAAdN,EAAIgD,MAAkB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,SAAS,KAAO,MAAqB,SAAdN,EAAIgD,MAAkB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,QAAQ,KAAO,MAAqB,SAAdN,EAAIgD,MAAkB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,QAAQ,KAAO,MAAqB,SAAdN,EAAIgD,MAAkB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,iBAAiB,KAAO,MAAqB,WAAdN,EAAIgD,MAAoB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,MAAM,KAAO,MAAqB,WAAdN,EAAIgD,MAAoB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,OAAO,KAAO,MAAqB,WAAdN,EAAIgD,MAAoB5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,eAAe,KAAO,MAAqB,kBAAdN,EAAIgD,MAA2B5C,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,SAAS,KAAO,MAAMN,EAAIS,MAAM,GAAGL,EAAG,WAAW,CAACQ,KAAK,WAAW,CAACR,EAAG,MAAM,CAACM,YAAY,mBAAmBV,EAAI0C,GAAI1C,EAAW,SAAE,SAASgG,GAAQ,OAAO5F,EAAG,SAAS,CAACkD,WAAW,CAAC,CAACnB,KAAK,gBAAgBoB,QAAQ,oBAAoBX,IAAIoD,EAAOhF,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjB,EAAI8C,MAAM,QAASkD,MAAW,CAAC5F,EAAG,MAAM,CAACM,YAAY,MAAMgD,MAAMsC,GAAQ,CAAa,SAAXA,EAAmB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,QAAQ,KAAO,MAAkB,SAAX0F,EAAmB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,SAAS,KAAO,MAAkB,SAAX0F,EAAmB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,QAAQ,KAAO,MAAkB,SAAX0F,EAAmB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,QAAQ,KAAO,MAAkB,SAAX0F,EAAmB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,iBAAiB,KAAO,MAAkB,WAAX0F,EAAqB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,MAAM,MAAQ,MAAkB,WAAX0F,EAAqB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,OAAO,KAAO,MAAkB,WAAX0F,EAAqB5F,EAAG,SAAS,CAACM,YAAY,OAAOJ,MAAM,CAAC,MAAQ,0BAA0B,KAAO,eAAe,KAAO,MAAMN,EAAIS,MAAM,GAAe,SAAXuF,EAAmB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,2BAA2B,MAAMR,EAAIS,KAAiB,SAAXuF,EAAmB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,2BAA2B,MAAMR,EAAIS,KAAiB,SAAXuF,EAAmB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,2BAA2B,MAAMR,EAAIS,KAAiB,SAAXuF,EAAmB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,2BAA2B,MAAMR,EAAIS,KAAiB,SAAXuF,EAAmB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,2BAA2B,MAAMR,EAAIS,KAAiB,WAAXuF,EAAqB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,6BAA6B,MAAMR,EAAIS,KAAiB,WAAXuF,EAAqB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,6BAA6B,MAAMR,EAAIS,KAAiB,WAAXuF,EAAqB,CAAChG,EAAIsB,GAAG,IAAItB,EAAIuB,GAAGvB,EAAIQ,GAAG,6BAA6B,MAAMR,EAAIS,MAAM,MAAK,MAAM,KACh3G,EAAkB,GCoKtB,GACA,wBACA,OACA,SACA,WACA,8BAEA,OACA,YACA,kBC9K2W,ICQvW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,oBC0Uf,GACA,uBACA,YACA,sBAEA,OACA,YACA,YACA,aAEA,UACA,YACA,cAEA,gBACA,YACA,aAEA,QACA,YACA,8BAEA,QACA,aACA,aAGA,KA3BA,WA4BA,OACA,UACA,gBACA,kBAGA,UACA,oBADA,WAEA,8DAEA,gBAJA,WAKA,oCAIA,cAFA,4BAEA,GAEA,YAXA,WAYA,4BAEA,UAdA,WAeA,uCADA,IAGA,2BAEA,uCAEA,OACA,gCACA,qCAOA,WA9BA,WA+BA,0CAEA,kBACA,SAWA,OATA,mDAEA,iCACA,oCAEA,UAIA,EAGA,+CACA,4CAEA,mCAMA,iBAzDA,WA0DA,oGAEA,kBA5DA,WA8DA,0EACA,8BACA,kBAGA,SACA,OADA,WACA,wEACA,IACA,CACA,cACA,YACA,cACA,cACA,eACA,eACA,wBACA,yBACA,qBAEA,CACA,cACA,YACA,cACA,cACA,eACA,eACA,wBACA,yBACA,qBAGA,kBACA,SAaA,OAXA,gDACA,oCACA,QACA,4BACA,aACA,WACA,iBAKA,sBAGA,kBACA,QACA,uCACA,4BACA,aACA,iBAIA,UApDA,SAoDA,uEACA,oBACA,+BACA,aACA,QACA,YAGA,eA5DA,SA4DA,GACA,8BAEA,wDAMA,OAJA,oDACA,gDAGA,GAOA,0BA5EA,SA4EA,GACA,8CACA,2CAEA,mCAMA,eAtFA,SAsFA,gBACA,gDACA,uBAGA,YA3FA,SA2FA,iEACA,2BAEA,6CAEA,mDAEA,qBACA,eACA,EACA,sCACA,GAIA,sDAEA,aA5GA,SA4GA,GACA,kBAEA,+BACA,sCAIA,OAFA,gDAEA,cACA,eACA,mBACA,sCACA,GAIA,0EC9jBwW,ICQpW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QC+Bf,GACA,oBACA,YACA,qBACA,mBAEA,OACA,aACA,YACA,8BAEA,UACA,YACA,8BAEA,QACA,YACA,8BAEA,SACA,aACA,aAGA,KAxBA,WAyBA,OACA,kBAGA,UACA,aADA,WAEA,iEACA,6BAGA,YACA,UACA,UACA,YACA,SAEA,KAZA,WAaA,0BACA,kBACA,sDAGA,YACA,UACA,UACA,YACA,UAGA,SACA,UADA,SACA,cACA,KACA,KAEA,qDACA,4BACA,cACA,oCACA,gBACA,SAMA,gBACA,UAIA,mDACA,8BAEA,qBACA,wDACA,QACA,aACA,SACA,aACA,gCAKA,QACA,aACA,aACA,2BAIA,yBClJoW,ICQhW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,4mBCoEf,OACA,2BACA,SAFA,WAGA,aAEA,OACA,gHACA,kBAIA,YACA,gBAEA,KAdA,WAeA,OACA,UACA,WAEA,UAEA,aAEA,iBACA,YAEA,UAEA,sBACA,oBACA,mBACA,oBAEA,gBAGA,cACA,sCADA,CAEA,MAFA,WAGA,mCAEA,SALA,WAMA,oBAEA,qCAIA,QAZA,WAaA,iCAEA,YAfA,WAgBA,sCAEA,WAlBA,WAmBA,iBAEA,WACA,CACA,CACA,yBACA,oDACA,iBAEA,CACA,sBACA,2DAEA,CACA,8BACA,8DAKA,CACA,CACA,yBACA,qDAEA,CACA,sBACA,2DAEA,CACA,+CACA,kFA/BA,MAmCA,QAtDA,WAuDA,OACA,sCACA,4CAGA,YA5DA,WA4DA,WACA,8BACA,iCAEA,SAiEA,OA/DA,mDACA,+BAGA,GAFA,eAEA,oBAkBA,OAjBA,OACA,eAEA,wBACA,UACA,KADA,GAEA,6BAIA,uBACA,UACA,KADA,GAEA,wBAOA,yCACA,2CAEA,uBACA,OACA,QACA,gBAGA,aACA,EADA,CAEA,WAIA,uBACA,2BAEA,aACA,QADA,GAEA,2BAKA,sBACA,0BAEA,aACA,QADA,GAEA,gCAQA,KAGA,iBAxKA,SAwKA,WACA,cAEA,UAEA,KACA,cACA,4BACA,mCACA,kBACA,eACA,yBACA,+BACA,EADA,CAEA,uBAEA,SAGA,iBACA,mFAGA,mBACA,eACA,sBAIA,OACA,gBAGA,8EACA,iEACA,YACA,0BACA,oCACA,EADA,CAEA,uBAEA,aAGA,0CACA,eACA,eACA,uBAGA,mBACA,eACA,uBAIA,OACA,OADA,WAEA,yBAGA,QArOA,WAsOA,wBAEA,SACA,WADA,YACA,wBACA,oBACA,eADA,kBAEA,OAGA,KAPA,WAOA,WACA,eAEA,uCACA,4CAEA,gBACA,2BACA,iBACA,uCACA,YACA,kEACA,uCAEA,mBACA,uCACA,wBACA,yCACA,cAIA,SA7BA,WA8BA,gEAEA,WACA,qCAGA,mDAEA,gBAtCA,WAsCA,WACA,yEAQA,SACA,KAwEA,OAtEA,uDACA,iBACA,uDACA,MACA,uBACA,0BACA,6BACA,KAEA,EACA,UACA,MACA,0BAGA,UACA,aACA,SACA,gBACA,iCAIA,CACA,iCACA,MACA,uBACA,+BACA,kCACA,KAkBA,GAhBA,EACA,UACA,MACA,+BAGA,UACA,aACA,iBACA,gBACA,+BAIA,0CAEA,6CAGA,MACA,uBACA,0BACA,KAEA,EACA,UACA,MACA,uBAGA,UACA,aACA,gBACA,2BAMA,aACA,4DACA,+DAGA,OA7HA,WA6HA,WACA,mBAEA,iBAEA,uCAGA,OAFA,4CAEA,UACA,yBACA,iBACA,uCACA,cACA,qEAEA,mBACA,uCACA,wBACA,yCACA,eAIA,gBApJA,WAoJA,WACA,gBAEA,2BAEA,uCAGA,OAFA,4CAEA,aACA,yBACA,0BACA,yCACA,aAGA,iEACA,cACA,uBAEA,iDACA,uCACA,SAEA,uBACA,eACA,qBACA,IAGA,kBACA,oBACA,+BACA,OAKA,wBACA,qBAEA,8BACA,EACA,sEACA,wBACA,iCACA,4BAEA,cAGA,mGACA,oCAGA,mBACA,uCACA,wBACA,yCACA,eAIA,cAlNA,SAkNA,cACA,wBACA,sDAGA,yBAEA,gBAzNA,YAyNA,2EACA,gBACA,sCACA,4BADA,kBAEA,QAIA,+BACA,qCAGA,sCACA,4BADA,kBAEA,EAFA,KAGA,+BAHA,kBAIA,aCxiBoW,ICQhW,G,UAAY,eACd,EACAV,EACAsC,GACA,EACA,KACA,WACA,OAIa,e,2CCnBf,yBAAokB,EAAG,G,kCCAvkB,yBAAokB,EAAG","file":"js/settings_permissions.d378e8b8.js","sourcesContent":["import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=style&index=0&id=bb57a082&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=style&index=0&id=bb57a082&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=style&index=0&id=02ac7b55&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=style&index=0&id=02ac7b55&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-row.vue?vue&type=style&index=0&id=7a96fab8&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-row.vue?vue&type=style&index=0&id=7a96fab8&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.error)?_c('div',[_c('v-header',{attrs:{\"icon-link\":(\"/\" + _vm.currentProjectKey + \"/settings/roles\"),\"settings\":\"\"}}),(_vm.error)?_c('v-error',{attrs:{\"icon\":\"error_outline\",\"color\":\"warning\",\"title\":_vm.$t('server_trouble'),\"body\":_vm.$t('server_trouble_copy')}}):_vm._e()],1):_c('div',{staticClass:\"settings-permissions\"},[_c('v-header',{attrs:{\"breadcrumb\":_vm.breadcrumb,\"icon-link\":(\"/\" + _vm.currentProjectKey + \"/settings/roles\"),\"settings\":\"\"}},[_c('template',{slot:\"buttons\"},[(!_vm.isNew && !_vm.isSystem)?_c('v-header-button',{attrs:{\"loading\":_vm.removing,\"label\":_vm.$t('delete'),\"icon\":\"delete_outline\",\"icon-color\":\"white\",\"background-color\":\"danger\",\"hover-color\":\"danger-dark\"},on:{\"click\":function($event){_vm.confirmRemove = true}}}):_vm._e(),_c('v-header-button',{attrs:{\"disabled\":!_vm.editing,\"loading\":_vm.saving,\"label\":_vm.$t('save'),\"icon\":\"check\",\"background-color\":\"button-primary-background-color\",\"icon-color\":\"button-primary-text-color\"},on:{\"click\":_vm.save}})],1)],2),_c('label',{staticClass:\"type-label\"},[_vm._v(_vm._s(_vm.$t('permissions')))]),(_vm.isAdmin)?_c('v-notice',{staticClass:\"admin-note\",attrs:{\"color\":\"warning\"}},[_vm._v(\" \"+_vm._s(_vm.$t('permissions_admin'))+\" \")]):_c('v-permissions',{attrs:{\"loading\":!(_vm.permissions && _vm.statuses),\"permissions\":_vm.permissions,\"statuses\":_vm.statuses,\"fields\":_vm.permissionFields},on:{\"input\":_vm.setPermission}}),(_vm.fields && _vm.role)?_c('v-form',{attrs:{\"fields\":_vm.fields,\"values\":Object.assign({}, _vm.role, _vm.roleEdits),\"primary-key\":_vm.role.id,\"collection\":\"directus_roles\"},on:{\"stage-value\":_vm.stageValue}}):_vm._e(),(_vm.confirmRemove)?_c('portal',{attrs:{\"to\":\"modal\"}},[_c('v-confirm',{attrs:{\"color\":\"danger\",\"message\":_vm.$t('delete_role_are_you_sure', { name: _vm.role.name }),\"confirm-text\":_vm.$t('delete'),\"loading\":_vm.removing},on:{\"cancel\":function($event){_vm.confirmRemove = false},\"confirm\":_vm.remove}})],1):_vm._e(),_c('v-info-sidebar',{attrs:{\"wide\":\"\"}},[_c('span',{staticClass:\"type-note\"},[_vm._v(\"No settings\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loading)?_c('div',{staticClass:\"v-permissions interface loading\"},[_c('v-spinner',{attrs:{\"color\":\"--blue-grey-300\",\"background-color\":\"--blue-grey-200\"}})],1):_c('div',{staticClass:\"interface\"},[_c('div',{staticClass:\"v-permissions\"},[_c('v-permissions-header',{on:{\"toggle-all\":_vm.toggleAll}}),_c('div',{staticClass:\"body\"},[(Object.keys(_vm.rows).length === 0)?_c('v-notice',{staticClass:\"no-collections-message\",attrs:{\"color\":\"gray\"}},[_vm._v(\" \"+_vm._s(_vm.$t('permissions_no_collections'))+\" \")]):_vm._e(),_vm._l((_vm.rows),function(permission,name){return _c('v-permissions-row',{key:name,attrs:{\"permission\":permission,\"permission-name\":name,\"statuses\":(_vm.statuses[name] || {}).mapping,\"fields\":_vm.fields[name]},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})}),(_vm.showDirectus)?_vm._l((_vm.directusRows),function(permission,name){return _c('v-permissions-row',{key:name,attrs:{\"permission\":permission,\"permission-name\":name,\"statuses\":(_vm.statuses[name] || {}).mapping,\"fields\":_vm.fields[name],\"system\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})}):_vm._e()],2)],1),_c('v-switch',{attrs:{\"label\":_vm.$t('show_directus_collections')},model:{value:(_vm.showDirectus),callback:function ($$v) {_vm.showDirectus=$$v},expression:\"showDirectus\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"cell type-table-head\"},[_vm._v(_vm._s(_vm.$tc('collection', 2)))]),_c('div',{staticClass:\"cell type-table-head\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('create')),expression:\"$t('create')\"}],staticClass:\"cell\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('toggle-all', 'create')}}},[_c('v-icon',{attrs:{\"name\":\"add_circle\"}})],1)]),_c('div',{staticClass:\"cell type-table-head\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('read')),expression:\"$t('read')\"}],staticClass:\"cell\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('toggle-all', 'read')}}},[_c('v-icon',{attrs:{\"name\":\"visibility\"}})],1)]),_c('div',{staticClass:\"cell type-table-head\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('update')),expression:\"$t('update')\"}],staticClass:\"cell\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('toggle-all', 'update')}}},[_c('v-icon',{attrs:{\"name\":\"edit\"}})],1)]),_c('div',{staticClass:\"cell type-table-head\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('delete')),expression:\"$t('delete')\"}],staticClass:\"cell\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('toggle-all', 'delete')}}},[_c('v-icon',{attrs:{\"name\":\"delete\"}})],1)]),_c('div',{staticClass:\"cell type-table-head\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('comment')),expression:\"$t('comment')\"}],staticClass:\"cell\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('toggle-all', 'comment')}}},[_c('v-icon',{attrs:{\"name\":\"comment\"}})],1)]),_c('div',{staticClass:\"cell type-table-head\"},[_vm._v(_vm._s(_vm.$tc('field', 2)))]),_c('div',{staticClass:\"cell type-table-head\"},[_vm._v(_vm._s(_vm.$t('statuses')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./permissions-header.vue?vue&type=template&id=59c49af0&scoped=true&\"\nvar script = {}\nimport style0 from \"./permissions-header.vue?vue&type=style&index=0&id=59c49af0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"59c49af0\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"v-permissions-row\",class:{ 'system-row': _vm.system }},[(!_vm.statuses)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"cell collection-title\"},[_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.permissionName),expression:\"permissionName\"}],staticClass:\"name\",class:{ system: _vm.system }},[_vm._v(\" \"+_vm._s(_vm.$helpers.formatTitle(_vm.system ? _vm.permissionName.substring(9) : _vm.permissionName))+\" \")]),_c('span',{staticClass:\"set-all\"},[_c('button',{staticClass:\"on\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.setAll(true)}}},[_c('v-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('turn_all_on')),expression:\"$t('turn_all_on')\"}],staticClass:\"icon\",attrs:{\"name\":\"done\",\"small\":\"\",\"color\":\"--success\"}})],1),_c('button',{staticClass:\"off\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.setAll(false)}}},[_c('v-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('turn_all_off')),expression:\"$t('turn_all_off')\"}],staticClass:\"icon\",attrs:{\"name\":\"block\",\"small\":\"\",\"color\":\"--danger\"}})],1)])]),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission.create,\"options\":['none', 'full']},on:{\"input\":function($event){return _vm.emitValue('create', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission.read,\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.emitValue('read', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission.update,\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.emitValue('update', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission.delete,\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.emitValue('delete', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission.comment,\"options\":['none', 'read', 'create', 'update', 'full']},on:{\"input\":function($event){return _vm.emitValue('comment', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('button',{class:{ limited: _vm.fieldState },on:{\"click\":function($event){_vm.fieldsSelect = { collection: _vm.permissionName }}}},[_vm._v(\" \"+_vm._s(_vm.fieldState ? _vm.$t('limited') : _vm.$t('all'))+\" \")])]),_vm._m(0)]):_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"cell collection-title\"},[_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.permissionName),expression:\"permissionName\"}],staticClass:\"name\",class:{ system: _vm.system }},[_vm._v(\" \"+_vm._s(_vm.$helpers.formatTitle(_vm.system ? _vm.permissionName.substring(9) : _vm.permissionName))+\" \")]),_c('span',{staticClass:\"set-all\"},[_c('button',{staticClass:\"on\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.setAll(true)}}},[_c('v-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('turn_all_on')),expression:\"$t('turn_all_on')\"}],staticClass:\"icon\",attrs:{\"name\":\"done\",\"small\":\"\",\"color\":\"--success\"}})],1),_c('button',{staticClass:\"off\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.setAll(false)}}},[_c('v-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.$t('turn_all_off')),expression:\"$t('turn_all_off')\"}],staticClass:\"icon\",attrs:{\"name\":\"block\",\"small\":\"\",\"color\":\"--danger\"}})],1)])]),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.getCombinedVal('create'),\"options\":['none', 'full']},on:{\"input\":function($event){return _vm.setAllStatuses('create', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.getCombinedVal('read'),\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.setAllStatuses('read', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.getCombinedVal('update'),\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.setAllStatuses('update', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.getCombinedVal('delete'),\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.setAllStatuses('delete', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.getCombinedVal('comment'),\"options\":['none', 'create', 'update', 'full']},on:{\"input\":function($event){return _vm.setAllStatuses('comment', $event)}}})],1),_c('div',{staticClass:\"cell\"},[_c('button',{class:{ limited: _vm.fieldState },on:{\"click\":function($event){_vm.active = !_vm.active}}},[_vm._v(\" \"+_vm._s(_vm.fieldState ? _vm.$t('mixed') : _vm.$t('all'))+\" \")])]),_c('div',{staticClass:\"cell\"},[_c('button',{staticClass:\"mixed\",on:{\"click\":function($event){_vm.active = !_vm.active}}},[_vm._v(\"Expand\")])])]),(_vm.active)?[_c('div',{staticClass:\"sub row\"},[_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:('System Option'),expression:\"'System Option'\"}],staticClass:\"cell\"},[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.on_create'))+\" \")]),_c('div',{staticClass:\"cell block\"},[_c('v-icon',{attrs:{\"name\":\"block\"}})],1),_c('div',{staticClass:\"cell block\"},[_c('v-icon',{attrs:{\"name\":\"block\"}})],1),_c('div',{staticClass:\"cell block\"},[_c('v-icon',{attrs:{\"name\":\"block\"}})],1),_c('div',{staticClass:\"cell block\"},[_c('v-icon',{attrs:{\"name\":\"block\"}})],1),_c('div',{staticClass:\"cell block\"},[_c('v-icon',{attrs:{\"name\":\"block\"}})],1),_c('div',{staticClass:\"cell\"},[_c('button',{class:{ limited: _vm.getFieldSettingsPerStatus('$create') },on:{\"click\":function($event){_vm.fieldsSelect = { collection: _vm.permissionName, status: '$create' }}}},[_vm._v(\" \"+_vm._s(_vm.getFieldSettingsPerStatus('$create') ? _vm.$t('limited') : _vm.$t('all'))+\" \")])]),(_vm.statuses)?_c('div',{staticClass:\"cell\"},[_c('button',{class:{\n\t\t\t\t\t\t\tlimited: (_vm.permission.$create.status_blacklist || []).length !== 0\n\t\t\t\t\t\t},on:{\"click\":function($event){_vm.statusSelect = { collection: _vm.permissionName, status: '$create' }}}},[_vm._v(\" \"+_vm._s((_vm.permission.$create.status_blacklist || []).length === 0 ? _vm.$t('all') : _vm.$t('limited'))+\" \")])]):_c('div',{staticClass:\"cell\"},[_c('span',{staticClass:\"mixed\"},[_vm._v(\"--\")])])])]:_vm._e(),(_vm.statuses && _vm.active)?_vm._l((_vm.statuses),function(statusInfo,status){return _c('div',{key:(_vm.permissionName + \"-\" + status),staticClass:\"sub row\"},[_c('div',{staticClass:\"cell\"},[_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(status),expression:\"status\"}]},[_vm._v(_vm._s(statusInfo.name))])]),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission[status].create,\"options\":['none', 'full']},on:{\"input\":function($event){return _vm.emitValue('create', $event, status)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission[status].read,\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.emitValue('read', $event, status)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission[status].update,\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.emitValue('update', $event, status)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission[status].delete,\"options\":_vm.permissionOptions},on:{\"input\":function($event){return _vm.emitValue('delete', $event, status)}}})],1),_c('div',{staticClass:\"cell\"},[_c('v-permissions-toggle',{attrs:{\"value\":_vm.permission[status].comment,\"options\":['none', 'create', 'update', 'full']},on:{\"input\":function($event){return _vm.emitValue('comment', $event, status)}}})],1),_c('div',{staticClass:\"cell\"},[_c('button',{class:{ limited: _vm.getFieldSettingsPerStatus(status) },on:{\"click\":function($event){_vm.fieldsSelect = { collection: _vm.permissionName, status: status }}}},[_vm._v(\" \"+_vm._s(_vm.getFieldSettingsPerStatus(status) ? _vm.$t('limited') : _vm.$t('all'))+\" \")])]),_c('div',{staticClass:\"cell\"},[_c('button',{class:{\n\t\t\t\t\t\t\tlimited: (_vm.permission[status].status_blacklist || []).length !== 0\n\t\t\t\t\t\t},on:{\"click\":function($event){_vm.statusSelect = { collection: _vm.permissionName, status: status }}}},[_vm._v(\" \"+_vm._s((_vm.permission[status].status_blacklist || []).length === 0 ? _vm.$t('all') : _vm.$t('limited'))+\" \")])])])}):_vm._e(),_c('button',{staticClass:\"collapse\",on:{\"click\":function($event){_vm.active = !_vm.active}}},[_c('v-icon',{attrs:{\"name\":_vm.active ? 'unfold_less' : 'unfold_more'}})],1),(_vm.fieldsSelect)?_c('portal',{attrs:{\"to\":\"modal\"}},[_c('v-modal',{attrs:{\"title\":_vm.$t('select_fields'),\"buttons\":{ confirm: { text: _vm.$t('confirm') } },\"action-required\":\"\"},on:{\"confirm\":function($event){_vm.fieldsSelect = null}}},[_c('form',{staticClass:\"modal-content\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('fieldset',[_c('legend',{staticClass:\"type-label\"},[_vm._v(_vm._s(_vm.$t('readable_fields')))]),_vm._l((_vm.fieldsWithoutPK),function(field,name){return _c('v-checkbox',{key:(_vm.permissionName + \"-read-\" + name),attrs:{\"id\":(_vm.permissionName + \"-read-\" + name),\"inputValue\":!_vm.blacklist.read.includes(name),\"label\":_vm.$helpers.formatTitle(name),\"value\":name},on:{\"change\":function($event){return _vm.toggleField(name)}}})})],2),_c('fieldset',[_c('legend',{staticClass:\"type-label\"},[_vm._v(_vm._s(_vm.$t('writable_fields')))]),_vm._l((_vm.fields),function(field,name){return _c('v-checkbox',{key:(_vm.permissionName + \"-write-\" + name),attrs:{\"id\":(_vm.permissionName + \"-write-\" + name),\"inputValue\":!_vm.blacklist.write.includes(name),\"label\":_vm.$helpers.formatTitle(name),\"value\":name},on:{\"change\":function($event){return _vm.toggleField(name, true)}}})})],2)])])],1):_vm._e(),(_vm.statusSelect && _vm.statuses)?_c('portal',{attrs:{\"to\":\"modal\"}},[_c('v-modal',{attrs:{\"title\":_vm.$t('select_statuses'),\"buttons\":{ confirm: { text: _vm.$t('confirm') } },\"action-required\":\"\"},on:{\"confirm\":function($event){_vm.statusSelect = null}}},[_c('form',{staticClass:\"modal-content\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('fieldset',[_c('legend',{staticClass:\"type-label\"},[_vm._v(_vm._s(_vm.$t('allowed_status_options')))]),_vm._l((_vm.statuses),function(status,name){return _c('v-checkbox',{key:(\"status-\" + name),attrs:{\"id\":(\"status-\" + name),\"inputValue\":!(_vm.permission[_vm.statusSelect.status].status_blacklist || []).includes(\n\t\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t\t),\"label\":status.name,\"value\":name},on:{\"change\":function($event){return _vm.toggleStatus(name)}}})})],2)])])],1):_vm._e()],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"cell\"},[_c('span',{staticClass:\"mixed\"},[_vm._v(\"--\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-popover',{attrs:{\"placement\":\"left-start\",\"offset\":\"5\"}},[_c('button',{staticClass:\"box\",class:[{ none: _vm.value === null }, _vm.value]},[(_vm.value === 'none')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"close\",\"size\":14}}):(_vm.value === 'mine')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"person\",\"size\":14}}):(_vm.value === 'role')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"group\",\"size\":14}}):(_vm.value === 'full')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"check\",\"size\":14}}):(_vm.value === 'read')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"remove_red_eye\",\"size\":14}}):(_vm.value === 'create')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"add\",\"size\":14}}):(_vm.value === 'update')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"edit\",\"size\":14}}):(_vm.value === 'always')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"announcement\",\"size\":14}}):(_vm.value === 'indeterminate')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"remove\",\"size\":14}}):_vm._e()],1),_c('template',{slot:\"popover\"},[_c('div',{staticClass:\"popover-content\"},_vm._l((_vm.options),function(option){return _c('button',{directives:[{name:\"close-popover\",rawName:\"v-close-popover\"}],key:option,on:{\"click\":function($event){return _vm.$emit('input', option)}}},[_c('div',{staticClass:\"box\",class:option},[(option === 'none')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"close\",\"size\":14}}):(option === 'mine')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"person\",\"size\":14}}):(option === 'role')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"group\",\"size\":14}}):(option === 'full')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"check\",\"size\":14}}):(option === 'read')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"remove_red_eye\",\"size\":14}}):(option === 'create')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"add\",\"small\":\"\"}}):(option === 'update')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"edit\",\"size\":14}}):(option === 'always')?_c('v-icon',{staticClass:\"icon\",attrs:{\"color\":\"--page-background-color\",\"name\":\"announcement\",\"size\":14}}):_vm._e()],1),(option === 'none')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.none'))+\" \")]:_vm._e(),(option === 'mine')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.mine'))+\" \")]:_vm._e(),(option === 'role')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.role'))+\" \")]:_vm._e(),(option === 'full')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.full'))+\" \")]:_vm._e(),(option === 'read')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.read'))+\" \")]:_vm._e(),(option === 'create')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.create'))+\" \")]:_vm._e(),(option === 'update')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.update'))+\" \")]:_vm._e(),(option === 'always')?[_vm._v(\" \"+_vm._s(_vm.$t('permission_states.always'))+\" \")]:_vm._e()],2)}),0)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<v-popover placement=\"left-start\" offset=\"5\">\n\t\t<button class=\"box\" :class=\"[{ none: value === null }, value]\">\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-if=\"value === 'none'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"close\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'mine'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"person\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'role'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"group\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'full'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"check\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'read'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"remove_red_eye\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'create'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"add\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'update'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"edit\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'always'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"announcement\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t\t<v-icon\n\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\tv-else-if=\"value === 'indeterminate'\"\n\t\t\t\tclass=\"icon\"\n\t\t\t\tname=\"remove\"\n\t\t\t\t:size=\"14\"\n\t\t\t/>\n\t\t</button>\n\t\t<template slot=\"popover\">\n\t\t\t<div class=\"popover-content\">\n\t\t\t\t<button\n\t\t\t\t\tv-for=\"option in options\"\n\t\t\t\t\t:key=\"option\"\n\t\t\t\t\tv-close-popover\n\t\t\t\t\t@click=\"$emit('input', option)\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"box\" :class=\"option\">\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-if=\"option === 'none'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"close\"\n\t\t\t\t\t\t\t:size=\"14\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-else-if=\"option === 'mine'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"person\"\n\t\t\t\t\t\t\t:size=\"14\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-else-if=\"option === 'role'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"group\"\n\t\t\t\t\t\t\t:size=\"14\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-else-if=\"option === 'full'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"check\"\n\t\t\t\t\t\t\t:size=\"14\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-else-if=\"option === 'read'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"remove_red_eye\"\n\t\t\t\t\t\t\t:size=\"14\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-else-if=\"option === 'create'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"add\"\n\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-else-if=\"option === 'update'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"edit\"\n\t\t\t\t\t\t\t:size=\"14\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tcolor=\"--page-background-color\"\n\t\t\t\t\t\t\tv-else-if=\"option === 'always'\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"announcement\"\n\t\t\t\t\t\t\t:size=\"14\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<template v-if=\"option === 'none'\">\n\t\t\t\t\t\t{{ $t('permission_states.none') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-if=\"option === 'mine'\">\n\t\t\t\t\t\t{{ $t('permission_states.mine') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-if=\"option === 'role'\">\n\t\t\t\t\t\t{{ $t('permission_states.role') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-if=\"option === 'full'\">\n\t\t\t\t\t\t{{ $t('permission_states.full') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-if=\"option === 'read'\">\n\t\t\t\t\t\t{{ $t('permission_states.read') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-if=\"option === 'create'\">\n\t\t\t\t\t\t{{ $t('permission_states.create') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-if=\"option === 'update'\">\n\t\t\t\t\t\t{{ $t('permission_states.update') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-if=\"option === 'always'\">\n\t\t\t\t\t\t{{ $t('permission_states.always') }}\n\t\t\t\t\t</template>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</template>\n\t</v-popover>\n</template>\n\n<script>\nexport default {\n\tname: 'PermissionToggle',\n\tprops: {\n\t\toptions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => []\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: 'none'\n\t\t}\n\t}\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.box {\n\twidth: 18px;\n\theight: 18px;\n\tborder: 2px solid;\n\tborder-radius: 2px;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\ttransition: var(--fast) var(--transition);\n\tposition: relative;\n}\n\n.none {\n\tborder-color: var(--input-icon-color);\n}\n\n.mine {\n\tbackground-color: var(--orange);\n\tborder-color: var(--orange);\n}\n\n.role {\n\tbackground-color: var(--yellow-700);\n\tborder-color: var(--yellow-700);\n}\n\n.full {\n\tbackground-color: var(--success);\n\tborder-color: var(--success);\n}\n\n.read {\n\tbackground-color: var(--orange);\n\tborder-color: var(--orange);\n}\n\n.create {\n\tbackground-color: var(--orange);\n\tborder-color: var(--orange);\n}\n\n.update {\n\tbackground-color: var(--orange);\n\tborder-color: var(--orange);\n}\n\n.always {\n\tbackground-color: var(--warning);\n\tborder-color: var(--warning);\n}\n\n.indeterminate {\n\tbackground-color: var(--blue-grey-300);\n\tborder-color: var(--blue-grey-300);\n}\n\n.popover-content {\n\tbutton {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\ttext-transform: uppercase;\n\t\tfont-weight: 700;\n\t\tfont-size: 12px;\n\t\tcolor: var(--blue-grey-300);\n\t\tpadding: 0 8px;\n\n\t\t// Hack to fix misaligned icons\n\t\ti {\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t}\n\n\t\t&:hover {\n\t\t\tcolor: var(--blue-grey-600);\n\t\t}\n\t}\n\n\t.box {\n\t\tmargin: 5px 10px 5px 0;\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-toggle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-toggle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./permissions-toggle.vue?vue&type=template&id=1ef68b2d&scoped=true&\"\nimport script from \"./permissions-toggle.vue?vue&type=script&lang=js&\"\nexport * from \"./permissions-toggle.vue?vue&type=script&lang=js&\"\nimport style0 from \"./permissions-toggle.vue?vue&type=style&index=0&id=1ef68b2d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1ef68b2d\",\n  null\n  \n)\n\nexport default component.exports","<template>\n\t<div class=\"v-permissions-row\" :class=\"{ 'system-row': system }\">\n\t\t<div v-if=\"!statuses\" class=\"row\">\n\t\t\t<div class=\"cell collection-title\">\n\t\t\t\t<span v-tooltip=\"permissionName\" :class=\"{ system }\" class=\"name\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$helpers.formatTitle(system ? permissionName.substring(9) : permissionName)\n\t\t\t\t\t}}\n\t\t\t\t</span>\n\t\t\t\t<span class=\"set-all\">\n\t\t\t\t\t<button class=\"on\" type=\"button\" @click.prevent=\"setAll(true)\">\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tv-tooltip=\"$t('turn_all_on')\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"done\"\n\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\tcolor=\"--success\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class=\"off\" type=\"button\" @click.prevent=\"setAll(false)\">\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tv-tooltip=\"$t('turn_all_off')\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"block\"\n\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\tcolor=\"--danger\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"permission.create\"\n\t\t\t\t\t:options=\"['none', 'full']\"\n\t\t\t\t\t@input=\"emitValue('create', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"permission.read\"\n\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t@input=\"emitValue('read', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"permission.update\"\n\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t@input=\"emitValue('update', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"permission.delete\"\n\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t@input=\"emitValue('delete', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"permission.comment\"\n\t\t\t\t\t:options=\"['none', 'read', 'create', 'update', 'full']\"\n\t\t\t\t\t@input=\"emitValue('comment', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<!--\n        <div class=\"cell\">\n          <v-permissions-toggle\n            :value=\"permission.explain\"\n            :options=\"['none', 'create', 'update', 'always']\"\n            @input=\"emitValue('explain', $event);\"\n          />\n        </div>\n      -->\n\t\t\t<div class=\"cell\">\n\t\t\t\t<button\n\t\t\t\t\t:class=\"{ limited: fieldState }\"\n\t\t\t\t\t@click=\"fieldsSelect = { collection: permissionName }\"\n\t\t\t\t>\n\t\t\t\t\t{{ fieldState ? $t('limited') : $t('all') }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"cell\"><span class=\"mixed\">--</span></div>\n\t\t</div>\n\t\t<div v-else class=\"row\">\n\t\t\t<div class=\"cell collection-title\">\n\t\t\t\t<span v-tooltip=\"permissionName\" :class=\"{ system }\" class=\"name\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$helpers.formatTitle(system ? permissionName.substring(9) : permissionName)\n\t\t\t\t\t}}\n\t\t\t\t</span>\n\t\t\t\t<span class=\"set-all\">\n\t\t\t\t\t<button class=\"on\" type=\"button\" @click.prevent=\"setAll(true)\">\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tv-tooltip=\"$t('turn_all_on')\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"done\"\n\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\tcolor=\"--success\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class=\"off\" type=\"button\" @click.prevent=\"setAll(false)\">\n\t\t\t\t\t\t<v-icon\n\t\t\t\t\t\t\tv-tooltip=\"$t('turn_all_off')\"\n\t\t\t\t\t\t\tclass=\"icon\"\n\t\t\t\t\t\t\tname=\"block\"\n\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\tcolor=\"--danger\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"getCombinedVal('create')\"\n\t\t\t\t\t:options=\"['none', 'full']\"\n\t\t\t\t\t@input=\"setAllStatuses('create', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"getCombinedVal('read')\"\n\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t@input=\"setAllStatuses('read', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"getCombinedVal('update')\"\n\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t@input=\"setAllStatuses('update', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"getCombinedVal('delete')\"\n\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t@input=\"setAllStatuses('delete', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t:value=\"getCombinedVal('comment')\"\n\t\t\t\t\t:options=\"['none', 'create', 'update', 'full']\"\n\t\t\t\t\t@input=\"setAllStatuses('comment', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<!--\n        <div class=\"cell\">\n          <v-permissions-toggle\n            :value=\"getCombinedVal('explain')\"\n            :options=\"['none', 'create', 'update', 'always']\"\n            @input=\"setAllStatuses('explain', $event);\"\n          />\n        </div>\n      -->\n\t\t\t<div class=\"cell\">\n\t\t\t\t<button :class=\"{ limited: fieldState }\" @click=\"active = !active\">\n\t\t\t\t\t{{ fieldState ? $t('mixed') : $t('all') }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"cell\">\n\t\t\t\t<button class=\"mixed\" @click=\"active = !active\">Expand</button>\n\t\t\t</div>\n\t\t</div>\n\t\t<template v-if=\"active\">\n\t\t\t<div class=\"sub row\">\n\t\t\t\t<div v-tooltip=\"'System Option'\" class=\"cell\">\n\t\t\t\t\t{{ $t('permission_states.on_create') }}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cell block\"><v-icon name=\"block\" /></div>\n\t\t\t\t<div class=\"cell block\"><v-icon name=\"block\" /></div>\n\t\t\t\t<div class=\"cell block\"><v-icon name=\"block\" /></div>\n\t\t\t\t<div class=\"cell block\"><v-icon name=\"block\" /></div>\n\t\t\t\t<div class=\"cell block\"><v-icon name=\"block\" /></div>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t:class=\"{ limited: getFieldSettingsPerStatus('$create') }\"\n\t\t\t\t\t\t@click=\"fieldsSelect = { collection: permissionName, status: '$create' }\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ getFieldSettingsPerStatus('$create') ? $t('limited') : $t('all') }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"statuses\" class=\"cell\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\tlimited: (permission.$create.status_blacklist || []).length !== 0\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t@click=\"statusSelect = { collection: permissionName, status: '$create' }\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t(permission.$create.status_blacklist || []).length === 0\n\t\t\t\t\t\t\t\t? $t('all')\n\t\t\t\t\t\t\t\t: $t('limited')\n\t\t\t\t\t\t}}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-else class=\"cell\"><span class=\"mixed\">--</span></div>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-if=\"statuses && active\">\n\t\t\t<div\n\t\t\t\tv-for=\"(statusInfo, status) in statuses\"\n\t\t\t\t:key=\"`${permissionName}-${status}`\"\n\t\t\t\tclass=\"sub row\"\n\t\t\t>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<span v-tooltip=\"status\">{{ statusInfo.name }}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t\t:value=\"permission[status].create\"\n\t\t\t\t\t\t:options=\"['none', 'full']\"\n\t\t\t\t\t\t@input=\"emitValue('create', $event, status)\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t\t:value=\"permission[status].read\"\n\t\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t\t@input=\"emitValue('read', $event, status)\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t\t:value=\"permission[status].update\"\n\t\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t\t@input=\"emitValue('update', $event, status)\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t\t:value=\"permission[status].delete\"\n\t\t\t\t\t\t:options=\"permissionOptions\"\n\t\t\t\t\t\t@input=\"emitValue('delete', $event, status)\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<v-permissions-toggle\n\t\t\t\t\t\t:value=\"permission[status].comment\"\n\t\t\t\t\t\t:options=\"['none', 'create', 'update', 'full']\"\n\t\t\t\t\t\t@input=\"emitValue('comment', $event, status)\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<!--\n          <div class=\"cell\">\n            <v-permissions-toggle\n              :value=\"permission[status].explain\"\n              :options=\"['none', 'create', 'update', 'always']\"\n              @input=\"emitValue('explain', $event, status);\"\n            />\n          </div>\n        -->\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t:class=\"{ limited: getFieldSettingsPerStatus(status) }\"\n\t\t\t\t\t\t@click=\"fieldsSelect = { collection: permissionName, status }\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ getFieldSettingsPerStatus(status) ? $t('limited') : $t('all') }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cell\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\tlimited: (permission[status].status_blacklist || []).length !== 0\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t@click=\"statusSelect = { collection: permissionName, status }\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t(permission[status].status_blacklist || []).length === 0\n\t\t\t\t\t\t\t\t? $t('all')\n\t\t\t\t\t\t\t\t: $t('limited')\n\t\t\t\t\t\t}}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t<button class=\"collapse\" @click=\"active = !active\">\n\t\t\t<v-icon :name=\"active ? 'unfold_less' : 'unfold_more'\" />\n\t\t</button>\n\t\t<portal v-if=\"fieldsSelect\" to=\"modal\">\n\t\t\t<v-modal\n\t\t\t\t:title=\"$t('select_fields')\"\n\t\t\t\t:buttons=\"{ confirm: { text: $t('confirm') } }\"\n\t\t\t\taction-required\n\t\t\t\t@confirm=\"fieldsSelect = null\"\n\t\t\t>\n\t\t\t\t<form class=\"modal-content\" @submit.prevent>\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<legend class=\"type-label\">{{ $t('readable_fields') }}</legend>\n\t\t\t\t\t\t<v-checkbox\n\t\t\t\t\t\t\tv-for=\"(field, name) in fieldsWithoutPK\"\n\t\t\t\t\t\t\t:id=\"`${permissionName}-read-${name}`\"\n\t\t\t\t\t\t\t:key=\"`${permissionName}-read-${name}`\"\n\t\t\t\t\t\t\t:inputValue=\"!blacklist.read.includes(name)\"\n\t\t\t\t\t\t\t:label=\"$helpers.formatTitle(name)\"\n\t\t\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t\t\t@change=\"toggleField(name)\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</fieldset>\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<legend class=\"type-label\">{{ $t('writable_fields') }}</legend>\n\t\t\t\t\t\t<v-checkbox\n\t\t\t\t\t\t\tv-for=\"(field, name) in fields\"\n\t\t\t\t\t\t\t:id=\"`${permissionName}-write-${name}`\"\n\t\t\t\t\t\t\t:key=\"`${permissionName}-write-${name}`\"\n\t\t\t\t\t\t\t:inputValue=\"!blacklist.write.includes(name)\"\n\t\t\t\t\t\t\t:label=\"$helpers.formatTitle(name)\"\n\t\t\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t\t\t@change=\"toggleField(name, true)\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</fieldset>\n\t\t\t\t</form>\n\t\t\t</v-modal>\n\t\t</portal>\n\t\t<portal v-if=\"statusSelect && statuses\" to=\"modal\">\n\t\t\t<v-modal\n\t\t\t\t:title=\"$t('select_statuses')\"\n\t\t\t\t:buttons=\"{ confirm: { text: $t('confirm') } }\"\n\t\t\t\taction-required\n\t\t\t\t@confirm=\"statusSelect = null\"\n\t\t\t>\n\t\t\t\t<form class=\"modal-content\" @submit.prevent>\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<legend class=\"type-label\">{{ $t('allowed_status_options') }}</legend>\n\t\t\t\t\t\t<v-checkbox\n\t\t\t\t\t\t\tv-for=\"(status, name) in statuses\"\n\t\t\t\t\t\t\t:id=\"`status-${name}`\"\n\t\t\t\t\t\t\t:key=\"`status-${name}`\"\n\t\t\t\t\t\t\t:inputValue=\"\n\t\t\t\t\t\t\t\t!(permission[statusSelect.status].status_blacklist || []).includes(\n\t\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t:label=\"status.name\"\n\t\t\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t\t\t@change=\"toggleStatus(name)\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</fieldset>\n\t\t\t\t</form>\n\t\t\t</v-modal>\n\t\t</portal>\n\t</div>\n</template>\n\n<script>\nimport VPermissionsToggle from './permissions-toggle.vue';\nimport { find, forEach } from 'lodash';\n\nexport default {\n\tname: 'VPermissionsRow',\n\tcomponents: {\n\t\tVPermissionsToggle\n\t},\n\tprops: {\n\t\tpermission: {\n\t\t\ttype: Object,\n\t\t\trequired: true\n\t\t},\n\t\tstatuses: {\n\t\t\ttype: Object,\n\t\t\tdefault: null\n\t\t},\n\t\tpermissionName: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tfields: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t},\n\t\tsystem: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tactive: false,\n\t\t\tfieldsSelect: false,\n\t\t\tstatusSelect: false\n\t\t};\n\t},\n\tcomputed: {\n\t\tprimaryKeyFieldName() {\n\t\t\treturn find(this.fields, { primary_key: true }).field;\n\t\t},\n\t\tfieldsWithoutPK() {\n\t\t\tconst fieldsCopy = Object.assign({}, this.fields);\n\n\t\t\tdelete fieldsCopy[this.primaryKeyFieldName];\n\n\t\t\treturn fieldsCopy;\n\t\t},\n\t\tcollapsable() {\n\t\t\treturn this.statuses != null;\n\t\t},\n\t\tblacklist() {\n\t\t\tif (!this.fieldsSelect || !this.permission) return;\n\n\t\t\tconst { status } = this.fieldsSelect;\n\n\t\t\tconst permissionInfo = status ? this.permission[status] : this.permission;\n\n\t\t\treturn {\n\t\t\t\tread: permissionInfo.read_field_blacklist || [],\n\t\t\t\twrite: permissionInfo.write_field_blacklist || []\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * Returns if fields have been configured for this row\n\t\t * @return {Boolean}\n\t\t */\n\t\tfieldState() {\n\t\t\tif (!this.permission) return this.$t('all');\n\n\t\t\tif (this.statuses) {\n\t\t\t\tlet all = true;\n\n\t\t\t\tforEach(this.permission, permission => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tpermission.read_field_blacklist.length > 0 ||\n\t\t\t\t\t\tpermission.write_field_blacklist.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tall = false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn !all;\n\t\t\t}\n\n\t\t\tconst readBlacklist = this.permission.read_field_blacklist || [];\n\t\t\tconst writeBlacklist = this.permission.write_field_blacklist || [];\n\n\t\t\tif (readBlacklist.length === 0 && writeBlacklist.length === 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\tuserCreatedField() {\n\t\t\treturn find(this.fields, field => field.type && field.type.toLowerCase() === 'owner');\n\t\t},\n\t\tpermissionOptions() {\n\t\t\t// To provide all options for core table as well as those collections which contains usercreated field\n\t\t\treturn this.userCreatedField || this.permissionName.startsWith('directus_')\n\t\t\t\t? ['none', 'mine', 'role', 'full']\n\t\t\t\t: ['none', 'full'];\n\t\t}\n\t},\n\tmethods: {\n\t\tsetAll(enabled = true) {\n\t\t\tconst newPermission = enabled\n\t\t\t\t? {\n\t\t\t\t\t\tcreate: 'full',\n\t\t\t\t\t\tread: 'full',\n\t\t\t\t\t\tupdate: 'full',\n\t\t\t\t\t\tdelete: 'full',\n\t\t\t\t\t\tcomment: 'full',\n\t\t\t\t\t\texplain: 'none',\n\t\t\t\t\t\tread_field_blacklist: [],\n\t\t\t\t\t\twrite_field_blacklist: [],\n\t\t\t\t\t\tstatus_blacklist: []\n\t\t\t\t  }\n\t\t\t\t: {\n\t\t\t\t\t\tcreate: 'none',\n\t\t\t\t\t\tread: 'none',\n\t\t\t\t\t\tupdate: 'none',\n\t\t\t\t\t\tdelete: 'none',\n\t\t\t\t\t\tcomment: 'none',\n\t\t\t\t\t\texplain: 'none',\n\t\t\t\t\t\tread_field_blacklist: [],\n\t\t\t\t\t\twrite_field_blacklist: [],\n\t\t\t\t\t\tstatus_blacklist: []\n\t\t\t\t  };\n\n\t\t\tif (this.statuses) {\n\t\t\t\tconst changes = [];\n\n\t\t\t\tObject.keys(this.statuses).forEach(status => {\n\t\t\t\t\tObject.keys(newPermission).forEach(permission => {\n\t\t\t\t\t\tchanges.push({\n\t\t\t\t\t\t\tcollection: this.permissionName,\n\t\t\t\t\t\t\tpermission,\n\t\t\t\t\t\t\tvalue: newPermission[permission],\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\treturn this.$emit('input', changes);\n\t\t\t}\n\n\t\t\treturn this.$emit(\n\t\t\t\t'input',\n\t\t\t\tObject.keys(newPermission).map(permission => ({\n\t\t\t\t\tcollection: this.permissionName,\n\t\t\t\t\tpermission,\n\t\t\t\t\tvalue: newPermission[permission]\n\t\t\t\t}))\n\t\t\t);\n\t\t},\n\t\temitValue(permission, value, status = null) {\n\t\t\tthis.$emit('input', {\n\t\t\t\tcollection: this.permissionName,\n\t\t\t\tpermission,\n\t\t\t\tvalue,\n\t\t\t\tstatus\n\t\t\t});\n\t\t},\n\t\tgetCombinedVal(field) {\n\t\t\tif (!this.statuses) return null;\n\n\t\t\tlet value = this.permission[Object.keys(this.statuses)[0]][field];\n\n\t\t\tforEach(this.permission, (status, name) => {\n\t\t\t\tif (name !== '$create' && status[field] !== value) value = 'indeterminate';\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\t/**\n\t\t * If field settings have been configured or not per status\n\t\t * @param  {String} status Status name\n\t\t * @return {Boolean}\n\t\t */\n\t\tgetFieldSettingsPerStatus(status) {\n\t\t\tconst readBlacklist = this.permission[status].read_field_blacklist;\n\t\t\tconst writeBlacklist = this.permission[status].write_field_blacklist;\n\n\t\t\tif (readBlacklist.length === 0 && writeBlacklist.length === 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\tsetAllStatuses(field, value) {\n\t\t\tObject.keys(this.statuses).forEach(status => {\n\t\t\t\tthis.emitValue(field, value, status);\n\t\t\t});\n\t\t},\n\t\ttoggleField(field, write = false) {\n\t\t\tconst { status } = this.fieldsSelect;\n\n\t\t\tconst selectedFields = write ? this.blacklist.write : this.blacklist.read;\n\n\t\t\tconst permissionField = write ? 'write_field_blacklist' : 'read_field_blacklist';\n\n\t\t\tif (selectedFields.includes(field)) {\n\t\t\t\treturn this.emitValue(\n\t\t\t\t\tpermissionField,\n\t\t\t\t\tselectedFields.filter(f => f !== field),\n\t\t\t\t\tstatus\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.emitValue(permissionField, [...selectedFields, field], status);\n\t\t},\n\t\ttoggleStatus(status) {\n\t\t\tif (!this.statuses) return;\n\n\t\t\tconst parentStatus = this.statusSelect.status;\n\t\t\tconst selectedStatuses = this.permission[parentStatus].status_blacklist;\n\n\t\t\tconsole.log([...selectedStatuses, status], parentStatus);\n\n\t\t\tif (selectedStatuses.includes(status)) {\n\t\t\t\treturn this.emitValue(\n\t\t\t\t\t'status_blacklist',\n\t\t\t\t\tselectedStatuses.filter(s => s !== status),\n\t\t\t\t\tparentStatus\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.emitValue('status_blacklist', [...selectedStatuses, status], parentStatus);\n\t\t}\n\t}\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.v-permissions-row {\n\tposition: relative;\n}\n\nfieldset {\n\tpadding: 0;\n}\n\n.collapse {\n\tposition: absolute;\n\ttop: 10px;\n\tright: 3px;\n\n\ti {\n\t\tcolor: var(--input-icon-color);\n\t\ttransition: color var(--fast) var(--transition);\n\t}\n\n\t&:hover i {\n\t\tcolor: var(--input-text-color);\n\t}\n}\n\n.modal-content {\n\tpadding: var(--form-vertical-gap) 20px;\n\n\tfieldset:not(:last-of-type) {\n\t\tmargin-bottom: var(--form-vertical-gap);\n\t}\n\n\tlegend.type-label {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tmargin-bottom: var(--input-label-margin);\n\t}\n\n\tp {\n\t\tmargin-bottom: 10px;\n\t}\n}\n\n.mixed {\n\tcolor: var(--empty-value);\n}\n\n.limited {\n\tcolor: var(--warning);\n}\n\n.block {\n\tcolor: var(--input-border-color);\n}\n\n.collection-title {\n\tposition: relative;\n\tmargin-right: 4px;\n\t.name {\n\t\tdisplay: block;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twidth: 100%;\n\t}\n\t.set-all {\n\t\tposition: absolute;\n\t\ttop: -4px;\n\t\tright: 4px;\n\t\topacity: 0;\n\t\tpadding: 4px 4px 4px 16px;\n\t\tbackground-color: var(--page-background-color);\n\t\tbackground: linear-gradient(90deg, transparent 0%, var(--page-background-color) 25%);\n\t\ttransition: opacity var(--fast) var(--transition);\n\n\t\tbutton {\n\t\t\ttransition: color var(--fast) var(--transition);\n\t\t\tmargin-left: 4px;\n\t\t}\n\t}\n}\n\n.v-permissions-row:hover .set-all {\n\topacity: 1;\n\ttransition: none;\n\n\tbutton:hover {\n\t\ttransition: none;\n\t}\n\n\tbutton:first-of-type:hover {\n\t\tcolor: var(--success);\n\t}\n\n\tbutton:last-of-type:hover {\n\t\tcolor: var(--danger);\n\t}\n}\n\n.system-row {\n\tcolor: var(--input-placeholder-color);\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-row.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-row.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./permissions-row.vue?vue&type=template&id=7a96fab8&scoped=true&\"\nimport script from \"./permissions-row.vue?vue&type=script&lang=js&\"\nexport * from \"./permissions-row.vue?vue&type=script&lang=js&\"\nimport style0 from \"./permissions-row.vue?vue&type=style&index=0&id=7a96fab8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7a96fab8\",\n  null\n  \n)\n\nexport default component.exports","<template>\n\t<div v-if=\"loading\" class=\"v-permissions interface loading\">\n\t\t<v-spinner color=\"--blue-grey-300\" background-color=\"--blue-grey-200\" />\n\t</div>\n\t<div v-else class=\"interface\">\n\t\t<div class=\"v-permissions\">\n\t\t\t<v-permissions-header @toggle-all=\"toggleAll\" />\n\n\t\t\t<div class=\"body\">\n\t\t\t\t<v-notice\n\t\t\t\t\tv-if=\"Object.keys(rows).length === 0\"\n\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\tclass=\"no-collections-message\"\n\t\t\t\t>\n\t\t\t\t\t{{ $t('permissions_no_collections') }}\n\t\t\t\t</v-notice>\n\n\t\t\t\t<v-permissions-row\n\t\t\t\t\tv-for=\"(permission, name) in rows\"\n\t\t\t\t\t:key=\"name\"\n\t\t\t\t\t:permission=\"permission\"\n\t\t\t\t\t:permission-name=\"name\"\n\t\t\t\t\t:statuses=\"(statuses[name] || {}).mapping\"\n\t\t\t\t\t:fields=\"fields[name]\"\n\t\t\t\t\t@input=\"$emit('input', $event)\"\n\t\t\t\t/>\n\n\t\t\t\t<template v-if=\"showDirectus\">\n\t\t\t\t\t<v-permissions-row\n\t\t\t\t\t\tv-for=\"(permission, name) in directusRows\"\n\t\t\t\t\t\t:key=\"name\"\n\t\t\t\t\t\t:permission=\"permission\"\n\t\t\t\t\t\t:permission-name=\"name\"\n\t\t\t\t\t\t:statuses=\"(statuses[name] || {}).mapping\"\n\t\t\t\t\t\t:fields=\"fields[name]\"\n\t\t\t\t\t\tsystem\n\t\t\t\t\t\t@input=\"$emit('input', $event)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t\t<v-switch v-model=\"showDirectus\" :label=\"$t('show_directus_collections')\" />\n\t</div>\n</template>\n\n<script>\nimport VPermissionsHeader from './permissions-header.vue';\nimport VPermissionsRow from './permissions-row.vue';\nimport { pickBy, forEach } from 'lodash';\n\nexport default {\n\tname: 'VPermissions',\n\tcomponents: {\n\t\tVPermissionsHeader,\n\t\tVPermissionsRow\n\t},\n\tprops: {\n\t\tpermissions: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t},\n\t\tstatuses: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t},\n\t\tfields: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowDirectus: false\n\t\t};\n\t},\n\tcomputed: {\n\t\tdirectusRows() {\n\t\t\tconst permissions = pickBy(this.permissions, (permission, collection) =>\n\t\t\t\tcollection.startsWith('directus_')\n\t\t\t);\n\n\t\t\treturn _(permissions)\n\t\t\t\t.toPairs()\n\t\t\t\t.sortBy(0)\n\t\t\t\t.fromPairs()\n\t\t\t\t.value();\n\t\t},\n\t\trows() {\n\t\t\tconst permissions = pickBy(\n\t\t\t\tthis.permissions,\n\t\t\t\t(permission, collection) => collection.startsWith('directus_') === false\n\t\t\t);\n\n\t\t\treturn _(permissions)\n\t\t\t\t.toPairs()\n\t\t\t\t.sortBy(0)\n\t\t\t\t.fromPairs()\n\t\t\t\t.value();\n\t\t}\n\t},\n\tmethods: {\n\t\ttoggleAll(permission) {\n\t\t\tconst changes = [];\n\t\t\tlet full = true;\n\n\t\t\tforEach(this.permissions, (column, collection) => {\n\t\t\t\tif (collection.startsWith('directus_')) return;\n\t\t\t\tif (this.statuses[collection]) {\n\t\t\t\t\tforEach(column, statusColumn => {\n\t\t\t\t\t\tif (statusColumn[permission] === 'full') {\n\t\t\t\t\t\t\tfull = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (column[permission] === 'full') {\n\t\t\t\t\tfull = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this.permissions).forEach(collection => {\n\t\t\t\tif (collection.startsWith('directus_')) return;\n\n\t\t\t\tif (this.statuses[collection]) {\n\t\t\t\t\treturn Object.keys(this.statuses[collection].mapping).forEach(status => {\n\t\t\t\t\t\tchanges.push({\n\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\tpermission,\n\t\t\t\t\t\t\tvalue: full ? 'full' : 'none'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tchanges.push({\n\t\t\t\t\tcollection,\n\t\t\t\t\tpermission,\n\t\t\t\t\tvalue: full ? 'full' : 'none'\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tthis.$emit('input', changes);\n\t\t}\n\t}\n};\n</script>\n<style lang=\"scss\" scoped>\n.interface {\n\tmargin-bottom: 40px;\n}\n.v-permissions {\n\tbackground-color: var(--page-background-color);\n\tborder-radius: var(--border-radius);\n\tborder: var(--input-border-width) solid var(--input-border-color);\n\tmax-width: 632px;\n\tmargin-bottom: 16px;\n\n\t.no-collections-message {\n\t\tmargin-top: 20px;\n\t\tmargin-bottom: 40px;\n\t}\n\n\t::v-deep .body .row {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tpadding: 10px;\n\t\theight: 40px;\n\t\t&.sub {\n\t\t\tposition: relative;\n\t\t\t&::before {\n\t\t\t\tcontent: 'call_missed_outgoing';\n\t\t\t\tfont-family: 'Material Icons';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 8px;\n\t\t\t\ttransform: rotate(45deg);\n\t\t\t\tfont-size: 18px;\n\t\t\t\tcolor: var(--input-icon-color);\n\t\t\t\tfont-feature-settings: 'liga';\n\t\t\t}\n\t\t\t& .cell:first-child {\n\t\t\t\tpadding-left: 2rem;\n\t\t\t}\n\t\t}\n\t\t&:not(.sub) {\n\t\t\tborder-top: var(--input-border-width) solid var(--table-row-border-color);\n\t\t}\n\t}\n\t::v-deep .cell {\n\t\tflex-basis: 36px;\n\t\t&:first-child {\n\t\t\tflex-basis: 220px;\n\t\t\tmax-width: 220px;\n\t\t\toverflow: hidden;\n\t\t}\n\t\t&:nth-last-child(3) {\n\t\t\tflex-basis: 52px;\n\t\t}\n\t\t&:nth-last-child(2) {\n\t\t\tflex-basis: 92px;\n\t\t}\n\t\t&:last-child {\n\t\t\tflex-basis: 100px;\n\t\t}\n\t}\n\n\t&.loading {\n\t\tpadding: 300px 0;\n\t\ttext-align: center;\n\n\t\t.v-spinner {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./permissions.vue?vue&type=template&id=02ac7b55&scoped=true&\"\nimport script from \"./permissions.vue?vue&type=script&lang=js&\"\nexport * from \"./permissions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./permissions.vue?vue&type=style&index=0&id=02ac7b55&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"02ac7b55\",\n  null\n  \n)\n\nexport default component.exports","<template>\n\t<div v-if=\"error\">\n\t\t<v-header :icon-link=\"`/${currentProjectKey}/settings/roles`\" settings />\n\t\t<v-error\n\t\t\tv-if=\"error\"\n\t\t\ticon=\"error_outline\"\n\t\t\tcolor=\"warning\"\n\t\t\t:title=\"$t('server_trouble')\"\n\t\t\t:body=\"$t('server_trouble_copy')\"\n\t\t/>\n\t</div>\n\n\t<div v-else class=\"settings-permissions\">\n\t\t<v-header\n\t\t\t:breadcrumb=\"breadcrumb\"\n\t\t\t:icon-link=\"`/${currentProjectKey}/settings/roles`\"\n\t\t\tsettings\n\t\t>\n\t\t\t<template slot=\"buttons\">\n\t\t\t\t<v-header-button\n\t\t\t\t\tv-if=\"!isNew && !isSystem\"\n\t\t\t\t\t:loading=\"removing\"\n\t\t\t\t\t:label=\"$t('delete')\"\n\t\t\t\t\ticon=\"delete_outline\"\n\t\t\t\t\ticon-color=\"white\"\n\t\t\t\t\tbackground-color=\"danger\"\n\t\t\t\t\thover-color=\"danger-dark\"\n\t\t\t\t\t@click=\"confirmRemove = true\"\n\t\t\t\t/>\n\t\t\t\t<v-header-button\n\t\t\t\t\t:disabled=\"!editing\"\n\t\t\t\t\t:loading=\"saving\"\n\t\t\t\t\t:label=\"$t('save')\"\n\t\t\t\t\ticon=\"check\"\n\t\t\t\t\tbackground-color=\"button-primary-background-color\"\n\t\t\t\t\ticon-color=\"button-primary-text-color\"\n\t\t\t\t\t@click=\"save\"\n\t\t\t\t/>\n\t\t\t</template>\n\t\t</v-header>\n\n\t\t<label class=\"type-label\">{{ $t('permissions') }}</label>\n\t\t<v-notice v-if=\"isAdmin\" color=\"warning\" class=\"admin-note\">\n\t\t\t{{ $t('permissions_admin') }}\n\t\t</v-notice>\n\t\t<v-permissions\n\t\t\tv-else\n\t\t\t:loading=\"!(permissions && statuses)\"\n\t\t\t:permissions=\"permissions\"\n\t\t\t:statuses=\"statuses\"\n\t\t\t:fields=\"permissionFields\"\n\t\t\t@input=\"setPermission\"\n\t\t/>\n\n\t\t<v-form\n\t\t\tv-if=\"fields && role\"\n\t\t\t:fields=\"fields\"\n\t\t\t:values=\"{ ...role, ...roleEdits }\"\n\t\t\t:primary-key=\"role.id\"\n\t\t\tcollection=\"directus_roles\"\n\t\t\t@stage-value=\"stageValue\"\n\t\t/>\n\n\t\t<portal v-if=\"confirmRemove\" to=\"modal\">\n\t\t\t<v-confirm\n\t\t\t\tcolor=\"danger\"\n\t\t\t\t:message=\"$t('delete_role_are_you_sure', { name: role.name })\"\n\t\t\t\t:confirm-text=\"$t('delete')\"\n\t\t\t\t:loading=\"removing\"\n\t\t\t\t@cancel=\"confirmRemove = false\"\n\t\t\t\t@confirm=\"remove\"\n\t\t\t/>\n\t\t</portal>\n\t\t<v-info-sidebar wide>\n\t\t\t<span class=\"type-note\">No settings</span>\n\t\t</v-info-sidebar>\n\t</div>\n</template>\n\n<script>\nimport formatTitle from '@directus/format-title';\nimport api from '../../api';\nimport VPermissions from '../../components/permissions/permissions.vue';\nimport { defaultNone } from '../../store/modules/permissions/defaults';\nimport { mapState } from 'vuex';\nimport { keyBy, mapValues, groupBy } from 'lodash';\n\nexport default {\n\tname: 'SettingsPermissions',\n\tmetaInfo() {\n\t\tif (!this.role) return;\n\n\t\treturn {\n\t\t\ttitle: `${this.$t('settings')} | ${this.$helpers.formatTitle(this.role.name)} ${this.$t(\n\t\t\t\t'permissions'\n\t\t\t)}`\n\t\t};\n\t},\n\tcomponents: {\n\t\tVPermissions\n\t},\n\tdata() {\n\t\treturn {\n\t\t\trole: null,\n\t\t\terror: null,\n\n\t\t\tsaving: false,\n\n\t\t\troleEdits: {},\n\n\t\t\tconfirmRemove: false,\n\t\t\tremoving: false,\n\n\t\t\tfields: {},\n\n\t\t\tpermissionsLoading: false,\n\t\t\tsavedPermissions: {},\n\t\t\tpermissionEdits: {},\n\t\t\tpermissionFields: {},\n\n\t\t\tstatuses: null\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapState(['currentProjectKey']),\n\t\tisNew() {\n\t\t\treturn this.$route.params.id === '+';\n\t\t},\n\t\tisSystem() {\n\t\t\tif (!this.role) return false;\n\n\t\t\tif (this.role.id === 1 || this.role.id === 2) return true;\n\n\t\t\treturn false;\n\t\t},\n\t\tisAdmin() {\n\t\t\treturn this.$route.params.id == 1;\n\t\t},\n\t\tcollections() {\n\t\t\treturn this.$store.state.collections;\n\t\t},\n\t\tbreadcrumb() {\n\t\t\tif (!this.role) return null;\n\n\t\t\tif (this.isNew) {\n\t\t\t\treturn [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: this.$t('settings'),\n\t\t\t\t\t\tpath: `/${this.currentProjectKey}/settings`,\n\t\t\t\t\t\tcolor: 'warning'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: this.$t('roles'),\n\t\t\t\t\t\tpath: `/${this.currentProjectKey}/settings/roles`\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: this.$t('creating_role'),\n\t\t\t\t\t\tpath: `/${this.currentProjectKey}/settings/roles/+`\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tname: this.$t('settings'),\n\t\t\t\t\tpath: `/${this.currentProjectKey}/settings`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: this.$t('roles'),\n\t\t\t\t\tpath: `/${this.currentProjectKey}/settings/roles`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: this.$helpers.formatTitle(this.role.name),\n\t\t\t\t\tpath: `/${this.currentProjectKey}/settings/roles/${this.role.id}`\n\t\t\t\t}\n\t\t\t];\n\t\t},\n\t\tediting() {\n\t\t\treturn (\n\t\t\t\tObject.keys(this.roleEdits).length > 0 ||\n\t\t\t\tObject.keys(this.permissionEdits).length > 0\n\t\t\t);\n\t\t},\n\t\tpermissions() {\n\t\t\tif (!this.statuses) return null;\n\t\t\tif (!this.collections) return null;\n\n\t\t\tconst permissions = {};\n\n\t\t\tObject.keys(this.collections).forEach(collection => {\n\t\t\t\tconst defaultPermission = Object.assign({}, defaultNone);\n\t\t\t\tdefaultPermission.collection = collection;\n\n\t\t\t\tif (this.statuses[collection] == null) {\n\t\t\t\t\tpermissions[collection] = defaultPermission;\n\t\t\t\t\tpermissions[collection].$create = defaultPermission;\n\n\t\t\t\t\tif (this.savedPermissions[collection]) {\n\t\t\t\t\t\tpermissions[collection] = {\n\t\t\t\t\t\t\t...permissions[collection],\n\t\t\t\t\t\t\t...this.savedPermissions[collection]\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.permissionEdits[collection]) {\n\t\t\t\t\t\tpermissions[collection] = {\n\t\t\t\t\t\t\t...permissions[collection],\n\t\t\t\t\t\t\t...this.permissionEdits[collection]\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst statusNames = Object.keys(this.statuses[collection].mapping);\n\t\t\t\tconst statusesToUse = [...statusNames, '$create'];\n\n\t\t\t\tstatusesToUse.forEach(status => {\n\t\t\t\t\tif (!permissions[collection]) {\n\t\t\t\t\t\tpermissions[collection] = {};\n\t\t\t\t\t\tpermissions[collection].$create = defaultPermission;\n\t\t\t\t\t}\n\n\t\t\t\t\tpermissions[collection][status] = {\n\t\t\t\t\t\t...defaultPermission,\n\t\t\t\t\t\tstatus\n\t\t\t\t\t};\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.savedPermissions[collection] &&\n\t\t\t\t\t\tthis.savedPermissions[collection][status]\n\t\t\t\t\t) {\n\t\t\t\t\t\tpermissions[collection][status] = {\n\t\t\t\t\t\t\t...permissions[collection][status],\n\t\t\t\t\t\t\t...this.savedPermissions[collection][status]\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.permissionEdits[collection] &&\n\t\t\t\t\t\tthis.permissionEdits[collection][status]\n\t\t\t\t\t) {\n\t\t\t\t\t\tpermissions[collection][status] = {\n\t\t\t\t\t\t\t...permissions[collection][status],\n\t\t\t\t\t\t\t...this.permissionEdits[collection][status]\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn permissions;\n\t\t}\n\t},\n\tbeforeRouteEnter(to, from, next) {\n\t\tconst { id } = to.params;\n\n\t\tconst isNew = id === '+';\n\n\t\tif (isNew) {\n\t\t\treturn api\n\t\t\t\t.getFields('directus_roles')\n\t\t\t\t.then(res => res.data)\n\t\t\t\t.then(fieldsArray => {\n\t\t\t\t\tnext(vm => {\n\t\t\t\t\t\tconst fields = keyBy(\n\t\t\t\t\t\t\tfieldsArray.map(field => ({\n\t\t\t\t\t\t\t\t...field,\n\t\t\t\t\t\t\t\tname: formatTitle(field.field)\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t'field'\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvm.$data.fields = fields;\n\t\t\t\t\t\tvm.$data.role = mapValues(fields, field => field.default_value);\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tnext(vm => {\n\t\t\t\t\t\tvm.$data.error = error;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\t\tconst params = {\n\t\t\tfields: '*.*.*'\n\t\t};\n\n\t\treturn Promise.all([api.getRole(+id, params), api.getFields('directus_roles')])\n\t\t\t.then(([roleRes, fieldsRes]) => ({\n\t\t\t\trole: roleRes.data,\n\t\t\t\tfields: keyBy(\n\t\t\t\t\tfieldsRes.data.map(field => ({\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\tname: formatTitle(field.field)\n\t\t\t\t\t})),\n\t\t\t\t\t'field'\n\t\t\t\t)\n\t\t\t}))\n\t\t\t.then(({ role, fields }) => {\n\t\t\t\tnext(vm => {\n\t\t\t\t\tvm.$data.role = role;\n\t\t\t\t\tvm.$data.fields = fields;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tnext(vm => {\n\t\t\t\t\tvm.$data.error = error;\n\t\t\t\t});\n\t\t\t});\n\t},\n\twatch: {\n\t\t$route() {\n\t\t\tthis.loadPermissions();\n\t\t}\n\t},\n\tcreated() {\n\t\tthis.loadPermissions();\n\t},\n\tmethods: {\n\t\tstageValue({ field, value }) {\n\t\t\tthis.roleEdits = {\n\t\t\t\t...this.roleEdits,\n\t\t\t\t[field]: value\n\t\t\t};\n\t\t},\n\t\tsave() {\n\t\t\tthis.saving = true;\n\n\t\t\tconst id = this.$helpers.shortid.generate();\n\t\t\tthis.$store.dispatch('loadingStart', { id });\n\n\t\t\tthis.saveRole()\n\t\t\t\t.then(this.savePermissions)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.$store.dispatch('loadingFinished', id);\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tthis.$router.push(`/${this.currentProjectKey}/settings/roles`);\n\t\t\t\t\tthis.$store.dispatch('getCurrentUser');\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tthis.$store.dispatch('loadingFinished', id);\n\t\t\t\t\tthis.$events.emit('error', {\n\t\t\t\t\t\tnotify: this.$t('something_went_wrong_body'),\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t},\n\t\tsaveRole() {\n\t\t\tif (Object.keys(this.roleEdits).length === 0) return Promise.resolve();\n\n\t\t\tif (this.isNew) {\n\t\t\t\treturn this.$api.createRole(this.roleEdits);\n\t\t\t}\n\n\t\t\treturn this.$api.updateRole(this.role.id, this.roleEdits);\n\t\t},\n\t\tsavePermissions() {\n\t\t\tif (Object.keys(this.permissionEdits).length === 0) return Promise.resolve();\n\n\t\t\t// We have to split up all the edits in updates and to-be-created items\n\t\t\t// because they need to be send to the API with a different HTTP Method\n\t\t\t// (PATCH vs POST)\n\t\t\t//\n\t\t\t// If the parent permission of the edit has an ID field, it exists in the DB\n\n\t\t\tlet create = [];\n\t\t\tlet update = [];\n\n\t\t\tObject.keys(this.permissionEdits).forEach(collection => {\n\t\t\t\tif (this.statuses[collection]) {\n\t\t\t\t\tObject.keys(this.permissionEdits[collection]).forEach(status => {\n\t\t\t\t\t\tconst id =\n\t\t\t\t\t\t\t(this.savedPermissions[collection] &&\n\t\t\t\t\t\t\t\tthis.savedPermissions[collection][status] &&\n\t\t\t\t\t\t\t\tthis.savedPermissions[collection][status].id) ||\n\t\t\t\t\t\t\tnull;\n\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tupdate.push({\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t...this.permissionEdits[collection][status]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcreate.push({\n\t\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\t\trole: this.role.id,\n\t\t\t\t\t\t\t\t...this.permissionEdits[collection][status]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tif (this.permissionEdits[collection].$create) {\n\t\t\t\t\t\tconst id =\n\t\t\t\t\t\t\t(this.savedPermissions[collection] &&\n\t\t\t\t\t\t\t\tthis.savedPermissions[collection].$create &&\n\t\t\t\t\t\t\t\tthis.savedPermissions[collection].$create.id) ||\n\t\t\t\t\t\t\tnull;\n\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tupdate.push({\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t...this.permissionEdits[collection].$create\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcreate.push({\n\t\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\t\tstatus: '$create',\n\t\t\t\t\t\t\t\trole: this.role.id,\n\t\t\t\t\t\t\t\t...this.permissionEdits[collection].$create\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.$delete(this.permissionEdits[collection], '$create');\n\n\t\t\t\t\t\tif (Object.keys(this.permissionEdits[collection]) === 0) return;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst id =\n\t\t\t\t\t\t(this.savedPermissions[collection] &&\n\t\t\t\t\t\t\tthis.savedPermissions[collection].id) ||\n\t\t\t\t\t\tnull;\n\n\t\t\t\t\tif (id) {\n\t\t\t\t\t\tupdate.push({\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t...this.permissionEdits[collection]\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcreate.push({\n\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\trole: this.role.id,\n\t\t\t\t\t\t\t...this.permissionEdits[collection]\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn Promise.all([\n\t\t\t\tcreate.length > 0 ? this.$api.createPermissions(create) : Promise.resolve(),\n\t\t\t\tupdate.length > 0 ? this.$api.updatePermissions(update) : Promise.resolve()\n\t\t\t]);\n\t\t},\n\t\tremove() {\n\t\t\tif (this.isSystem) return;\n\n\t\t\tthis.removing = true;\n\n\t\t\tconst id = this.$helpers.shortid.generate();\n\t\t\tthis.$store.dispatch('loadingStart', { id });\n\n\t\t\treturn this.$api\n\t\t\t\t.deleteRole(this.role.id)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.$store.dispatch('loadingFinished', id);\n\t\t\t\t\tthis.removing = false;\n\t\t\t\t\tthis.$router.push(`/${this.currentProjectKey}/settings/roles`);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tthis.$store.dispatch('loadingFinished', id);\n\t\t\t\t\tthis.$events.emit('error', {\n\t\t\t\t\t\tnotify: this.$t('something_went_wrong_body'),\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t},\n\t\tloadPermissions() {\n\t\t\tif (this.isNew) return;\n\n\t\t\tthis.permissionsLoading = true;\n\n\t\t\tconst id = this.$helpers.shortid.generate();\n\t\t\tthis.$store.dispatch('loadingStart', { id });\n\n\t\t\treturn Promise.all([\n\t\t\t\tthis.$api.getAllFields(),\n\t\t\t\tthis.$api.getPermissions({\n\t\t\t\t\t'filter[role][eq]': this.$route.params.id,\n\t\t\t\t\tlimit: -1\n\t\t\t\t})\n\t\t\t])\n\t\t\t\t.then(([fieldsRes, permissionsRes]) => ({\n\t\t\t\t\tfields: fieldsRes.data,\n\t\t\t\t\tpermissions: permissionsRes.data\n\t\t\t\t}))\n\t\t\t\t.then(({ fields, permissions }) => {\n\t\t\t\t\tthis.$store.dispatch('loadingFinished', id);\n\t\t\t\t\tconst savedPermissions = {};\n\n\t\t\t\t\tpermissions.forEach(permission => {\n\t\t\t\t\t\tif (permission.status == null) {\n\t\t\t\t\t\t\tsavedPermissions[permission.collection] = {\n\t\t\t\t\t\t\t\t...permission\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!savedPermissions[permission.collection])\n\t\t\t\t\t\t\t\tsavedPermissions[permission.collection] = {};\n\t\t\t\t\t\t\tsavedPermissions[permission.collection][permission.status] = {\n\t\t\t\t\t\t\t\t...permission\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.permissionsLoading = false;\n\t\t\t\t\tthis.savedPermissions = savedPermissions;\n\n\t\t\t\t\tthis.statuses = keyBy(\n\t\t\t\t\t\tfields\n\t\t\t\t\t\t\t.filter(field => field.type && field.type.toLowerCase() === 'status')\n\t\t\t\t\t\t\t.map(field => ({\n\t\t\t\t\t\t\t\tmapping: field.options.status_mapping,\n\t\t\t\t\t\t\t\tcollection: field.collection\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t'collection'\n\t\t\t\t\t);\n\n\t\t\t\t\tthis.permissionFields = mapValues(groupBy(fields, 'collection'), array =>\n\t\t\t\t\t\tkeyBy(array, 'field')\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tthis.$store.dispatch('loadingFinished', id);\n\t\t\t\t\tthis.$events.emit('error', {\n\t\t\t\t\t\tnotify: this.$t('something_went_wrong_body'),\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t},\n\t\tsetPermission(value) {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn value.forEach(permission => this.stagePermission(permission));\n\t\t\t}\n\n\t\t\treturn this.stagePermission(value);\n\t\t},\n\t\tstagePermission({ collection, permission, value, status = null }) {\n\t\t\tif (status === null) {\n\t\t\t\treturn this.$set(this.permissionEdits, collection, {\n\t\t\t\t\t...(this.permissionEdits[collection] || {}),\n\t\t\t\t\t[permission]: value\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.permissionEdits[collection] == null) {\n\t\t\t\tthis.$set(this.permissionEdits, collection, {});\n\t\t\t}\n\n\t\t\treturn this.$set(this.permissionEdits, collection, {\n\t\t\t\t...(this.permissionEdits[collection] || {}),\n\t\t\t\t[status]: {\n\t\t\t\t\t...(this.permissionEdits[collection][status] || {}),\n\t\t\t\t\t[permission]: value\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.settings-permissions {\n\tpadding: var(--page-padding-top) var(--page-padding) var(--page-padding-bottom);\n}\n\nlabel {\n\tmargin-bottom: var(--input-label-margin);\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\nh2 {\n\tmargin-bottom: 20px;\n\n\t&:not(:first-of-type) {\n\t\tmargin-top: 60px;\n\t}\n}\n\n.admin-note {\n\tmargin-bottom: 40px;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./permissions.vue?vue&type=template&id=bb57a082&scoped=true&\"\nimport script from \"./permissions.vue?vue&type=script&lang=js&\"\nexport * from \"./permissions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./permissions.vue?vue&type=style&index=0&id=bb57a082&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"bb57a082\",\n  null\n  \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-toggle.vue?vue&type=style&index=0&id=1ef68b2d&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-toggle.vue?vue&type=style&index=0&id=1ef68b2d&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-header.vue?vue&type=style&index=0&id=59c49af0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissions-header.vue?vue&type=style&index=0&id=59c49af0&lang=scss&scoped=true&\""],"sourceRoot":""}