{"version":3,"sources":["webpack:///./src/auxillary/deep-copy.ts","webpack:///./src/views/admin/UsersAdmin.vue?0237","webpack:///./src/components/admin/UsersTable.vue?5ce4","webpack:///./src/components/admin/UserEditDialog.vue?117c","webpack:///./src/components/admin/UserEditDialog.vue","webpack:///./src/components/admin/UserEditDialog.vue?f9c5","webpack:///./src/components/admin/UserEditDialog.vue?5721","webpack:///./src/components/admin/UsersTable.vue","webpack:///./src/components/admin/UsersTable.vue?4867","webpack:///./src/components/admin/UsersTable.vue?30af","webpack:///./src/components/admin/RoleTable.vue?822e","webpack:///./src/components/admin/RoleEditDialog.vue?b1fe","webpack:///./src/components/admin/RoleEditDialog.vue","webpack:///./src/components/admin/RoleEditDialog.vue?9d26","webpack:///./src/components/admin/RoleEditDialog.vue?f263","webpack:///./src/components/admin/RoleTable.vue","webpack:///./src/components/admin/RoleTable.vue?0347","webpack:///./src/components/admin/RoleTable.vue?245e","webpack:///./src/views/admin/UsersAdmin.vue","webpack:///./src/views/admin/UsersAdmin.vue?d648","webpack:///./src/views/admin/UsersAdmin.vue?5dfb","webpack:///./src/auxillary/date.ts","webpack:///../../../src/components/VTooltip/VTooltip.ts","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./src/components/ConfirmDialog.vue?9fdd","webpack:///./src/components/ConfirmDialog.vue","webpack:///./src/components/ConfirmDialog.vue?3042","webpack:///./src/components/ConfirmDialog.vue?e2d0"],"names":["deepCopy","src","JSON","parse","stringify","render","_vm","this","_h","$createElement","_c","_self","attrs","_e","staticRenderFns","staticClass","headers","users","search","loading","options","scopedSlots","_u","key","fn","_v","model","value","callback","$$v","expression","directives","name","rawName","ref","on","_g","$event","showNewDialog","proxy","item","isDeactivated","_s","userName","role","displayName","showEditDialog","showDeleteDialog","itemToDelete","deleteItem","itemToEdit","show","user","id","valid","rules","required","validUserName","roles","roleId","min","uppercase","lowercase","number","nonAlphanumeric","passwordString","email","$emit","save","v","test","pattern","length","loadAll","createUser","emailConfirmed","isDeleted","noLogin","updateUser","console","error","immediate","component","VBtn","VCard","VCardActions","VCardText","VCardTitle","VDialog","VForm","VIcon","VSelect","VSpacer","VTextField","_loading","text","sortable","width","align","sortBy","sortDesc","UserDto","group","idToDelete","deactivateUser","components","UserEditDialog","ConfirmDialog","VChip","VDataTable","VDivider","VToolbar","VToolbarTitle","VTooltip","identifier","rights","roleRights","updateValues","filter","r","map","createRole","rightsIds","updateRole","sort","r1","r2","toString","localeCompare","deactivateRole","RoleEditDialog","load","hasRight","UserTable","RoleTable","VCol","VContainer","VRow","getDateParts","d","Date","dtf","Intl","DateTimeFormat","year","month","day","hour","minute","second","formatToParts","resolveDelimters","str","dateDelimiter","timeDelimiter","replace","RegExp","formatDate","da","mo","ye","isDate","date","isNaN","valueOf","props","closeDelay","type","Number","default","disabled","fixed","openDelay","openOnHover","tag","transition","String","data","calculatedMinWidth","closeDependents","computed","calculatedLeft","content","unknown","activatorLeft","attach","activator","left","top","right","parseInt","calcXOverflow","dimensions","calculatedTop","activatorTop","bottom","calcYOverflow","classes","computedTransition","isActive","offsetY","offsetX","styles","maxWidth","minWidth","opacity","zIndex","activeZIndex","beforeMount","mounted","methods","activate","requestAnimationFrame","deactivate","genActivatorListeners","listeners","e","genTransition","genContent","setBackgroundColor","class","activatorFixed","style","isContentActive","h","showLazyContent","DESCRIPTORS","global","isForced","inheritIfRequired","defineProperty","f","getOwnPropertyNames","isRegExp","getFlags","stickyHelpers","redefine","fails","setInternalState","set","setSpecies","wellKnownSymbol","MATCH","NativeRegExp","RegExpPrototype","prototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","FORCED","RegExpWrapper","flags","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","undefined","constructor","source","call","indexOf","result","configurable","get","it","keys","index","title","domProps","message","unConfirmIcon","unConfirmText","confirmIcon","confirmText"],"mappings":"kHAAM,SAAUA,EAAYC,GACxB,OAAOC,KAAKC,MAAMD,KAAKE,UAAUH,I,4KCDrC,IAAII,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAAEN,EAAe,YAAEI,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,MAAM,CAACF,EAAG,eAAe,GAAGJ,EAAIO,KAAMP,EAAe,YAAEI,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,MAAM,CAACF,EAAG,eAAe,GAAGJ,EAAIO,MAAM,IAAI,IAC3YC,EAAkB,G,gGCDlB,EAAS,WAAa,IAAIR,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACK,YAAY,cAAcH,MAAM,CAAC,QAAUN,EAAIU,QAAQ,MAAQV,EAAIW,MAAM,OAASX,EAAIY,OAAO,QAAUZ,EAAIa,QAAQ,QAAUb,EAAIc,SAASC,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,MAAMC,GAAG,WAAW,MAAO,CAACd,EAAG,YAAY,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQ,UAAU,CAACF,EAAG,kBAAkB,CAACJ,EAAImB,GAAG,sBAAsBf,EAAG,YAAY,CAACK,YAAY,OAAOH,MAAM,CAAC,MAAQ,GAAG,SAAW,MAAMF,EAAG,YAAYA,EAAG,eAAe,CAACE,MAAM,CAAC,cAAc,YAAY,MAAQ,QAAQ,cAAc,GAAG,eAAe,IAAIc,MAAM,CAACC,MAAOrB,EAAU,OAAEsB,SAAS,SAAUC,GAAMvB,EAAIY,OAAOW,GAAKC,WAAW,YAAYpB,EAAG,YAAY,CAACqB,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAiB,cAAEwB,WAAW,kBAAkBf,YAAY,OAAOH,MAAM,CAAC,MAAQ,GAAG,SAAW,MAAMF,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAIS,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASU,GACn7B,IAAIC,EAAKD,EAAIC,GACb,MAAO,CAACzB,EAAG,QAAQJ,EAAI8B,GAAG,CAACL,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAiB,cAAEwB,WAAW,kBAAkBlB,MAAM,CAAC,MAAQ,YAAY,MAAQ,GAAG,IAAM,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAIgC,mBAAmBH,GAAI,CAACzB,EAAG,SAAS,CAACJ,EAAImB,GAAG,qBAAqB,SAAS,CAACf,EAAG,OAAO,CAACJ,EAAImB,GAAG,6BAA6B,KAAKc,OAAM,GAAM,CAAChB,IAAI,gBAAgBC,GAAG,SAASU,GAChY,IAAIM,EAAON,EAAIM,KACf,MAAO,CAAC9B,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAIS,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASU,GAC1F,IAAIC,EAAKD,EAAIC,GACb,MAAO,CAACzB,EAAG,SAASJ,EAAI8B,GAAG,CAACxB,MAAM,CAAC,MAAQ4B,EAAKC,cAAgB,QAAU,YAAYN,GAAI,CAAC7B,EAAImB,GAAG,IAAInB,EAAIoC,GAAGF,EAAKG,UAAU,WAAW,MAAK,IAAO,CAAEH,EAAkB,cAAE9B,EAAG,OAAO,CAACJ,EAAImB,GAAG,8BAA8BnB,EAAIO,UAAU,CAACU,IAAI,wBAAwBC,GAAG,SAASU,GAChR,IAAIM,EAAON,EAAIM,KACf,MAAO,CAAClC,EAAImB,GAAG,IAAInB,EAAIoC,GAAGF,EAAKI,KAAKC,aAAa,QAAQ,CAACtB,IAAI,eAAeC,GAAG,SAASU,GACzF,IAAIM,EAAON,EAAIM,KACf,MAAO,CAAC9B,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAIS,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASU,GAC1F,IAAIC,EAAKD,EAAIC,GACb,MAAO,CAACzB,EAAG,QAAQJ,EAAI8B,GAAG,CAACL,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAe,YAAEwB,WAAW,gBAAgBf,YAAY,OAAOH,MAAM,CAAC,MAAQ,OAAO,MAAQ,GAAG,IAAM,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAIwC,eAAeN,MAASL,GAAI,CAACzB,EAAG,SAAS,CAACJ,EAAImB,GAAG,cAAc,OAAO,MAAK,IAAO,CAACf,EAAG,OAAO,CAACJ,EAAImB,GAAG,yBAAyBf,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAIS,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASU,GAC9a,IAAIC,EAAKD,EAAIC,GACb,MAAO,CAACzB,EAAG,QAAQJ,EAAI8B,GAAG,CAACL,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAqB,kBAAEwB,WAAW,sBAAsBlB,MAAM,CAAC,MAAQ,QAAQ,MAAQ,GAAG,IAAM,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAIyC,iBAAiBP,MAASL,GAAI,CAACzB,EAAG,SAAS,CAACJ,EAAImB,GAAG,eAAe,OAAO,MAAK,IAAO,CAACf,EAAG,OAAO,CAACJ,EAAImB,GAAG,kCAAmCnB,EAAgB,aAAEI,EAAG,iBAAiB,CAACE,MAAM,CAAC,KAA2B,MAApBN,EAAI0C,aAAqB,MAAQ,sBAAsB,QAAW,6BAAgC1C,EAAI0C,aAAwB,YAAI,SAAY1C,EAAI0C,aAAqB,SAAI,mBAAoBb,GAAG,CAAC,QAAU,SAASE,GAAQ,OAAO/B,EAAI2C,WAAW3C,EAAI0C,eAAe,UAAY,SAASX,GAAQ/B,EAAI0C,aAAe,SAAS1C,EAAIO,KAAMP,EAAc,WAAEI,EAAG,mBAAmB,CAACE,MAAM,CAAC,KAAyB,MAAlBN,EAAI4C,WAAmB,KAAO5C,EAAI4C,YAAYf,GAAG,CAAC,QAAU,SAASE,GAAQ/B,EAAI4C,WAAa,MAAM,UAAY,SAASb,GAAQ/B,EAAI4C,WAAa,SAAS5C,EAAIO,MAAM,IACx7B,EAAkB,GCflB,G,oBAAS,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACE,MAAM,CAAC,WAAa,GAAG,YAAY,OAAOc,MAAM,CAACC,MAAOrB,EAAQ,KAAEsB,SAAS,SAAUC,GAAMvB,EAAI6C,KAAKtB,GAAKC,WAAW,SAAS,CAAExB,EAAQ,KAAEI,EAAG,SAAS,CAACE,MAAM,CAAC,QAAUN,EAAIa,UAAU,CAACT,EAAG,eAAe,CAACK,YAAY,YAAY,CAACL,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAG,uBAAuBnB,EAAImB,GAAG,IAAInB,EAAIoC,GAAGpC,EAAI8C,KAAKC,GAAK,oBAAsB,kBAAkB,MAAM,GAAG3C,EAAG,cAAc,CAACA,EAAG,SAAS,CAACwB,IAAI,OAAOR,MAAM,CAACC,MAAOrB,EAAS,MAAEsB,SAAS,SAAUC,GAAMvB,EAAIgD,MAAMzB,GAAKC,WAAW,UAAU,CAACpB,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,CAACN,EAAIiD,MAAMC,UAAU,MAAQ,cAAc,SAAW,IAAI9B,MAAM,CAACC,MAAOrB,EAAe,YAAEsB,SAAS,SAAUC,GAAMvB,EAAIuC,YAAYhB,GAAKC,WAAW,iBAAiBpB,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,CAACN,EAAIiD,MAAMC,SAAUlD,EAAIiD,MAAME,eAAe,MAAQ,eAAe,SAAW,IAAI/B,MAAM,CAACC,MAAOrB,EAAY,SAAEsB,SAAS,SAAUC,GAAMvB,EAAIqC,SAASd,GAAKC,WAAW,cAAcpB,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,CAACN,EAAIiD,MAAMC,UAAU,MAAQ,QAAQ,MAAQlD,EAAIoD,MAAM,YAAY,cAAc,aAAa,MAAMhC,MAAM,CAACC,MAAOrB,EAAU,OAAEsB,SAAS,SAAUC,GAAMvB,EAAIqD,OAAO9B,GAAKC,WAAW,YAAYpB,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,WAAW,MAAQ,CAACN,EAAIiD,MAAMC,SAAUlD,EAAIiD,MAAMK,IAAKtD,EAAIiD,MAAMM,UAAWvD,EAAIiD,MAAMO,UAAWxD,EAAIiD,MAAMQ,OAAQzD,EAAIiD,MAAMS,iBAAiB,SAAW,IAAItC,MAAM,CAACC,MAAOrB,EAAkB,eAAEsB,SAAS,SAAUC,GAAMvB,EAAI2D,eAAepC,GAAKC,WAAW,oBAAoBpB,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,CAACN,EAAIiD,MAAMC,SAAUlD,EAAIiD,MAAMW,OAAO,MAAQ,QAAQ,SAAW,IAAIxC,MAAM,CAACC,MAAOrB,EAAS,MAAEsB,SAAS,SAAUC,GAAMvB,EAAI4D,MAAMrC,GAAKC,WAAW,YAAY,IAAI,GAAGpB,EAAG,iBAAiB,CAACA,EAAG,YAAYA,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,SAASuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAI6D,MAAM,gBAAgB,CAACzD,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAG,YAAYnB,EAAImB,GAAG,gBAAgB,GAAGf,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,UAAU,UAAYN,EAAIgD,OAAOnB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAI8D,UAAU,CAAC1D,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAGnB,EAAIoC,GAAGpC,EAAI8C,KAAKC,GAAK,UAAY,cAAc/C,EAAImB,GAAG,IAAInB,EAAIoC,GAAGpC,EAAI8C,KAAKC,GAAK,SAAW,WAAW,MAAM,IAAI,IAAI,GAAG/C,EAAIO,MAAM,KACxrE,EAAkB,G,YC6DD,EAArB,yG,0BAaE,EAAAyC,OAAiB,EACjB,EAAAnC,SAAmB,EAEnB,EAAAoC,MAAa,CACXC,SAAU,SAACa,GAAD,QAAiBA,GAAK,iBAChCZ,cAAe,SAACY,GAAD,OAAaA,GAAK,oBAAoBC,KAAKD,IACtD,0EACJH,MAAO,SAACG,GACN,IAAME,EAAU,uJAChB,OAAOA,EAAQD,KAAKD,IAAM,2BAE5BT,IAAK,SAACS,GAAD,OAAYA,EAAEG,QAAU,GAAK,wBAClCX,UAAW,SAACQ,GAAD,MAAa,QAAQC,KAAKD,IAAO,+BAC5CP,UAAW,SAACO,GAAD,MAAa,QAAQC,KAAKD,IAAO,+BAC5CN,OAAQ,SAACM,GAAD,MAAa,QAAQC,KAAKD,IAAO,wBACzCL,gBAAiB,SAACK,GAAD,MAAa,OAAOC,KAAKD,IAAO,kDA5BrD,8MAoCI9D,KAAKY,SAAU,EApCnB,SAqCU,OAAYsD,UArCtB,OAsCIlE,KAAKY,SAAU,EAtCnB,6IA4CgBiC,GAAoB,MAC3BA,IAEL7C,KAAKoC,SAAWS,EAAKT,SACrBpC,KAAKsC,YAAcO,EAAKP,YACxBtC,KAAK2D,MAAQd,EAAKc,MAClB3D,KAAKoD,OAAL,UAAcP,EAAKR,YAAnB,aAAc,EAAWS,GACzB9C,KAAK0D,eAAiB,MAnD1B,2MAwDM1D,KAAKY,SAAU,EACVZ,KAAK6C,KAAKC,GAzDrB,gCA0Dc,OAAYqB,WAAW,CAC3B/B,SAAQ,UAAEpC,KAAKoC,gBAAP,QAAmB,GAC3BE,YAAW,UAAEtC,KAAKsC,mBAAP,QAAsB,GACjCqB,MAAK,UAAE3D,KAAK2D,aAAP,QAAgB,GACrBD,eAAc,UAAE1D,KAAK0D,sBAAP,QAAyB,GACvCN,OAAM,UAAEpD,KAAKoD,cAAP,QAAiB,GACvBgB,eAA8B,MAAdpE,KAAK2D,MACrBU,WAAW,EACXC,SAAS,IAlEnB,6CAqEc,OAAYC,WAAW,CAC3BzB,GAAI9C,KAAK6C,KAAKC,GACdV,SAAQ,UAAEpC,KAAKoC,gBAAP,QAAmB,GAC3BE,YAAW,UAAEtC,KAAKsC,mBAAP,QAAsB,GACjCqB,MAAK,UAAE3D,KAAK2D,aAAP,QAAgB,GACrBP,OAAM,UAAEpD,KAAKoD,cAAP,QAAiB,GACvBgB,eAA8B,MAAdpE,KAAK2D,MACrBU,WAAW,EACXC,SAAS,IA7EnB,OAgFMtE,KAAK4D,MAAM,WAhFjB,qDAkFMY,QAAQC,MAAM,6BAAd,MAlFN,yBAoFMzE,KAAKY,SAAU,EApFrB,kKAgCI,OAAO,OAAYuC,UAhCvB,GAAwC,QAEtC,gBADC,eAAK,CAACF,UAAU,K,2BAIjB,gBADC,eAAK,CAACA,UAAU,K,2BAwCjB,gBAHC,eAAM,OAAQ,CACbyB,WAAW,K,4BAUZ,MApDkB,EAAU,gBAD9B,eAAU,KACU,WC9DsY,I,6ICOvZC,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,EAAiB,QAehC,IAAkBA,EAAW,CAACC,OAAA,KAAKC,QAAA,KAAMC,aAAA,OAAaC,UAAA,OAAUC,WAAA,OAAWC,UAAA,KAAQC,QAAA,KAAMC,QAAA,KAAMC,UAAA,KAAQC,UAAA,KAAQC,aAAA,O,wCC6E1F,EAArB,yG,0BACU,EAAAC,UAAoB,EAE5B,EAAA9E,QAAe,CACb,CAAC+E,KAAM,cAAepE,MAAO,eAC7B,CAACoE,KAAM,eAAgBpE,MAAO,YAC9B,CAACoE,KAAM,QAASpE,MAAO,oBACvB,CAACoE,KAAM,QAASpE,MAAO,SACvB,CAACoE,KAAM,WAAYpE,MAAO,UAAWqE,UAAU,EAAOC,MAAO,QAASC,MAAO,WAE/E,EAAA9E,QAAe,CACb+E,OAAQ,CAAC,eACTC,SAAU,EAAC,IAEb,EAAAlF,OAAiB,GAEjB,EAAA8B,aAAmD,KACnD,EAAAE,WAA4C,KAjB9C,uNAwCU,OAAYuB,UAxCtB,uBAyCU,OAAYA,UAzCtB,0IA6CIlE,KAAK2C,WAAa,IAAI,OAAemD,UA7CzC,qCAgDiBC,GACb/F,KAAK2C,WAAa,eAASoD,KAjD/B,uCAoDmBA,GACf/F,KAAKyC,aAAesD,IArDxB,4LAyDiC,OAAzB,UAAA/F,KAAKyC,oBAAL,eAAmBK,IAzD3B,wDA2DI9C,KAAKuF,UAAW,EACVS,EA5DV,UA4DuBhG,KAAKyC,oBA5D5B,aA4DuB,EAAmBK,GACtC9C,KAAKyC,aAAe,KA7DxB,SA8DU,OAAYwD,eAAeD,GA9DrC,OA+DIhG,KAAKuF,UAAW,EA/DpB,qIAoBI,OAAO,OAAY7E,QApBvB,8BAwBI,OAAOV,KAAKuF,UAAY,OAAY3E,SAAW,OAAYA,UAxB/D,oCA4BI,OAAO,IA5BX,kCAgCI,OAAO,IAhCX,wCAoCI,OAAO,MApCX,GAAuC,QAAlB,EAAS,gBAN7B,eAAU,CACTsF,WAAY,CACVC,iBACAC,gBAAA,SAGiB,WC9GkY,I,wECOnZ,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,IAAiB,QAchC,IAAkB,EAAW,CAACxB,OAAA,KAAKyB,QAAA,KAAMC,aAAA,KAAWC,WAAA,KAASpB,QAAA,KAAME,UAAA,KAAQC,aAAA,KAAWkB,WAAA,KAASC,cAAA,OAAcC,WAAA,OChC7G,IAAI,EAAS,WAAa,IAAI3G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACK,YAAY,cAAcH,MAAM,CAAC,QAAUN,EAAIU,QAAQ,MAAQV,EAAIoD,MAAM,OAASpD,EAAIY,OAAO,QAAUZ,EAAIa,QAAQ,QAAUb,EAAIc,SAASC,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,MAAMC,GAAG,WAAW,MAAO,CAACd,EAAG,YAAY,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQ,UAAU,CAACF,EAAG,kBAAkB,CAACJ,EAAImB,GAAG,sBAAsBf,EAAG,YAAY,CAACK,YAAY,OAAOH,MAAM,CAAC,MAAQ,GAAG,SAAW,MAAMF,EAAG,YAAYA,EAAG,eAAe,CAACE,MAAM,CAAC,cAAc,YAAY,MAAQ,QAAQ,cAAc,GAAG,eAAe,IAAIc,MAAM,CAACC,MAAOrB,EAAU,OAAEsB,SAAS,SAAUC,GAAMvB,EAAIY,OAAOW,GAAKC,WAAW,YAAYpB,EAAG,YAAY,CAACqB,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAiB,cAAEwB,WAAW,kBAAkBf,YAAY,OAAOH,MAAM,CAAC,MAAQ,GAAG,SAAW,MAAMF,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAIS,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASU,GACn7B,IAAIC,EAAKD,EAAIC,GACb,MAAO,CAACzB,EAAG,QAAQJ,EAAI8B,GAAG,CAACL,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAiB,cAAEwB,WAAW,kBAAkBlB,MAAM,CAAC,MAAQ,YAAY,MAAQ,GAAG,IAAM,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAIgC,mBAAmBH,GAAI,CAACzB,EAAG,SAAS,CAACJ,EAAImB,GAAG,qBAAqB,SAAS,CAACf,EAAG,OAAO,CAACJ,EAAImB,GAAG,2BAA2B,KAAKc,OAAM,GAAM,CAAChB,IAAI,kBAAkBC,GAAG,SAASU,GAChY,IAAIM,EAAON,EAAIM,KACf,MAAO,CAAC9B,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ4B,EAAKC,cAAgB,QAAU,YAAY,CAACnC,EAAImB,GAAGnB,EAAIoC,GAAGF,EAAK0E,kBAAkB,CAAC3F,IAAI,eAAeC,GAAG,SAASU,GACrJ,IAAIM,EAAON,EAAIM,KACf,MAAO,CAAC9B,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAIS,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASU,GAC1F,IAAIC,EAAKD,EAAIC,GACb,MAAO,CAACzB,EAAG,QAAQJ,EAAI8B,GAAG,CAACL,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAe,YAAEwB,WAAW,gBAAgBf,YAAY,OAAOH,MAAM,CAAC,MAAQ,OAAO,MAAQ,GAAG,IAAM,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAIwC,eAAeN,MAASL,GAAI,CAACzB,EAAG,SAAS,CAACJ,EAAImB,GAAG,cAAc,OAAO,MAAK,IAAO,CAACf,EAAG,OAAO,CAACJ,EAAImB,GAAG,wBAAwBf,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAIS,YAAYf,EAAIgB,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASU,GAC7a,IAAIC,EAAKD,EAAIC,GACb,MAAO,CAACzB,EAAG,QAAQJ,EAAI8B,GAAG,CAACL,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASN,MAAOrB,EAAqB,kBAAEwB,WAAW,sBAAsBlB,MAAM,CAAC,MAAQ,QAAQ,MAAQ,GAAG,IAAM,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAIyC,iBAAiBP,MAASL,GAAI,CAACzB,EAAG,SAAS,CAACJ,EAAImB,GAAG,eAAe,OAAO,MAAK,IAAO,CAACf,EAAG,OAAO,CAACJ,EAAImB,GAAG,iCAAkCnB,EAAgB,aAAEI,EAAG,iBAAiB,CAACE,MAAM,CAAC,KAA2B,MAApBN,EAAI0C,aAAqB,MAAQ,sBAAsB,QAAW,4BAA+B1C,EAAI0C,aAAwB,YAAI,sBAAuBb,GAAG,CAAC,QAAU,SAASE,GAAQ,OAAO/B,EAAI2C,WAAW3C,EAAI0C,eAAe,UAAY,SAASX,GAAQ/B,EAAI0C,aAAe,SAAS1C,EAAIO,KAAMP,EAAc,WAAEI,EAAG,mBAAmB,CAACE,MAAM,CAAC,KAAyB,MAAlBN,EAAI4C,WAAmB,KAAO5C,EAAI4C,YAAYf,GAAG,CAAC,QAAU,SAASE,GAAQ/B,EAAI4C,WAAa,MAAM,UAAY,SAASb,GAAQ/B,EAAI4C,WAAa,SAAS5C,EAAIO,MAAM,IACh5B,EAAkB,GCXlB,EAAS,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACE,MAAM,CAAC,WAAa,GAAG,YAAY,OAAOc,MAAM,CAACC,MAAOrB,EAAQ,KAAEsB,SAAS,SAAUC,GAAMvB,EAAI6C,KAAKtB,GAAKC,WAAW,SAAS,CAAExB,EAAQ,KAAEI,EAAG,SAAS,CAACE,MAAM,CAAC,QAAUN,EAAIa,UAAU,CAACT,EAAG,eAAe,CAACK,YAAY,YAAY,CAACL,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAG,uBAAuBnB,EAAImB,GAAG,IAAInB,EAAIoC,GAAGpC,EAAIsC,KAAKS,GAAK,mBAAqB,iBAAiB,MAAM,GAAG3C,EAAG,cAAc,CAACA,EAAG,SAAS,CAACwB,IAAI,OAAOR,MAAM,CAACC,MAAOrB,EAAS,MAAEsB,SAAS,SAAUC,GAAMvB,EAAIgD,MAAMzB,GAAKC,WAAW,UAAU,CAACpB,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,CAACN,EAAIiD,MAAMC,UAAU,MAAQ,cAAc,SAAW,IAAI9B,MAAM,CAACC,MAAOrB,EAAe,YAAEsB,SAAS,SAAUC,GAAMvB,EAAIuC,YAAYhB,GAAKC,WAAW,iBAAiBpB,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,CAACN,EAAIiD,MAAMC,UAAU,MAAQ,UAAU,SAAW,IAAI9B,MAAM,CAACC,MAAOrB,EAAc,WAAEsB,SAAS,SAAUC,GAAMvB,EAAI4G,WAAWrF,GAAKC,WAAW,gBAAgBpB,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,SAAS,MAAQN,EAAI6G,OAAO,YAAY,cAAc,aAAa,KAAK,SAAW,IAAIzF,MAAM,CAACC,MAAOrB,EAAc,WAAEsB,SAAS,SAAUC,GAAMvB,EAAI8G,WAAWvF,GAAKC,WAAW,iBAAiB,IAAI,GAAGpB,EAAG,iBAAiB,CAACA,EAAG,YAAYA,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,SAASuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAI6D,MAAM,gBAAgB,CAACzD,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAG,YAAYnB,EAAImB,GAAG,gBAAgB,GAAGf,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,UAAU,UAAYN,EAAIgD,OAAOnB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAI8D,UAAU,CAAC1D,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAGnB,EAAIoC,GAAGpC,EAAIsC,KAAKS,GAAK,UAAY,cAAc/C,EAAImB,GAAG,IAAInB,EAAIoC,GAAGpC,EAAIsC,KAAKS,GAAK,SAAW,WAAW,MAAM,IAAI,IAAI,GAAG/C,EAAIO,MAAM,IAC9qD,EAAkB,GCsDD,G,wCAArB,yG,0BASE,EAAAuG,WAA4B,GAE5B,EAAA9D,OAAiB,EACjB,EAAAnC,SAAmB,EAEnB,EAAAoC,MAAa,CACXC,SAAU,SAACa,GAAD,QAAiBA,GAAK,kBAfpC,8MAuBI9D,KAAKY,SAAU,EAvBnB,SAwBU,OAAasD,UAxBvB,OAyBIlE,KAAKY,SAAU,EAzBnB,6IA+BgByB,GAAoB,QAC3BA,IAELrC,KAAK2G,WAAatE,EAAKsE,WACvB3G,KAAKsC,YAAcD,EAAKC,YACxBtC,KAAK6G,WAAWC,aAAhB,oBAA6BzE,EAAKuE,cAAlC,aAA6B,EAAaG,QAAO,SAAAC,GAAC,OAAY,MAARA,EAAElE,MAAYmE,KAAI,SAAAD,GAAC,uBAAIA,EAAElE,UAAN,QAAY,aAArF,QAA4F,OApChG,iMAyCM9C,KAAKY,SAAU,EACVZ,KAAKqC,KAAKS,GA1CrB,gCA2Cc,OAAYoE,WAAW,CAC3B5E,YAAW,UAAEtC,KAAKsC,mBAAP,QAAsB,GACjCqE,WAAU,UAAE3G,KAAK2G,kBAAP,QAAqB,GAC/BQ,UAAWnH,KAAK6G,aA9C1B,6CAiDc,OAAYO,WAAW,CAC3BtE,GAAI9C,KAAKqC,KAAKS,GACdR,YAAW,UAAEtC,KAAKsC,mBAAP,QAAsB,GACjCqE,WAAU,UAAE3G,KAAK2G,kBAAP,QAAqB,GAC/BQ,UAAWnH,KAAK6G,aArD1B,OAwDM7G,KAAK4D,MAAM,WAxDjB,qDA0DMY,QAAQC,MAAM,6BAAd,MA1DN,yBA4DMzE,KAAKY,SAAU,EA5DrB,mKAmBI,OAAO,OAAagG,OAAOS,MAAK,SAACC,EAAIC,GAAL,eAAY,iBAACD,QAAD,IAACA,OAAD,EAACA,EAAIhF,mBAAL,QAAoB,IAAIkF,WAAWC,eAAc,iBAACF,QAAD,IAACA,OAAD,EAACA,EAAIjF,mBAAL,QAAoB,IAAIkF,mBAnBzH,GAA4C,SAE1C,gBADC,eAAK,CAACvE,UAAU,K,2BAIjB,gBADC,eAAK,CAACA,UAAU,K,2BA2BjB,gBAHC,eAAM,OAAQ,CACbyB,WAAW,K,4BAQZ,MArCkB,EAAc,gBADlC,eAAU,KACU,WCvDsY,KCOvZ,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,MAIa,MAAiB,QAehC,IAAkB,GAAW,CAACE,OAAA,KAAKC,QAAA,KAAMC,aAAA,OAAaC,UAAA,OAAUC,WAAA,OAAWC,UAAA,KAAQC,QAAA,KAAMC,QAAA,KAAMC,UAAA,KAAQC,UAAA,KAAQC,aAAA,OCkE/G,IAAqB,GAArB,yG,0BACU,EAAAC,UAAoB,EAE5B,EAAA9E,QAAe,CACb,CAAC+E,KAAM,cAAepE,MAAO,eAC7B,CAACoE,KAAM,UAAWpE,MAAO,cACzB,CAACoE,KAAM,WAAYpE,MAAO,UAAWqE,UAAU,EAAOC,MAAO,QAASC,MAAO,WAE/E,EAAA9E,QAAe,CACb+E,OAAQ,CAAC,eACTC,SAAU,EAAC,IAEb,EAAAlF,OAAiB,GAEjB,EAAA8B,aAAmD,KACnD,EAAAE,WAA4C,KAf9C,uNAsCU,OAAYuB,UAtCtB,0IA0CIlE,KAAK2C,WAAa,IAAI,OAAemD,UA1CzC,qCA6CiBC,GACb/F,KAAK2C,WAAa,eAASoD,KA9C/B,uCAiDmBA,GACf/F,KAAKyC,aAAesD,IAlDxB,4LAuDiC,OAAzB,UAAA/F,KAAKyC,oBAAL,eAAmBK,IAvD3B,wDAyDI9C,KAAKuF,UAAW,EACVS,EA1DV,UA0DuBhG,KAAKyC,oBA1D5B,aA0DuB,EAAmBK,GACtC9C,KAAKyC,aAAe,KA3DxB,SA4DU,OAAYiF,eAAe1B,GA5DrC,OA6DIhG,KAAKuF,UAAW,EA7DpB,qIAkBI,OAAO,OAAYpC,QAlBvB,8BAsBI,OAAOnD,KAAKuF,UAAY,OAAY3E,UAtBxC,oCA0BI,OAAO,IA1BX,kCA8BI,OAAO,IA9BX,wCAkCI,OAAO,MAlCX,GAAuC,QAAlB,GAAS,gBAN7B,eAAU,CACTsF,WAAY,CACVyB,eAAA,GACAvB,gBAAA,SAGiB,cCnGiY,MCOlZ,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,MAIa,MAAiB,QAchC,IAAkB,GAAW,CAACxB,OAAA,KAAKyB,QAAA,KAAMC,aAAA,KAAWC,WAAA,KAASpB,QAAA,KAAME,UAAA,KAAQC,aAAA,KAAWkB,WAAA,KAASC,cAAA,OAAcC,WAAA,OCI7G,IAAqB,GAArB,gVAWc,OAAkBkB,OAXhC,sIAEQ,OAAO,OAAkBC,SAAS,mBAF1C,kCAMQ,OAAO,OAAkBA,SAAS,kBAC9B,OAAkBA,SAAS,qBAPvC,GAAyC,QAApB,GAAW,gBAP/B,eAAU,CACPpG,KAAM,aACNyE,WAAY,CACR4B,UAAA,EACAC,UAAA,OAGa,cCpCkY,M,uCCOnZ,GAAY,eACd,GACAjI,EACAS,GACA,EACA,KACA,WACA,MAIa,gBAAiB,QAOhC,IAAkB,GAAW,CAACyH,QAAA,KAAKC,cAAA,KAAWC,QAAA,Q,0KCvBxCC,EAAe,SAAU/G,GAC3B,IAAKA,EACD,MAAO,GACX,IAAMgH,EAAI,IAAIC,KAAKjH,GACbkH,EAAM,IAAIC,KAAKC,eAAe,KAAM,CACtCC,KAAM,UACNC,MAAO,UACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,OAAQ,YAGZ,OAAOR,EAAIS,cAAcX,IAGvBY,EAAmB,SAAUC,EAAaC,EAAuBC,GACnE,OAAOF,EAAIG,QAAQ,IAAIC,OAAO,UAAW,MAAOH,GAC3CE,QAAQ,IAAIC,OAAO,UAAW,MAAOF,IAQjCG,EAAa,SAAUlI,EAA2C8H,GAAsB,MAC7Cf,EAAa/G,GADgC,sBAClFmI,EADkF,KACzFnI,MAAsBoI,EADmE,KAC1EpI,MAAsBqI,EADoD,KAC3DrI,MACtC,OAAO4H,EAAiB,GAAD,OAAIS,EAAJ,kBAAgBD,EAAhB,kBAA4BD,GAA5B,OAAkCL,QAAlC,IAAkCA,IAAiB,IAAK,KAQ7E,SAAUQ,EAAO5F,GACnB,IAAM6F,EAAO,IAAItB,KAAKvE,GACtB,OAAO6F,aAAgBtB,OAASuB,MAAMD,EAAKE,a,kMCpBhC,sBAAO,EAAD,iCAAN,eAAiF,CAC9FpI,KAD8F,YAG9FqI,MAAO,CACLC,WAAY,CACVC,KAAM,CAACC,OADG,QAEVC,QAAS,GAEXC,SALK,QAMLC,MAAO,CACLJ,KADK,QAELE,SAAS,GAEXG,UAAW,CACTL,KAAM,CAACC,OADE,QAETC,QAAS,GAEXI,YAAa,CACXN,KADW,QAEXE,SAAS,GAEXK,IAAK,CACHP,KADG,OAEHE,QAAS,QAEXM,WAAYC,QAGdC,KAAM,iBAAO,CACXC,mBADW,EAEXC,iBAAiB,IAGnBC,SAAU,CACRC,eADQ,WACM,MACmB9K,KAA/B,WAAM,EADM,EACN,UAAa+K,EADP,EACOA,QACbC,GAAWhL,KAAD,SAAiBA,KAAjB,OAA+BA,KAA/B,MAA4CA,KAA5D,MACMiL,GAAgC,IAAhBjL,KAAKkL,OAAmBC,EAAxB,WAA+CA,EAArE,KACIC,EAAJ,EAmBA,OAjBIpL,KAAKqL,KAAOrL,KAAZ,QAAJ,EACEoL,EACEH,EACCE,EAAA,MADD,EAECJ,EAAA,MAHH,GAKS/K,KAAKoL,MAAQpL,KAAjB,SACLoL,EACEH,GACCjL,KAAKsL,MAAQH,EAAb,OAAgCJ,EADjC,QAEC/K,KAAKsL,MAAQ,IAHhB,KAOEtL,KAAJ,YAAoBoL,GAAQG,SAASvL,KAAjB,YAChBA,KAAJ,aAAqBoL,GAAQG,SAASvL,KAAjB,aAErB,UAAUA,KAAKwL,cAAcJ,EAAMpL,KAAKyL,WAAWV,QAAnD,cAEFW,cA1BQ,WA0BK,MACoB1L,KAA/B,WAAM,EADK,EACL,UAAa+K,EADR,EACQA,QACbY,GAA+B,IAAhB3L,KAAKkL,OAAmBC,EAAxB,UAA8CA,EAAnE,IACIE,EAAJ,EAmBA,OAjBIrL,KAAKqL,KAAOrL,KAAhB,OACEqL,EACEM,GACC3L,KAAK4L,OAAST,EAAd,QAAkCJ,EADnC,SAEC/K,KAAK4L,OAAS,IAHjB,KAKS5L,KAAKoL,MAAQpL,KAAjB,SACLqL,EACEM,EACCR,EAAA,OADD,EAECJ,EAAA,OAHH,GAOE/K,KAAJ,WAAmBqL,GAAOE,SAASvL,KAAhB,WACfA,KAAJ,cAAsBqL,GAAOE,SAASvL,KAAhB,cAEtB,UAAUA,KAAK6L,cAAcR,EAAMrL,KAAnC,oBAEF8L,QAlDQ,WAmDN,MAAO,CACL,iBAAkB9L,KADb,IAEL,mBAAoBA,KAFf,MAGL,oBAAqBA,KAHhB,OAIL,kBAAmBA,KAJd,KAKL,sBACkB,KAAhBA,KAAKkL,SAAL,IACAlL,KAAKkL,QACW,WAAhBlL,KAAKkL,SAGXa,mBA9DQ,WA+DN,OAAI/L,KAAJ,WAA4BA,KAAP,WAEdA,KAAKgM,SAAW,mBAAvB,mBAEFC,QAnEQ,WAoEN,OAAOjM,KAAKqL,KAAOrL,KAAnB,QAEFkM,QAtEQ,WAuEN,OAAOlM,KAAKoL,MAAQpL,KAApB,OAEFmM,OAzEQ,WA0EN,MAAO,CACLf,KAAMpL,KADD,eAELoM,SAAU,eAAcpM,KAFnB,UAGLqM,SAAU,eAAcrM,KAHnB,UAILsM,QAAStM,KAAKgM,SAAW,GAJpB,EAKLX,IAAKrL,KALA,cAMLuM,OAAQvM,KAAKuM,QAAUvM,KAAKwM,gBAKlCC,YAtH8F,WAsHnF,WACTzM,KAAA,WAAe,WACb,SAAc,EAAd,mBAIJ0M,QA5H8F,WA6H5F,WAAI,eAAY1M,KAAM,aAAlB,IACF,eAAa,uGAAb,OAIJ2M,QAAS,CACPC,SADO,WAIL5M,KAHM,mBAKN6M,sBAAsB7M,KAAtB,kBAEF8M,WARO,WASL9M,KAAA,mBAEF+M,sBAXO,WAWc,WACbC,EAAY,kDAAlB,MAiBA,OAfAA,EAAA,MAAmB,SAAAC,GACjB,kBACA,oBAEFD,EAAA,KAAkB,SAAAC,GAChB,kBACA,qBAEFD,EAAA,QAAqB,SAAAC,GACfA,EAAA,UAAc,OAAlB,MACE,kBACA,sBAIJ,GAEFC,cA/BO,WAgCL,IAAMnC,EAAU/K,KAAhB,aAEA,OAAKA,KAAL,mBAEOA,KAAKE,eAAe,aAAc,CACvC4J,MAAO,CACLrI,KAAMzB,KAAK+L,qBAEZ,CAJH,IAFqChB,GAQvCoC,WA1CO,WA0CG,MACR,OAAOnN,KAAKE,eAAe,MAEzBF,KAAKoN,mBAAmBpN,KAAxB,MAAoC,CAClCQ,YADkC,qBAElC6M,OAAK,sBACFrN,KAAD,cADK,GAAF,6CAEwBA,KAFtB,UAAF,iBAGH,4BAA6BA,KAAKsN,gBAH/B,GAKLC,MAAOvN,KAP2B,OAQlCK,MAAOL,KAR2B,kBASlCwB,WAAY,CAAC,CACXC,KADW,OAEXL,MAAOpB,KAAKwN,kBAEd7L,IAAK,YAEP3B,KAjBF,oBAsBJF,OAnM8F,SAmMxF,GAAG,WACP,OAAO2N,EAAEzN,KAAD,IAAW,CACjBQ,YADiB,YAEjB6M,MAAOrN,KAAK8L,SACX,CACD9L,KAAK0N,iBAAgB,iBAAM,CAAC,EAD3B,oBAED1N,KALF,qB,uBCxNJ,IAAI2N,EAAc,EAAQ,QACtBC,EAAS,EAAQ,QACjBC,EAAW,EAAQ,QACnBC,EAAoB,EAAQ,QAC5BC,EAAiB,EAAQ,QAAuCC,EAChEC,EAAsB,EAAQ,QAA8CD,EAC5EE,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAgB,EAAQ,QACxBC,EAAW,EAAQ,QACnBC,EAAQ,EAAQ,QAChBC,EAAmB,EAAQ,QAA+BC,IAC1DC,EAAa,EAAQ,QACrBC,EAAkB,EAAQ,QAE1BC,EAAQD,EAAgB,SACxBE,EAAehB,EAAOvE,OACtBwF,EAAkBD,EAAaE,UAC/BC,EAAM,KACNC,EAAM,KAGNC,EAAc,IAAIL,EAAaG,KAASA,EAExCG,EAAgBd,EAAcc,cAE9BC,EAASxB,GAAeE,EAAS,UAAYoB,GAAeC,GAAiBZ,GAAM,WAGrF,OAFAU,EAAIL,IAAS,EAENC,EAAaG,IAAQA,GAAOH,EAAaI,IAAQA,GAAiC,QAA1BJ,EAAaG,EAAK,SAKnF,GAAII,EAAQ,CACV,IAAIC,EAAgB,SAAgBpL,EAASqL,GAC3C,IAGIC,EAHAC,EAAevP,gBAAgBoP,EAC/BI,EAAkBtB,EAASlK,GAC3ByL,OAA8BC,IAAVL,EAGxB,IAAKE,GAAgBC,GAAmBxL,EAAQ2L,cAAgBP,GAAiBK,EAC/E,OAAOzL,EAGLiL,EACEO,IAAoBC,IAAmBzL,EAAUA,EAAQ4L,QACpD5L,aAAmBoL,IACxBK,IAAmBJ,EAAQlB,EAAS0B,KAAK7L,IAC7CA,EAAUA,EAAQ4L,QAGhBV,IACFI,IAAWD,GAASA,EAAMS,QAAQ,MAAQ,EACtCR,IAAQD,EAAQA,EAAMjG,QAAQ,KAAM,MAG1C,IAAI2G,EAASjC,EACXmB,EAAc,IAAIL,EAAa5K,EAASqL,GAAST,EAAa5K,EAASqL,GACvEE,EAAevP,KAAO6O,EACtBO,GAKF,OAFIF,GAAiBI,GAAQf,EAAiBwB,EAAQ,CAAET,OAAQA,IAEzDS,GAEL/N,EAAQ,SAAUhB,GACpBA,KAAOoO,GAAiBrB,EAAeqB,EAAepO,EAAK,CACzDgP,cAAc,EACdC,IAAK,WAAc,OAAOrB,EAAa5N,IACvCwN,IAAK,SAAU0B,GAAMtB,EAAa5N,GAAOkP,MAGzCC,EAAOlC,EAAoBW,GAC3BwB,EAAQ,EACZ,MAAOD,EAAKlM,OAASmM,EAAOpO,EAAMmO,EAAKC,MACvCvB,EAAgBc,YAAcP,EAC9BA,EAAcN,UAAYD,EAC1BR,EAAST,EAAQ,SAAUwB,GAI7BX,EAAW,W,oCCnFX,IAAI3O,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACE,MAAM,CAAC,WAAa,GAAG,YAAY,OAAOc,MAAM,CAACC,MAAOrB,EAAQ,KAAEsB,SAAS,SAAUC,GAAMvB,EAAI6C,KAAKtB,GAAKC,WAAW,SAAS,CAACpB,EAAG,SAAS,CAACA,EAAG,eAAe,CAACK,YAAY,YAAY,CAACT,EAAImB,GAAG,IAAInB,EAAIoC,GAAGpC,EAAIsQ,OAAO,OAAOlQ,EAAG,cAAc,CAACA,EAAG,OAAO,CAACmQ,SAAS,CAAC,UAAYvQ,EAAIoC,GAAGpC,EAAIwQ,cAAcpQ,EAAG,iBAAiB,CAACA,EAAG,YAAYA,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,QAAQ,KAAO,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAI6D,MAAM,gBAAgB,CAACzD,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAGnB,EAAIoC,GAAGpC,EAAIyQ,kBAAkBzQ,EAAImB,GAAG,IAAInB,EAAIoC,GAAGpC,EAAI0Q,eAAe,MAAM,GAAGtQ,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,UAAU,KAAO,IAAIuB,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO/B,EAAI6D,MAAM,cAAc,CAACzD,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACN,EAAImB,GAAGnB,EAAIoC,GAAGpC,EAAI2Q,gBAAgB3Q,EAAImB,GAAG,IAAInB,EAAIoC,GAAGpC,EAAI4Q,aAAa,MAAM,IAAI,IAAI,IAAI,IAC33BpQ,EAAkB,G,4DC2BD,EAArB,qIAA2C,QAEvC,gBADC,eAAK,CAAC0C,UAAU,K,2BAIjB,gBADC,eAAK,CAACA,UAAU,K,4BAIjB,gBADC,eAAK,CAACA,UAAU,K,8BAIjB,gBADC,eAAK,CAACiH,QAAS,U,kCAIhB,gBADC,eAAK,CAACA,QAAS,c,kCAIhB,gBADC,eAAK,CAACA,QAAS,e,oCAIhB,gBADC,eAAK,CAACA,QAAS,Y,oCAnBC,EAAa,gBADjC,QACoB,WC5BmX,I,yGCOpYvF,EAAY,eACd,EACA7E,EACAS,GACA,EACA,KACA,WACA,MAIa,OAAAoE,EAAiB,QAYhC,IAAkBA,EAAW,CAACC,OAAA,KAAKC,QAAA,KAAMC,aAAA,OAAaC,UAAA,OAAUC,WAAA,OAAWC,UAAA,KAAQE,QAAA,KAAME,UAAA,Q","file":"js/chunk-7da0fa90.4e4fa011.js","sourcesContent":["export function deepCopy(src: T): T {\r\n return JSON.parse(JSON.stringify(src));\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[(_vm.canSeeUsers)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"lg\":\"10\",\"xl\":\"6\"}},[_c('user-table')],1):_vm._e(),(_vm.canSeeRoles)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"lg\":\"10\",\"xl\":\"6\"}},[_c('role-table')],1):_vm._e()],1)],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',[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.users,\"search\":_vm.search,\"loading\":_vm.loading,\"options\":_vm.options},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"white\"}},[_c('v-toolbar-title',[_vm._v(\"Nutzerverwaltung\")]),_c('v-divider',{staticClass:\"mx-4\",attrs:{\"inset\":\"\",\"vertical\":\"\"}}),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"fa-search\",\"label\":\"Suche\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('v-divider',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canCreateUser),expression:\"canCreateUser\"}],staticClass:\"mx-4\",attrs:{\"inset\":\"\",\"vertical\":\"\"}}),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canCreateUser),expression:\"canCreateUser\"}],attrs:{\"color\":\"secondary\",\"small\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.showNewDialog()}}},on),[_c('v-icon',[_vm._v(\"fa-plus-square\")])],1)]}}])},[_c('span',[_vm._v(\"Neuen Nutzer anlegen\")])])],1)]},proxy:true},{key:\"item.userName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-chip',_vm._g({attrs:{\"color\":item.isDeactivated ? 'error' : 'success'}},on),[_vm._v(\" \"+_vm._s(item.userName)+\" \")])]}}],null,true)},[(item.isDeactivated)?_c('span',[_vm._v(\"Benutzer ist deaktiviert\")]):_vm._e()])]}},{key:\"item.role.displayName\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.role.displayName)+\" \")]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canEditUser),expression:\"canEditUser\"}],staticClass:\"mr-1\",attrs:{\"color\":\"info\",\"small\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.showEditDialog(item)}}},on),[_c('v-icon',[_vm._v(\"fa-edit\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Nutzer bearbeiten\")])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canDeactivateUser),expression:\"canDeactivateUser\"}],attrs:{\"color\":\"error\",\"small\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.showDeleteDialog(item)}}},on),[_c('v-icon',[_vm._v(\"fa-trash\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Nutzer deaktivieren\")])])]}}])}),(_vm.itemToDelete)?_c('confirm-dialog',{attrs:{\"show\":_vm.itemToDelete != null,\"title\":\"Nutzer deaktivieren\",\"message\":(\"Möchten sie den Nutzer \" + (_vm.itemToDelete.displayName) + \" (\" + (_vm.itemToDelete.userName) + \") deaktivieren?\")},on:{\"confirm\":function($event){return _vm.deleteItem(_vm.itemToDelete)},\"unconfirm\":function($event){_vm.itemToDelete = null}}}):_vm._e(),(_vm.itemToEdit)?_c('user-edit-dialog',{attrs:{\"show\":_vm.itemToEdit != null,\"user\":_vm.itemToEdit},on:{\"confirm\":function($event){_vm.itemToEdit = null},\"unconfirm\":function($event){_vm.itemToEdit = null}}}):_vm._e()],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('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"600\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[(_vm.user)?_c('v-card',{attrs:{\"loading\":_vm.loading}},[_c('v-card-title',{staticClass:\"headline\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-calendar-check\")]),_vm._v(\" \"+_vm._s(_vm.user.id ? \"Nutzer bearbeiten\" : \"Nutzer anlegen\")+\" \")],1),_c('v-card-text',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required],\"label\":\"Anzeigename\",\"required\":\"\"},model:{value:(_vm.displayName),callback:function ($$v) {_vm.displayName=$$v},expression:\"displayName\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required, _vm.rules.validUserName],\"label\":\"Benutzername\",\"required\":\"\"},model:{value:(_vm.userName),callback:function ($$v) {_vm.userName=$$v},expression:\"userName\"}}),_c('v-select',{attrs:{\"rules\":[_vm.rules.required],\"label\":\"Rolle\",\"items\":_vm.roles,\"item-text\":\"displayName\",\"item-value\":\"id\"},model:{value:(_vm.roleId),callback:function ($$v) {_vm.roleId=$$v},expression:\"roleId\"}}),_c('v-text-field',{attrs:{\"label\":\"Passwort\",\"rules\":[_vm.rules.required, _vm.rules.min, _vm.rules.uppercase, _vm.rules.lowercase, _vm.rules.number, _vm.rules.nonAlphanumeric],\"required\":\"\"},model:{value:(_vm.passwordString),callback:function ($$v) {_vm.passwordString=$$v},expression:\"passwordString\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required, _vm.rules.email],\"label\":\"Email\",\"required\":\"\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.$emit('unconfirm')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-ban\")]),_vm._v(\" Abbrechen \")],1),_c('v-btn',{attrs:{\"color\":\"success\",\"disabled\":!_vm.valid},on:{\"click\":function($event){return _vm.save()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(_vm.user.id ? \"fa-edit\" : \"fa-plus\"))]),_vm._v(\" \"+_vm._s(_vm.user.id ? \"Ändern\" : \"Anlegen\")+\" \")],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport {Component, Prop, Vue, Watch} from \"vue-property-decorator\";\r\nimport {MdbsIdProvider} from \"@/api/tsclient\";\r\nimport {rolesModule, usersModule} from \"@/store\";\r\nimport UserDto = MdbsIdProvider.UserDto;\r\n\r\n@Component({})\r\nexport default class UserDialog extends Vue {\r\n @Prop({required: true})\r\n show!: boolean;\r\n\r\n @Prop({required: true})\r\n user!: UserDto;\r\n\r\n userName?: string | undefined;\r\n displayName?: string | undefined;\r\n email?: string | undefined;\r\n roleId?: string | undefined;\r\n passwordString?: string | undefined;\r\n\r\n valid: boolean = false;\r\n loading: boolean = false;\r\n\r\n rules: any = {\r\n required: (v: string) => !!v || 'Wird benötigt',\r\n validUserName: (v: any) => !v || /^[0-9a-zA-Z_.-]+$/.test(v) ||\r\n \"Benutzername darf nur Zeichen wie 'A-Z', '0-9', '_' oder '-' enthalten\",\r\n email: (v: string) => {\r\n const pattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n return pattern.test(v) || 'Ungültige Emailaddresse'\r\n },\r\n min: (v: any) => v.length >= 6 || 'Mindestens 6 Zeichen',\r\n uppercase: (v: any) => (/[A-Z]/.test(v)) || 'Mindestens 1 Großbuchstaben',\r\n lowercase: (v: any) => (/[a-z]/.test(v)) || 'Mindestens 1 Kleinbuchstabe',\r\n number: (v: any) => (/[0-9]/.test(v)) || 'Mindestens eine Zahl',\r\n nonAlphanumeric: (v: any) => (/[\\W]/.test(v)) || 'Mindestens ein nicht-alphanumerisches Zeichen'\r\n };\r\n\r\n get roles() {\r\n return rolesModule.roles;\r\n }\r\n\r\n async mounted() {\r\n this.loading = true;\r\n await rolesModule.loadAll();\r\n this.loading = false;\r\n }\r\n\r\n @Watch('user', {\r\n immediate: true\r\n })\r\n onUserChanged(user: UserDto | null) {\r\n if (!user)\r\n return;\r\n this.userName = user.userName\r\n this.displayName = user.displayName\r\n this.email = user.email\r\n this.roleId = user.role?.id\r\n this.passwordString = \"\"\r\n }\r\n\r\n async save() {\r\n try {\r\n this.loading = true;\r\n if (!this.user.id) {\r\n await usersModule.createUser({\r\n userName: this.userName ?? \"\",\r\n displayName: this.displayName ?? \"\",\r\n email: this.email ?? \"\",\r\n passwordString: this.passwordString ?? \"\",\r\n roleId: this.roleId ?? \"\",\r\n emailConfirmed: this.email != null,\r\n isDeleted: false,\r\n noLogin: false,\r\n });\r\n } else {\r\n await usersModule.updateUser({\r\n id: this.user.id,\r\n userName: this.userName ?? \"\",\r\n displayName: this.displayName ?? \"\",\r\n email: this.email ?? \"\",\r\n roleId: this.roleId ?? \"\", // TODO Check if this should be the ID\r\n emailConfirmed: this.email != null,\r\n isDeleted: false,\r\n noLogin: false,\r\n });\r\n }\r\n this.$emit('confirm')\r\n } catch (e) {\r\n console.error(\"editing realPatient failed\", e)\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserEditDialog.vue?vue&type=template&id=b174cfe4&scoped=true&\"\nimport script from \"./UserEditDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserEditDialog.vue?vue&type=script&lang=ts&\"\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 \"b174cfe4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VForm,VIcon,VSelect,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport {Component, Vue} from \"vue-property-decorator\";\r\nimport UserEditDialog from \"./UserEditDialog.vue\"\r\nimport ConfirmDialog from \"../ConfirmDialog.vue\";\r\nimport {deepCopy} from \"@/auxillary\"\r\nimport {MdbsIdProvider} from \"@/api/tsclient\";\r\nimport {rolesModule, usersModule} from \"@/store\";\r\n\r\n@Component({\r\n components: {\r\n UserEditDialog,\r\n ConfirmDialog\r\n },\r\n})\r\nexport default class UserTable extends Vue {\r\n private _loading: boolean = false;\r\n\r\n headers: any = [\r\n {text: 'Anzeigename', value: 'displayName'},\r\n {text: 'Benutzername', value: 'userName'},\r\n {text: 'Rolle', value: 'role.displayName'},\r\n {text: 'Email', value: 'email'},\r\n {text: 'Aktionen', value: 'actions', sortable: false, width: \"120px\", align: \"center\"}\r\n ];\r\n options: any = {\r\n sortBy: ['displayName'],\r\n sortDesc: [false]\r\n };\r\n search: string = \"\";\r\n\r\n itemToDelete: MdbsIdProvider.ShortUserDto | null = null;\r\n itemToEdit: MdbsIdProvider.UserDto | null = null;\r\n\r\n get users() {\r\n return usersModule.users;\r\n }\r\n\r\n get loading() {\r\n return this._loading || usersModule.loading || rolesModule.loading;\r\n }\r\n\r\n get canCreateUser() {\r\n return true; //TODO Permission mgmgt\r\n }\r\n\r\n get canEditUser() {\r\n return true; //TODO Permission mgmgt\r\n }\r\n\r\n get canDeactivateUser() {\r\n return true; //TODO Permission mgmgt\r\n }\r\n\r\n async mounted() {\r\n await usersModule.loadAll();\r\n await rolesModule.loadAll();\r\n }\r\n\r\n showNewDialog() {\r\n this.itemToEdit = new MdbsIdProvider.UserDto();\r\n }\r\n\r\n showEditDialog(group: MdbsIdProvider.UserDto) {\r\n this.itemToEdit = deepCopy(group);\r\n }\r\n\r\n showDeleteDialog(group: MdbsIdProvider.UserDto) {\r\n this.itemToDelete = group;\r\n }\r\n\r\n async deleteItem() {\r\n if (this.itemToDelete?.id == null)\r\n return\r\n this._loading = true;\r\n const idToDelete = this.itemToDelete?.id;\r\n this.itemToDelete = null;\r\n await usersModule.deactivateUser(idToDelete)\r\n this._loading = false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersTable.vue?vue&type=template&id=530f3d5a&scoped=true&\"\nimport script from \"./UsersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersTable.vue?vue&type=script&lang=ts&\"\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 \"530f3d5a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VChip,VDataTable,VDivider,VIcon,VSpacer,VTextField,VToolbar,VToolbarTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.roles,\"search\":_vm.search,\"loading\":_vm.loading,\"options\":_vm.options},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"white\"}},[_c('v-toolbar-title',[_vm._v(\"Rollenverwaltung\")]),_c('v-divider',{staticClass:\"mx-4\",attrs:{\"inset\":\"\",\"vertical\":\"\"}}),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"fa-search\",\"label\":\"Suche\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('v-divider',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canCreateRole),expression:\"canCreateRole\"}],staticClass:\"mx-4\",attrs:{\"inset\":\"\",\"vertical\":\"\"}}),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canCreateRole),expression:\"canCreateRole\"}],attrs:{\"color\":\"secondary\",\"small\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.showNewDialog()}}},on),[_c('v-icon',[_vm._v(\"fa-plus-square\")])],1)]}}])},[_c('span',[_vm._v(\"Neue Rolle anlegen\")])])],1)]},proxy:true},{key:\"item.identifier\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":item.isDeactivated ? 'error' : 'success'}},[_vm._v(_vm._s(item.identifier))])]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canEditRole),expression:\"canEditRole\"}],staticClass:\"mr-1\",attrs:{\"color\":\"info\",\"small\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.showEditDialog(item)}}},on),[_c('v-icon',[_vm._v(\"fa-edit\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Rolle bearbeiten\")])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canDeactivateRole),expression:\"canDeactivateRole\"}],attrs:{\"color\":\"error\",\"small\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.showDeleteDialog(item)}}},on),[_c('v-icon',[_vm._v(\"fa-trash\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Rolle deaktivieren\")])])]}}])}),(_vm.itemToDelete)?_c('confirm-dialog',{attrs:{\"show\":_vm.itemToDelete != null,\"title\":\"Nutzer deaktivieren\",\"message\":(\"Möchten sie die Rolle \" + (_vm.itemToDelete.displayName) + \" deaktivieren?\")},on:{\"confirm\":function($event){return _vm.deleteItem(_vm.itemToDelete)},\"unconfirm\":function($event){_vm.itemToDelete = null}}}):_vm._e(),(_vm.itemToEdit)?_c('role-edit-dialog',{attrs:{\"show\":_vm.itemToEdit != null,\"role\":_vm.itemToEdit},on:{\"confirm\":function($event){_vm.itemToEdit = null},\"unconfirm\":function($event){_vm.itemToEdit = null}}}):_vm._e()],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('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"600\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[(_vm.role)?_c('v-card',{attrs:{\"loading\":_vm.loading}},[_c('v-card-title',{staticClass:\"headline\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-calendar-check\")]),_vm._v(\" \"+_vm._s(_vm.role.id ? \"Rolle bearbeiten\" : \"Rolle anlegen\")+\" \")],1),_c('v-card-text',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required],\"label\":\"Anzeigename\",\"required\":\"\"},model:{value:(_vm.displayName),callback:function ($$v) {_vm.displayName=$$v},expression:\"displayName\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required],\"label\":\"Kennung\",\"required\":\"\"},model:{value:(_vm.identifier),callback:function ($$v) {_vm.identifier=$$v},expression:\"identifier\"}}),_c('v-select',{attrs:{\"label\":\"Rechte\",\"items\":_vm.rights,\"item-text\":\"displayName\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.roleRights),callback:function ($$v) {_vm.roleRights=$$v},expression:\"roleRights\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.$emit('unconfirm')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-ban\")]),_vm._v(\" Abbrechen \")],1),_c('v-btn',{attrs:{\"color\":\"success\",\"disabled\":!_vm.valid},on:{\"click\":function($event){return _vm.save()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(_vm.role.id ? \"fa-edit\" : \"fa-plus\"))]),_vm._v(\" \"+_vm._s(_vm.role.id ? \"Ändern\" : \"Anlegen\")+\" \")],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport {Component, Prop, Vue, Watch} from \"vue-property-decorator\";\r\nimport {MdbsIdProvider} from \"@/api/tsclient\";\r\nimport RoleDto = MdbsIdProvider.RoleDto;\r\nimport {rightsModule, rolesModule} from \"@/store\";\r\n\r\n\r\n@Component({})\r\nexport default class RoleEditDialog extends Vue {\r\n @Prop({required: true})\r\n show!: boolean;\r\n\r\n @Prop({required: true})\r\n role!: RoleDto;\r\n\r\n identifier?: string | undefined;\r\n displayName?: string | undefined;\r\n roleRights: Array = []\r\n\r\n valid: boolean = false;\r\n loading: boolean = false;\r\n\r\n rules: any = {\r\n required: (v: string) => !!v || 'Wird benötigt'\r\n };\r\n\r\n get rights() {\r\n return rightsModule.rights.sort((r1, r2) => (r1?.displayName ?? \"\").toString().localeCompare((r2?.displayName ?? \"\").toString()));\r\n }\r\n\r\n async mounted() {\r\n this.loading = true;\r\n await rightsModule.loadAll();\r\n this.loading = false;\r\n }\r\n\r\n @Watch('role', {\r\n immediate: true\r\n })\r\n onUserChanged(role: RoleDto | null) {\r\n if (!role)\r\n return;\r\n this.identifier = role.identifier\r\n this.displayName = role.displayName\r\n this.roleRights.updateValues(role.rights?.filter(r => r.id != null).map(r => r.id ?? \"\") ?? [])\r\n }\r\n\r\n async save() {\r\n try {\r\n this.loading = true;\r\n if (!this.role.id) {\r\n await rolesModule.createRole({\r\n displayName: this.displayName ?? \"\",\r\n identifier: this.identifier ?? \"\",\r\n rightsIds: this.roleRights\r\n });\r\n } else {\r\n await rolesModule.updateRole({\r\n id: this.role.id,\r\n displayName: this.displayName ?? \"\",\r\n identifier: this.identifier ?? \"\",\r\n rightsIds: this.roleRights\r\n });\r\n }\r\n this.$emit('confirm')\r\n } catch (e) {\r\n console.error(\"editing realPatient failed\", e)\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleEditDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleEditDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RoleEditDialog.vue?vue&type=template&id=2c1af12f&scoped=true&\"\nimport script from \"./RoleEditDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RoleEditDialog.vue?vue&type=script&lang=ts&\"\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 \"2c1af12f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VForm,VIcon,VSelect,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport {Component, Vue} from \"vue-property-decorator\";\r\nimport ConfirmDialog from \"../ConfirmDialog.vue\";\r\nimport {deepCopy} from \"@/auxillary\"\r\nimport {MdbsIdProvider} from \"@/api/tsclient\";\r\nimport RoleEditDialog from \"@/components/admin/RoleEditDialog.vue\";\r\nimport {rolesModule} from \"@/store\";\r\n\r\n@Component({\r\n components: {\r\n RoleEditDialog,\r\n ConfirmDialog\r\n },\r\n})\r\nexport default class RoleTable extends Vue {\r\n private _loading: boolean = false;\r\n\r\n headers: any = [\r\n {text: 'Anzeigename', value: 'displayName'},\r\n {text: 'Kennung', value: 'identifier'},\r\n {text: 'Aktionen', value: 'actions', sortable: false, width: \"120px\", align: \"center\"}\r\n ];\r\n options: any = {\r\n sortBy: ['displayName'],\r\n sortDesc: [false]\r\n };\r\n search: string = \"\";\r\n\r\n itemToDelete: MdbsIdProvider.ShortRoleDto | null = null;\r\n itemToEdit: MdbsIdProvider.RoleDto | null = null;\r\n\r\n get roles() {\r\n return rolesModule.roles;\r\n }\r\n\r\n get loading() {\r\n return this._loading || rolesModule.loading;\r\n }\r\n\r\n get canCreateRole() {\r\n return true; //TODO Permission mgmgt\r\n }\r\n\r\n get canEditRole() {\r\n return true; //TODO Permission mgmgt\r\n }\r\n\r\n get canDeactivateRole() {\r\n return true; //TODO Permission mgmgt\r\n }\r\n\r\n async mounted() {\r\n await rolesModule.loadAll();\r\n }\r\n\r\n showNewDialog() {\r\n this.itemToEdit = new MdbsIdProvider.UserDto();\r\n }\r\n\r\n showEditDialog(group: MdbsIdProvider.UserDto) {\r\n this.itemToEdit = deepCopy(group);\r\n }\r\n\r\n showDeleteDialog(group: MdbsIdProvider.UserDto) {\r\n this.itemToDelete = group;\r\n }\r\n\r\n async deleteItem() {\r\n // TODO disable deactivation of own current user role\r\n if (this.itemToDelete?.id == null)\r\n return\r\n this._loading = true;\r\n const idToDelete = this.itemToDelete?.id;\r\n this.itemToDelete = null;\r\n await rolesModule.deactivateRole(idToDelete)\r\n this._loading = false;\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RoleTable.vue?vue&type=template&id=0cefba6e&scoped=true&\"\nimport script from \"./RoleTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./RoleTable.vue?vue&type=script&lang=ts&\"\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 \"0cefba6e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VChip,VDataTable,VDivider,VIcon,VSpacer,VTextField,VToolbar,VToolbarTitle,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {Component, Vue} from 'vue-property-decorator';\nimport UserTable from \"@/components/admin/UsersTable.vue\";\nimport RoleTable from \"@/components/admin/RoleTable.vue\";\nimport {currentUserModule} from \"@/store\";\n\n@Component({\n name: 'UsersAdmin',\n components: {\n UserTable,\n RoleTable\n }\n})\nexport default class UsersEditor extends Vue {\n get canSeeUsers(){\n return currentUserModule.hasRight(\"UserGetAllCmd\")\n }\n\n get canSeeRoles(){\n return currentUserModule.hasRight(\"RoleCreateCmd\") ||\n currentUserModule.hasRight(\"RoleUpdateCmd\")\n }\n\n async mounted() {\n await currentUserModule.load();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAdmin.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAdmin.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersAdmin.vue?vue&type=template&id=88e10e72&scoped=true&\"\nimport script from \"./UsersAdmin.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersAdmin.vue?vue&type=script&lang=ts&\"\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 \"88e10e72\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","import DateTimeFormatPart = Intl.DateTimeFormatPart;\r\n\r\nconst getDateParts = function (value: Date | number | string | undefined): DateTimeFormatPart[] {\r\n if (!value)\r\n return [];\r\n const d = new Date(value);\r\n const dtf = new Intl.DateTimeFormat('de', {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit'\r\n });\r\n\r\n return dtf.formatToParts(d);\r\n}\r\n\r\nconst resolveDelimters = function (str: string, dateDelimiter: string, timeDelimiter: string): string {\r\n return str.replace(new RegExp(\"delDate\", \"gi\"), dateDelimiter)\r\n .replace(new RegExp(\"delTime\", \"gi\"), timeDelimiter);\r\n}\r\n\r\nexport const formatDateTime = function (value: Date | number | string | undefined, dateDelimiter?: string, timeDelimiter?: string, omitSeconds?: boolean): string {\r\n const [{value: da}, , {value: mo}, , {value: ye}, , {value: ho}, , {value: mi}, , {value: sec}] = getDateParts(value);\r\n return resolveDelimters(`${ye}delDate${mo}delDate${da} ${ho}delTime${mi}${omitSeconds ? \"\" : \"delTime\"}${omitSeconds ? \"\" : sec}`, dateDelimiter ?? \".\", timeDelimiter ?? \":\");\r\n}\r\n\r\nexport const formatDate = function (value: Date | number | string | undefined, dateDelimiter?: string): string {\r\n const [{value: da}, , {value: mo}, , {value: ye}] = getDateParts(value);\r\n return resolveDelimters(`${ye}delDate${mo}delDate${da}`, dateDelimiter ?? \".\", \"\");\r\n}\r\n\r\nexport const formatTime = function (value: Date | number | string | undefined, timeDelimiter?: string, omitSeconds?: boolean): string {\r\n const [, , , , , , {value: ho}, , {value: mi}, , {value: sec}] = getDateParts(value);\r\n return resolveDelimters(`${ho}delTime${mi}${omitSeconds ? \"\" : \"delTime\"}${omitSeconds ? \"\" : sec}`, \"\", timeDelimiter ?? \":\");\r\n}\r\n\r\nexport function isDate(v: string): boolean {\r\n const date = new Date(v);\r\n return date instanceof Date && !isNaN(date.valueOf());\r\n}","import './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Menuable from '../../mixins/menuable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Detachable, Menuable, Toggleable).extend({\n name: 'v-tooltip',\n\n props: {\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n disabled: Boolean,\n fixed: {\n type: Boolean,\n default: true,\n },\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n openOnHover: {\n type: Boolean,\n default: true,\n },\n tag: {\n type: String,\n default: 'span',\n },\n transition: String,\n },\n\n data: () => ({\n calculatedMinWidth: 0,\n closeDependents: false,\n }),\n\n computed: {\n calculatedLeft (): string {\n const { activator, content } = this.dimensions\n const unknown = !this.bottom && !this.left && !this.top && !this.right\n const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n let left = 0\n\n if (this.top || this.bottom || unknown) {\n left = (\n activatorLeft +\n (activator.width / 2) -\n (content.width / 2)\n )\n } else if (this.left || this.right) {\n left = (\n activatorLeft +\n (this.right ? activator.width : -content.width) +\n (this.right ? 10 : -10)\n )\n }\n\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n },\n calculatedTop (): string {\n const { activator, content } = this.dimensions\n const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n let top = 0\n\n if (this.top || this.bottom) {\n top = (\n activatorTop +\n (this.bottom ? activator.height : -content.height) +\n (this.bottom ? 10 : -10)\n )\n } else if (this.left || this.right) {\n top = (\n activatorTop +\n (activator.height / 2) -\n (content.height / 2)\n )\n }\n\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return `${this.calcYOverflow(top + this.pageYOffset)}px`\n },\n classes (): object {\n return {\n 'v-tooltip--top': this.top,\n 'v-tooltip--right': this.right,\n 'v-tooltip--bottom': this.bottom,\n 'v-tooltip--left': this.left,\n 'v-tooltip--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }\n },\n computedTransition (): string {\n if (this.transition) return this.transition\n\n return this.isActive ? 'scale-transition' : 'fade-transition'\n },\n offsetY (): boolean {\n return this.top || this.bottom\n },\n offsetX (): boolean {\n return this.left || this.right\n },\n styles (): object {\n return {\n left: this.calculatedLeft,\n maxWidth: convertToUnit(this.maxWidth),\n minWidth: convertToUnit(this.minWidth),\n opacity: this.isActive ? 0.9 : 0,\n top: this.calculatedTop,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.value && this.callActivate()\n })\n },\n\n mounted () {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError(`v-tooltip's activator slot must be bound, try '