solid-ui 2.4.18 → 2.4.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +3 -2
  2. package/lib/acl/acl.d.ts.map +1 -1
  3. package/lib/acl/acl.js +2 -4
  4. package/lib/acl/acl.js.map +1 -1
  5. package/lib/acl/add-agent-buttons.d.ts.map +1 -1
  6. package/lib/acl/add-agent-buttons.js +5 -5
  7. package/lib/acl/add-agent-buttons.js.map +1 -1
  8. package/lib/chat/bookmarks.js +20 -22
  9. package/lib/chat/bookmarks.js.map +1 -1
  10. package/lib/chat/chatLogic.js +13 -15
  11. package/lib/chat/chatLogic.js.map +1 -1
  12. package/lib/chat/dateFolder.js +10 -10
  13. package/lib/chat/dateFolder.js.map +1 -1
  14. package/lib/chat/infinite.js +14 -16
  15. package/lib/chat/infinite.js.map +1 -1
  16. package/lib/chat/message.js +19 -23
  17. package/lib/chat/message.js.map +1 -1
  18. package/lib/chat/messageTools.js +16 -21
  19. package/lib/chat/messageTools.js.map +1 -1
  20. package/lib/chat/thread.js +24 -24
  21. package/lib/chat/thread.js.map +1 -1
  22. package/lib/create/create.d.ts.map +1 -1
  23. package/lib/create/create.js +9 -9
  24. package/lib/create/create.js.map +1 -1
  25. package/lib/folders.js +2 -6
  26. package/lib/folders.js.map +1 -1
  27. package/lib/footer/index.js +4 -4
  28. package/lib/footer/index.js.map +1 -1
  29. package/lib/header/index.d.ts.map +1 -1
  30. package/lib/header/index.js +11 -8
  31. package/lib/header/index.js.map +1 -1
  32. package/lib/index.d.ts +4 -4
  33. package/lib/index.d.ts.map +1 -1
  34. package/lib/index.js +30 -28
  35. package/lib/index.js.map +1 -1
  36. package/lib/login/login.d.ts +130 -0
  37. package/lib/login/login.d.ts.map +1 -0
  38. package/lib/login/login.js +1415 -0
  39. package/lib/login/login.js.map +1 -0
  40. package/lib/matrix/matrix.js +2 -2
  41. package/lib/matrix/matrix.js.map +1 -1
  42. package/lib/messageArea.js +9 -10
  43. package/lib/messageArea.js.map +1 -1
  44. package/lib/pad.js +2 -2
  45. package/lib/pad.js.map +1 -1
  46. package/lib/participation.d.ts.map +1 -1
  47. package/lib/participation.js +4 -5
  48. package/lib/participation.js.map +1 -1
  49. package/lib/preferences.js +8 -8
  50. package/lib/preferences.js.map +1 -1
  51. package/lib/{authn → signup}/config-default.js +0 -0
  52. package/lib/signup/config-default.js.map +1 -0
  53. package/lib/{authn → signup}/signup.js +0 -0
  54. package/lib/signup/signup.js.map +1 -0
  55. package/lib/table.js +2 -3
  56. package/lib/table.js.map +1 -1
  57. package/lib/tabs.js +3 -3
  58. package/lib/tabs.js.map +1 -1
  59. package/lib/utils/index.js +6 -6
  60. package/lib/utils/index.js.map +1 -1
  61. package/lib/utils/label.js +4 -5
  62. package/lib/utils/label.js.map +1 -1
  63. package/lib/versionInfo.js +2 -2
  64. package/lib/versionInfo.js.map +1 -1
  65. package/lib/webpack-bundle.js +8230 -24429
  66. package/lib/webpack-bundle.js.map +1 -1
  67. package/lib/widgets/buttons.js +16 -16
  68. package/lib/widgets/buttons.js.map +1 -1
  69. package/lib/widgets/forms/autocomplete/autocompleteBar.js +2 -2
  70. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  71. package/lib/widgets/forms/autocomplete/autocompleteField.js +2 -2
  72. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  73. package/lib/widgets/forms/autocomplete/autocompletePicker.js +2 -2
  74. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  75. package/lib/widgets/forms/autocomplete/language.d.ts.map +1 -1
  76. package/lib/widgets/forms/autocomplete/language.js +7 -10
  77. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  78. package/lib/widgets/forms/autocomplete/publicData.d.ts +1 -1
  79. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  80. package/lib/widgets/forms/autocomplete/publicData.js +15 -16
  81. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  82. package/lib/widgets/forms/basic.d.ts +1 -1
  83. package/lib/widgets/forms/basic.d.ts.map +1 -1
  84. package/lib/widgets/forms/basic.js +2 -2
  85. package/lib/widgets/forms/basic.js.map +1 -1
  86. package/lib/widgets/forms/comment.d.ts +1 -1
  87. package/lib/widgets/forms/comment.js +3 -3
  88. package/lib/widgets/forms/comment.js.map +1 -1
  89. package/lib/widgets/forms/fieldFunction.js +2 -2
  90. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  91. package/lib/widgets/forms/formStyle.js +3 -3
  92. package/lib/widgets/forms/formStyle.js.map +1 -1
  93. package/lib/widgets/forms.js +10 -10
  94. package/lib/widgets/forms.js.map +1 -1
  95. package/lib/widgets/peoplePicker.js +2 -2
  96. package/lib/widgets/peoplePicker.js.map +1 -1
  97. package/package.json +12 -4
  98. package/lib/authn/authSession.d.ts +0 -4
  99. package/lib/authn/authSession.d.ts.map +0 -1
  100. package/lib/authn/authSession.js +0 -25
  101. package/lib/authn/authSession.js.map +0 -1
  102. package/lib/authn/authn.d.ts +0 -193
  103. package/lib/authn/authn.d.ts.map +0 -1
  104. package/lib/authn/authn.js +0 -2238
  105. package/lib/authn/authn.js.map +0 -1
  106. package/lib/authn/config-default.js.map +0 -1
  107. package/lib/authn/index.d.ts +0 -35
  108. package/lib/authn/index.d.ts.map +0 -1
  109. package/lib/authn/index.js +0 -44
  110. package/lib/authn/index.js.map +0 -1
  111. package/lib/authn/signup.js.map +0 -1
  112. package/lib/authn/types.d.ts +0 -25
  113. package/lib/authn/types.d.ts.map +0 -1
  114. package/lib/authn/types.js +0 -6
  115. package/lib/authn/types.js.map +0 -1
  116. package/lib/logic.d.ts +0 -8
  117. package/lib/logic.d.ts.map +0 -1
  118. package/lib/logic.js +0 -79
  119. package/lib/logic.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/widgets/peoplePicker.js"],"names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","escape","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"mappings":";;;;;;;;;;;;;;;;;AAWA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,EAAE,GAAGC,2BAAoBC,KAA/B;;IAEaC,Y;AACX,wBAAaC,OAAb,EAAsBC,SAAtB,EAAiCC,aAAjC,EAAgDC,OAAhD,EAAyD;AAAA;AAAE;AACzD,SAAKA,OAAL,GAAeA,OAAO,IAAI,EAA1B;AACA,SAAKH,OAAL,GAAeA,OAAf;AACA,SAAKC,SAAL,GAAiBA,SAAjB;AACA,SAAKC,aAAL,GAAqBA,aAArB;AACA,SAAKE,aAAL,GAAqB,KAAKD,OAAL,CAAaC,aAAlC,CALuD,CAKP;;AAChD,SAAKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAArB;AACD;;;;WAED,kBAAU;AAAA;;AACR,UAAMC,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACAF,MAAAA,SAAS,CAACG,KAAV,CAAgBC,QAAhB,GAA2B,OAA3B;AACAJ,MAAAA,SAAS,CAACG,KAAV,CAAgBE,SAAhB,GAA4B,OAA5B;AACAL,MAAAA,SAAS,CAACG,KAAV,CAAgBG,OAAhB,GAA0B,iBAA1B;AACAN,MAAAA,SAAS,CAACG,KAAV,CAAgBI,OAAhB,GAA0B,MAA1B;;AAEA,UAAI,KAAKV,aAAT,EAAwB;AACtBG,QAAAA,SAAS,CAACG,KAAV,CAAgBK,aAAhB,GAAgC,QAAhC;AACA,YAAMC,aAAa,GAAGR,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAtB;AACA,YAAIQ,KAAJ,CAAUD,aAAV,EAAyB,KAAKZ,aAA9B,EAA6Cc,MAA7C;AACA,YAAMC,iBAAiB,GAAGX,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAA1B;AACAU,QAAAA,iBAAiB,CAACC,WAAlB,GAAgC,4BAAO,cAAP,CAAhC;AACAD,QAAAA,iBAAiB,CAACE,gBAAlB,CAAmC,OAAnC,EAA4C,UAAAC,MAAM,EAAI;AACpD,UAAA,KAAI,CAAClB,aAAL,GAAqB,IAArB;;AACA,UAAA,KAAI,CAACc,MAAL;AACD,SAHD;AAIAX,QAAAA,SAAS,CAACgB,WAAV,CAAsBP,aAAtB;AACAT,QAAAA,SAAS,CAACgB,WAAV,CAAsBJ,iBAAtB;AACD,OAZD,MAYO;AACL,aAAKK,eAAL,CAAqB,KAAKvB,SAA1B,EACGwB,IADH,CACQ,gBAAc;AAAA,cAAXC,IAAW,QAAXA,IAAW;AAClB,cAAMC,yBAAyB,GAAGnB,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAlC;AACAkB,UAAAA,yBAAyB,CAACP,WAA1B,GAAwC,4BACtC,wBADsC,CAAxC;AAGAO,UAAAA,yBAAyB,CAACjB,KAA1B,CAAgCkB,MAAhC,GAAyC,MAAzC;AACAD,UAAAA,yBAAyB,CAACN,gBAA1B,CAA2C,OAA3C,EAAoD,UAAAC,MAAM,EAAI;AAC5D,gBAAIO,WAAJ,CAAgBtB,SAAhB,EAA2BmB,IAA3B,EAAiC,KAAI,CAACrB,aAAtC,EAAqDa,MAArD;AACD,WAFD;AAIA,cAAMY,oBAAoB,GAAGtB,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAA7B;AACAqB,UAAAA,oBAAoB,CAACV,WAArB,GAAmC,4BAAO,oBAAP,CAAnC;AACAU,UAAAA,oBAAoB,CAACpB,KAArB,CAA2BkB,MAA3B,GAAoC,MAApC;AACAE,UAAAA,oBAAoB,CAACT,gBAArB,CAAsC,OAAtC,EAA+C,UAAAC,MAAM,EAAI;AACvD,YAAA,KAAI,CAACS,cAAL,CAAoBL,IAApB,EAA0B,KAAI,CAACvB,OAAL,CAAa6B,mBAAvC,EACGP,IADH,CACQ,iBAAe;AAAA,kBAAZQ,KAAY,SAAZA,KAAY;AACnB,kBAAIC,YAAJ,CACE,KAAI,CAAClC,OADP,EAEE0B,IAFF,EAGEO,KAHF,EAIE,KAAI,CAAC5B,aAJP,EAKEa,MALF;AAMD,aARH,WASS,UAAAiB,SAAS,EAAI;AAClB,cAAA,KAAI,CAACnC,OAAL,CAAauB,WAAb,CACE,8BACEf,QADF,EAEE,mEAAuC2B,SAAvC,OAFF,CADF;AAMD,aAhBH;AAiBD,WAlBD;AAoBA5B,UAAAA,SAAS,CAACgB,WAAV,CAAsBI,yBAAtB;AACApB,UAAAA,SAAS,CAACgB,WAAV,CAAsBO,oBAAtB;AAEA,UAAA,KAAI,CAAC9B,OAAL,CAAaoC,SAAb,GAAyB,EAAzB;;AACA,UAAA,KAAI,CAACpC,OAAL,CAAauB,WAAb,CAAyBhB,SAAzB;AACD,SAvCH,WAwCS,UAAA8B,GAAG,EAAI;AACZ,UAAA,KAAI,CAACrC,OAAL,CAAauB,WAAb,CACE,8BACEf,QADF,EAEE,+DAAmC6B,GAAnC,OAFF,CADF;AAMD,SA/CH;AAgDD;;AAED,WAAKrC,OAAL,CAAaoC,SAAb,GAAyB,EAAzB;AACA,WAAKpC,OAAL,CAAauB,WAAb,CAAyBhB,SAAzB;AACA,aAAO,IAAP;AACD;;;WAED,yBAAiBN,SAAjB,EAA4B;AAC1B,aAAO,IAAIqC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC5C,QAAAA,EAAE,CAAC6C,OAAH,CAAWC,gBAAX,CAA4BzC,SAA5B,EAAuC,UAAC0C,EAAD,EAAKN,GAAL,EAAa;AAClD,cAAI,CAACM,EAAL,EAAS;AACP,mBAAOH,MAAM,CAACH,GAAD,CAAb;AACD;;AACD,cAAMO,gBAAgB,GAAGhD,EAAE,CAACiD,GAAH,CACvB,IADuB,EAEvBC,EAAE,CAACC,KAAH,CAAS,UAAT,CAFuB,EAGvBD,EAAE,CAACE,KAAH,CAAS,aAAT,CAHuB,CAAzB;;AAKA,cAAI,CAACJ,gBAAL,EAAuB;AACrB,mBAAOJ,MAAM,CACX,IAAIS,KAAJ,CACE,wDAAwDhD,SAD1D,CADW,CAAb;AAKD;;AACD,cAAMyB,IAAI,GAAG9B,EAAE,CAACiD,GAAH,CAAOD,gBAAP,EAAyBE,EAAE,CAACC,KAAH,CAAS,UAAT,CAAzB,CAAb;;AACA,cAAI,CAACrB,IAAL,EAAW;AACT,mBAAOc,MAAM,CAAC,IAAIS,KAAJ,CAAU,sCAAV,CAAD,CAAb;AACD;;AACDrD,UAAAA,EAAE,CAAC6C,OAAH,CACGS,IADH,CACQxB,IADR,EAEGD,IAFH,CAEQ,UAAU0B,IAAV,EAAgB;AACpB,mBAAOZ,OAAO,CAAC;AAAEb,cAAAA,IAAI,EAAJA;AAAF,aAAD,CAAd;AACD,WAJH,WAKS,UAAUW,GAAV,EAAe;AACpB,mBAAOG,MAAM,CAAC,IAAIS,KAAJ,CAAU,iCAAiCZ,GAA3C,CAAD,CAAb;AACD,WAPH;AAQD,SA5BD;AA6BD,OA9BM,CAAP;AA+BD;;;WAED,wBAAgBX,IAAhB,EAAsBM,mBAAtB,EAA2C;AACzC,qBAAuCoB,OAAO,CAAC1B,IAAD,CAA9C;AAAA,UAAQ2B,UAAR,YAAQA,UAAR;AAAA,UAAoBC,cAApB,YAAoBA,cAApB;;AACA,UAAMrB,KAAK,GAAGsB,GAAG,CAACC,GAAJ,WACTF,cAAc,CAACG,GADN,SACYC,iBAAKC,EAAL,GAAUC,KAAV,CAAgB,CAAhB,EAAmB,CAAnB,CADZ,eAAd;AAGA,UAAMC,IAAI,GAAG7B,mBAAmB,IAAI,gBAApC,CALyC,CAOzC;AACA;AACA;;AACA,UAAM8B,aAAa,GAAG,CAAC7B,KAAK,CAAC8B,GAAN,EAAD,EAAcV,UAAd,EAA0BW,GAA1B,CAA8B,UAAAD,GAAG,EAAI;AACzD,YAAME,aAAa,GAAGV,GAAG,CAACW,EAAJ,CAAOjC,KAAP,EAAca,EAAE,CAACS,GAAH,CAAO,MAAP,CAAd,EAA8BT,EAAE,CAACE,KAAH,CAAS,OAAT,CAA9B,EAAiDe,GAAjD,CAAtB;AACA,YAAMI,aAAa,GAAGZ,GAAG,CAACW,EAAJ,CAAOjC,KAAP,EAAca,EAAE,CAACE,KAAH,CAAS,IAAT,CAAd,EAA8Ba,IAA9B,EAAoC5B,KAAK,CAAC8B,GAAN,EAApC,EAAiDA,GAAjD,CAAtB;AACA,YAAMK,sBAAsB,GAAGb,GAAG,CAACW,EAAJ,CAC7BxC,IAD6B,EAE7BoB,EAAE,CAACE,KAAH,CAAS,eAAT,CAF6B,EAG7Bf,KAH6B,EAI7B8B,GAJ6B,CAA/B;AAMA,YAAMM,KAAK,GAAGN,GAAG,CAACO,MAAJ,CAAWjB,UAAX,IACV,CAACY,aAAD,EAAgBE,aAAhB,EAA+BC,sBAA/B,CADU,GAEV,CAACH,aAAD,EAAgBE,aAAhB,CAFJ;AAGA,eAAOI,KAAK,CAACR,GAAG,CAACN,GAAL,EAAU;AAAEY,UAAAA,KAAK,EAALA;AAAF,SAAV,CAAL,CAA0B5C,IAA1B,CAA+B,YAAM;AAC1C4C,UAAAA,KAAK,CAACG,OAAN,CAAc,UAAAN,EAAE,EAAI;AAClBtE,YAAAA,EAAE,CAAC6E,GAAH,CAAOP,EAAP;AACD,WAFD;AAGD,SAJM,CAAP;AAKD,OAjBqB,CAAtB;AAkBA,aAAO5B,OAAO,CAACoC,GAAR,CAAYZ,aAAZ,EACJrC,IADI,CACC;AAAA,eAAO;AAAEQ,UAAAA,KAAK,EAALA;AAAF,SAAP;AAAA,OADD,WAEE,UAAAI,GAAG,EAAI;AACZsC,QAAAA,KAAK,CAACC,GAAN,CAAU,+CAA+CvC,GAAzD;AACA,cAAM,IAAIY,KAAJ,yDAEJZ,GAAG,CAACwC,GAAJ,GAAUxC,GAAG,CAACwC,GAAJ,CAAQC,WAAlB,GAAgC,EAF5B,QAAN;AAKD,OATI,CAAP;AAUD;;;WAED,uBAAe7C,KAAf,EAAsB;AACpB,WAAK7B,aAAL,GAAqB6B,KAArB;AACA,WAAK/B,aAAL,CAAmB+B,KAAnB;AACA,WAAKf,MAAL;AACD;;;;;;;IAGUW,W;AACX,uBAAa7B,OAAb,EAAsB0B,IAAtB,EAA4BrB,aAA5B,EAA2C;AAAA;AACzC,SAAKL,OAAL,GAAeA,OAAf;AACA,SAAK0B,IAAL,GAAYA,IAAZ;AACA,SAAKrB,aAAL,GAAqBA,aAArB;AACD;;;;WAED,kBAAU;AAAA;;AACR,WAAK0E,UAAL,GACGtD,IADH,CACQ,UAAAuD,MAAM,EAAI;AACd;AACA,YAAMzE,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACAF,QAAAA,SAAS,CAACG,KAAV,CAAgBI,OAAhB,GAA0B,MAA1B;AACAP,QAAAA,SAAS,CAACG,KAAV,CAAgBK,aAAhB,GAAgC,QAAhC;AACAiE,QAAAA,MAAM,CAACR,OAAP,CAAe,UAAAvC,KAAK,EAAI;AACtB,cAAMgD,WAAW,GAAGzE,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAApB;AACAwE,UAAAA,WAAW,CAAC5D,gBAAZ,CAA6B,OAA7B,EAAsC,MAAI,CAAC6D,gBAAL,CAAsBjD,KAAtB,CAAtC;AACA,cAAIhB,KAAJ,CAAUgE,WAAV,EAAuBhD,KAAvB,EAA8Bf,MAA9B;AACAX,UAAAA,SAAS,CAACgB,WAAV,CAAsB0D,WAAtB;AACD,SALD;AAMA,QAAA,MAAI,CAACjF,OAAL,CAAaoC,SAAb,GAAyB,EAAzB;;AACA,QAAA,MAAI,CAACpC,OAAL,CAAauB,WAAb,CAAyBhB,SAAzB;AACD,OAdH,WAeS,UAAA8B,GAAG,EAAI;AACZ,QAAA,MAAI,CAACrC,OAAL,CAAauB,WAAb,CACE,8BACEf,QADF,EAEE,+EAAmD6B,GAAnD,OAFF,CADF;AAMD,OAtBH;AAuBA,aAAO,IAAP;AACD;;;WAED,sBAAc;AAAA;;AACZ,aAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC,wBAAuBY,OAAO,CAAC,MAAI,CAAC1B,IAAN,CAA9B;AAAA,YAAQ2B,UAAR,aAAQA,UAAR;;AACAzD,QAAAA,EAAE,CAAC6C,OAAH,CAAWC,gBAAX,CAA4BW,UAA5B,EAAwC,UAACV,EAAD,EAAKN,GAAL,EAAa;AACnD,cAAI,CAACM,EAAL,EAAS;AACP,mBAAOH,MAAM,CAACH,GAAD,CAAb;AACD;;AACD,cAAM2C,MAAM,GAAGpF,EAAE,CAACuF,IAAH,CAAQ,MAAI,CAACzD,IAAb,EAAmBoB,EAAE,CAACE,KAAH,CAAS,eAAT,CAAnB,CAAf;AACA,iBAAOT,OAAO,CAACyC,MAAD,CAAd;AACD,SAND;AAOD,OATM,CAAP;AAUD;;;WAED,0BAAkB/C,KAAlB,EAAyB;AAAA;;AACvB,aAAO,UAAAX,MAAM,EAAI;AACf,QAAA,MAAI,CAACjB,aAAL,CAAmB4B,KAAnB;AACD,OAFD;AAGD;;;;;;;IAGUhB,K;AACX,iBAAajB,OAAb,EAAsBiC,KAAtB,EAA6B;AAAA;AAC3B,SAAKjC,OAAL,GAAeA,OAAf;AACA,SAAKiC,KAAL,GAAaA,KAAb;AACD;;;;WAED,kBAAU;AACR,UAAM1B,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACAF,MAAAA,SAAS,CAACa,WAAV,GAAwB,6BACtB;AACAgE,MAAAA,cAAc,CAAC,KAAKnD,KAAN,EAAaa,EAAE,CAACE,KAAH,CAAS,IAAT,CAAb,aAAiC,KAAKf,KAAL,CAAWoD,KAA5C,OAFQ,CAAxB;AAIA,WAAKrF,OAAL,CAAaoC,SAAb,GAAyB,EAAzB;AACA,WAAKpC,OAAL,CAAauB,WAAb,CAAyBhB,SAAzB;AACA,aAAO,IAAP;AACD;;;;;;;IAGU2B,Y;AACX,wBAAalC,OAAb,EAAsB0B,IAAtB,EAA4BO,KAA5B,EAAmCqD,cAAnC,EAAmDC,cAAnD,EAAmE;AAAA;AACjE,SAAKvF,OAAL,GAAeA,OAAf;AACA,SAAK0B,IAAL,GAAYA,IAAZ;AACA,SAAKO,KAAL,GAAaA,KAAb;;AACA,SAAKuD,cAAL,GAAsB,UAACnD,GAAD,EAAMoD,UAAN,EAAkBC,KAAlB,EAA4B;AAChD,UAAIH,cAAJ,EAAoB;AAClBA,QAAAA,cAAc,CAAClD,GAAD,EAAMoD,UAAN,EAAkBC,KAAlB,CAAd;AACD;AACF,KAJD;;AAKA,SAAKH,cAAL,GAAsBA,cAAtB;AACA,SAAKD,cAAL,GAAsBA,cAAtB;AACD;;;;WAED,mBAAW,CACT;AACD;;;WAED,kBAAU;AAAA;;AACR,UAAMK,aAAa,GAAGnF,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAtB;AACAkF,MAAAA,aAAa,CAACjF,KAAd,CAAoBC,QAApB,GAA+B,OAA/B;AACAgF,MAAAA,aAAa,CAACjF,KAAd,CAAoBE,SAApB,GAAgC,OAAhC;AACA+E,MAAAA,aAAa,CAACjF,KAAd,CAAoBG,OAApB,GAA8B,iBAA9B;AACA8E,MAAAA,aAAa,CAACjF,KAAd,CAAoBI,OAApB,GAA8B,MAA9B;AACA6E,MAAAA,aAAa,CAACjF,KAAd,CAAoBK,aAApB,GAAoC,QAApC;AAEA,uCAAe4E,aAAf,EAA8B,UAAAC,IAAI,EAAI;AACpCA,QAAAA,IAAI,CAACpB,OAAL,CAAa,UAAAf,GAAG,EAAI;AAClB,UAAA,MAAI,CAACgB,GAAL,CAAShB,GAAT,WAAoB,UAAApB,GAAG,EAAI;AACzB,YAAA,MAAI,CAACrC,OAAL,CAAauB,WAAb,CACE,8BACEf,QADF,EAEE,sEAA0C6B,GAA1C,OAFF,CADF;AAMD,WAPD;AAQD,SATD;AAUD,OAXD;AAaA,UAAMwD,cAAc,GAAGrF,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAvB;AACAoF,MAAAA,cAAc,CAACC,IAAf,GAAsB,MAAtB;AACAD,MAAAA,cAAc,CAACR,KAAf,GAAuBD,cAAc,CACnC,KAAKnD,KAD8B,EAEnCa,EAAE,CAACE,KAAH,CAAS,IAAT,CAFmC,EAGnC,gBAHmC,CAArC;AAKA6C,MAAAA,cAAc,CAACxE,gBAAf,CAAgC,QAAhC,EAA0C,UAAA0E,KAAK,EAAI;AACjD,QAAA,MAAI,CAACC,YAAL,CAAkBD,KAAK,CAACE,MAAN,CAAaZ,KAA/B,WAA4C,UAAAhD,GAAG,EAAI;AACjD,UAAA,MAAI,CAACrC,OAAL,CAAauB,WAAb,CACE,8BAAkBf,QAAlB,wCAA2D6B,GAA3D,OADF;AAGD,SAJD;AAKD,OAND;AAOA,UAAM6D,cAAc,GAAG1F,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAvB;AACAyF,MAAAA,cAAc,CAAC9E,WAAf,GAA6B,4BAAO,aAAP,CAA7B;AACA8E,MAAAA,cAAc,CAAC3E,WAAf,CAA2BsE,cAA3B;AACAF,MAAAA,aAAa,CAACpE,WAAd,CAA0B2E,cAA1B;;AAEA,UAAItG,EAAE,CAACiD,GAAH,CAAO,KAAKZ,KAAZ,EAAmBa,EAAE,CAACE,KAAH,CAAS,WAAT,CAAnB,CAAJ,EAA+C;AAC7CpD,QAAAA,EAAE,CAACuG,KAAH,CAAS,KAAKlE,KAAd,EAAqBa,EAAE,CAACE,KAAH,CAAS,WAAT,CAArB,EAA4CwB,OAA5C,CAAoD,UAAA4B,SAAS,EAAI;AAC/D,cAAMC,SAAS,GAAGD,SAAS,CAACE,MAA5B;AACA,cAAMC,SAAS,GAAG/F,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACA,cAAI+F,MAAJ,CAAWD,SAAX,EAAsBF,SAAtB,EAAiC,MAAI,CAACI,YAAL,CAAkBJ,SAAlB,CAAjC,EAA+DnF,MAA/D;AACAyE,UAAAA,aAAa,CAACpE,WAAd,CAA0BgF,SAA1B;AACD,SALD;AAMD,OAPD,MAOO;AACL,YAAMG,IAAI,GAAGlG,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAb;AACAiG,QAAAA,IAAI,CAACtF,WAAL,OAAmBuF,sBAAnB;AAGAhB,QAAAA,aAAa,CAACpE,WAAd,CAA0BmF,IAA1B;AACD;;AAED,UAAME,kBAAkB,GAAGpG,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAA3B;AACAmG,MAAAA,kBAAkB,CAACxF,WAAnB,GAAiC,4BAAO,MAAP,CAAjC;AACAwF,MAAAA,kBAAkB,CAACvF,gBAAnB,CAAoC,OAApC,EAA6C,UAAAC,MAAM,EAAI;AACrD,QAAA,MAAI,CAACgE,cAAL,CAAoB,MAAI,CAACrD,KAAzB;AACD,OAFD;AAGA0D,MAAAA,aAAa,CAACpE,WAAd,CAA0BqF,kBAA1B;AAEA,WAAK5G,OAAL,CAAaoC,SAAb,GAAyB,EAAzB;AACA,WAAKpC,OAAL,CAAauB,WAAb,CAAyBoE,aAAzB;AACA,aAAO,IAAP;AACD;;;WAED,aAAKkB,KAAL,EAAY;AAAA;;AACV,aAAO,IAAIvE,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC5C,QAAAA,EAAE,CAAC6C,OAAH,CAAWC,gBAAX,CAA4BmE,KAA5B,EAAmC,UAAClE,EAAD,EAAKN,GAAL,EAAa;AAC9C,cAAI,CAACM,EAAL,EAAS;AACP,YAAA,MAAI,CAAC6C,cAAL,CAAoBnD,GAApB;;AACA,mBAAOG,MAAM,CAACH,GAAD,CAAb;AACD,WAJ6C,CAK9C;AACA;;;AACA,cAAMgE,SAAS,GAAG9C,GAAG,CAACuD,SAAJ,CAAcD,KAAd,CAAlB;AACA,cAAME,QAAQ,GAAGnH,EAAE,CAACiD,GAAH,CAAOwD,SAAP,EAAkBvD,EAAE,CAACS,GAAH,CAAO,MAAP,CAAlB,CAAjB;;AACA,cAAI,CAACwD,QAAD,IAAa,CAACA,QAAQ,CAACzC,MAAT,CAAgBxB,EAAE,CAACkE,IAAH,CAAQ,QAAR,CAAhB,CAAlB,EAAsD;AACpD,mBAAOxE,MAAM,CACX,IAAIS,KAAJ,4EACsE8D,QAAQ,CAAC1B,KAD/E,OADW,CAAb;AAKD;;AACD,iBAAO9C,OAAO,CAAC8D,SAAD,CAAd;AACD,SAjBD;AAkBD,OAnBM,EAmBJ5E,IAnBI,CAmBC,UAAA4E,SAAS,EAAI;AACnB,YAAMD,SAAS,GAAG7C,GAAG,CAACW,EAAJ,CAAO,MAAI,CAACjC,KAAZ,EAAmBa,EAAE,CAACE,KAAH,CAAS,WAAT,CAAnB,EAA0CqD,SAA1C,CAAlB;;AACA,YAAIzG,EAAE,CAACqH,cAAH,CAAkBb,SAAlB,CAAJ,EAAkC;AAChC,iBAAOC,SAAP;AACD;;AACD,eAAO9B,KAAK,CAAC,MAAI,CAACtC,KAAL,CAAW8B,GAAX,GAAiBN,GAAlB,EAAuB;AAAEY,UAAAA,KAAK,EAAE,CAAC+B,SAAD;AAAT,SAAvB,CAAL,CAAoD3E,IAApD,CAAyD,YAAM;AACpE2E,UAAAA,SAAS,CAACc,GAAV,GAAgB,MAAI,CAACjF,KAAL,CAAW8B,GAAX,EAAhB;AACAnE,UAAAA,EAAE,CAAC6E,GAAH,CAAO2B,SAAP;;AACA,UAAA,MAAI,CAACZ,cAAL,CAAoB,IAApB,EAA0B,OAA1B,EAAmCa,SAAnC;;AACA,UAAA,MAAI,CAACnF,MAAL;AACD,SALM,CAAP;AAMD,OA9BM,CAAP;AA+BD;;;WAED,sBAAcmF,SAAd,EAAyB;AAAA;;AACvB,aAAO,UAAA/E,MAAM,EAAI;AACf,YAAM8E,SAAS,GAAG7C,GAAG,CAACW,EAAJ,CAAO,MAAI,CAACjC,KAAZ,EAAmBa,EAAE,CAACE,KAAH,CAAS,WAAT,CAAnB,EAA0CqD,SAA1C,CAAlB;AACA,eAAO9B,KAAK,CAAC,MAAI,CAACtC,KAAL,CAAW8B,GAAX,GAAiBN,GAAlB,EAAuB;AAAE0D,UAAAA,KAAK,EAAE,CAACf,SAAD;AAAT,SAAvB,CAAL,CACJ3E,IADI,CACC,YAAM;AACV7B,UAAAA,EAAE,CAACwH,MAAH,CAAUhB,SAAV;;AACA,UAAA,MAAI,CAACZ,cAAL,CAAoB,IAApB,EAA0B,SAA1B,EAAqCa,SAArC;;AACA,UAAA,MAAI,CAACnF,MAAL;;AACA,iBAAO,IAAP;AACD,SANI,WAOE,UAAAmB,GAAG,EAAI;AACZ,cAAMwB,IAAI,GAAGjE,EAAE,CAACiD,GAAH,CAAOwD,SAAP,EAAkBvD,EAAE,CAACkE,IAAH,CAAQ,MAAR,CAAlB,CAAb;AACA,cAAMK,YAAY,GAChBxD,IAAI,IAAIA,IAAI,CAACwB,KAAb,8BACwBxB,IAAI,CAACwB,KAD7B,gBACwChD,GADxC,oCAEwBgE,SAAS,CAAChB,KAFlC,gBAE6ChD,GAF7C,MADF;AAIA,gBAAM,IAAIY,KAAJ,CAAUoE,YAAV,CAAN;AACD,SAdI,CAAP;AAeD,OAjBD;AAkBD;;;WAED,sBAAcxD,IAAd,EAAoB;AAAA;;AAClB,sBAAuBT,OAAO,CAAC,KAAK1B,IAAN,CAA9B;AAAA,UAAQ2B,UAAR,aAAQA,UAAR;;AACA,UAAMiE,cAAc,GAAG,CAAC,KAAKrF,KAAL,CAAW8B,GAAX,EAAD,EAAmBV,UAAnB,EAA+BW,GAA/B,CAAmC,UAAAuD,UAAU,EAAI;AACtE,YAAMC,iBAAiB,GAAG5H,EAAE,CAACuG,KAAH,CACxB,MAAI,CAAClE,KADmB,EAExBa,EAAE,CAACE,KAAH,CAAS,IAAT,CAFwB,EAGxB,IAHwB,EAIxBuE,UAJwB,CAA1B;AAMA,YAAME,gBAAgB,GAAGlE,GAAG,CAACW,EAAJ,CACvB,MAAI,CAACjC,KADkB,EAEvBa,EAAE,CAACE,KAAH,CAAS,IAAT,CAFuB,EAGvBO,GAAG,CAACmE,OAAJ,CAAY7D,IAAZ,CAHuB,CAAzB;AAKA,eAAOU,KAAK,CAACgD,UAAU,CAAClC,KAAZ,EAAmB;AAC7B8B,UAAAA,KAAK,EAAEK,iBADsB;AAE7BnD,UAAAA,KAAK,EAAE,CAACoD,gBAAD;AAFsB,SAAnB,CAAL,CAGJhG,IAHI,CAGC,UAAAkG,cAAc,EAAI;AACxB/H,UAAAA,EAAE,CAACgI,gBAAH,CAAoBJ,iBAApB;AACAC,UAAAA,gBAAgB,CAACP,GAAjB,GAAuBK,UAAvB;AACA3H,UAAAA,EAAE,CAAC6E,GAAH,CAAOgD,gBAAP;AACD,SAPM,CAAP;AAQD,OApBsB,CAAvB;AAqBA,aAAOnF,OAAO,CAACoC,GAAR,CAAY4C,cAAZ,CAAP;AACD;;;KAEH;AACA;AACA;;;;;IACad,M;AACX,kBAAaxG,OAAb,EAAsBqG,SAAtB,EAAiCI,YAAjC,EAA+C;AAAA;AAC7C,SAAKJ,SAAL,GAAiBA,SAAjB;AACA,SAAKrG,OAAL,GAAeA,OAAf;AACA,SAAKyG,YAAL,GAAoBA,YAApB;AACD;;;;WAED,kBAAU;AAAA;;AACR,UAAMlG,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACAF,MAAAA,SAAS,CAACG,KAAV,CAAgBI,OAAhB,GAA0B,MAA1B,CAFQ,CAIR;;AACA,UAAM+G,MAAM,GAAGzC,cAAc,CAC3B,KAAKiB,SADsB,EAE3BvD,EAAE,CAACkE,IAAH,CAAQ,KAAR,CAF2B,EAG3Bc,qBAAW,gBAHgB,CAA7B;AAKA,UAAMC,UAAU,GAAGvH,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAnB;AACAsH,MAAAA,UAAU,CAACC,GAAX,GAAiB,4BAAOH,MAAP,CAAjB;AACAE,MAAAA,UAAU,CAACE,KAAX,GAAmB,IAAnB;AACAF,MAAAA,UAAU,CAACG,MAAX,GAAoB,IAApB;AACAH,MAAAA,UAAU,CAACrH,KAAX,CAAiBkB,MAAjB,GAA0B,KAA1B,CAdQ,CAgBR;;AACA,UAAMiC,IAAI,GAAGuB,cAAc,CACzB,KAAKiB,SADoB,EAEzBvD,EAAE,CAACkE,IAAH,CAAQ,MAAR,CAFyB,aAGrB,KAAKX,SAHgB,OAA3B;AAKA,UAAM8B,QAAQ,GAAG3H,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAjB;AACA0H,MAAAA,QAAQ,CAAC/F,SAAT,GAAqB,4BAAOyB,IAAP,CAArB;AACAsE,MAAAA,QAAQ,CAACzH,KAAT,CAAe0H,QAAf,GAA0B,GAA1B;AACAD,MAAAA,QAAQ,CAACzH,KAAT,CAAekB,MAAf,GAAwB,QAAxB;AAEA,UAAMyG,YAAY,GAAG7H,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAArB;AACA4H,MAAAA,YAAY,CAACjH,WAAb,GAA2B,QAA3B;AACAiH,MAAAA,YAAY,CAAChH,gBAAb,CAA8B,OAA9B,EAAuC,UAAAC,MAAM;AAAA,eAC3C,MAAI,CAACmF,YAAL,YAA0B,UAAApE,GAAG,EAAI;AAC/B,UAAA,MAAI,CAACrC,OAAL,CAAauB,WAAb,CAAyB,8BAAkBf,QAAlB,EAA4B,sCAAU6B,GAAV,EAA5B,CAAzB;AACD,SAFD,CAD2C;AAAA,OAA7C;AAKAgG,MAAAA,YAAY,CAAC3H,KAAb,CAAmBkB,MAAnB,GAA4B,KAA5B;AAEArB,MAAAA,SAAS,CAACgB,WAAV,CAAsBwG,UAAtB;AACAxH,MAAAA,SAAS,CAACgB,WAAV,CAAsB4G,QAAtB;AACA5H,MAAAA,SAAS,CAACgB,WAAV,CAAsB8G,YAAtB;AAEA,WAAKrI,OAAL,CAAaoC,SAAb,GAAyB,EAAzB;AACA,WAAKpC,OAAL,CAAauB,WAAb,CAAyBhB,SAAzB;AACA,aAAO,IAAP;AACD;;;;;;;AAGH,SAAS6E,cAAT,CAAyBkD,OAAzB,EAAkCC,SAAlC,EAA6CC,YAA7C,EAA2D;AACzD,MAAMlC,MAAM,GAAG1G,EAAE,CAACiD,GAAH,CAAOyF,OAAP,EAAgBC,SAAhB,CAAf;AACA,SAAOjC,MAAM,GAAGA,MAAM,CAACjB,KAAV,GAAkBmD,YAA/B;AACD;;AAED,SAASjE,KAAT,CAAgBkE,GAAhB,SAAuC;AAAA,MAAhBtB,KAAgB,SAAhBA,KAAgB;AAAA,MAAT9C,KAAS,SAATA,KAAS;AACrC,SAAO,IAAI/B,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC5C,IAAAA,EAAE,CAAC8I,OAAH,CAAWC,MAAX,CAAkBxB,KAAlB,EAAyB9C,KAAzB,EAAgC,UAACZ,GAAD,EAAMmF,OAAN,EAAevB,YAAf,EAAgC;AAC9D,UAAI,CAACuB,OAAL,EAAc;AACZ,eAAOpG,MAAM,CACX,IAAIS,KAAJ,sCAAwCQ,GAAxC,gBAAiD4D,YAAjD,EADW,CAAb;AAGD;;AACD9E,MAAAA,OAAO;AACR,KAPD;AAQD,GATM,CAAP,CADqC,CAWrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAED,SAASa,OAAT,CAAkB1B,IAAlB,EAAwB;AACtB,SAAO;AACL;AACA2B,IAAAA,UAAU,EAAEzD,EAAE,CAACiD,GAAH,CAAOnB,IAAP,EAAaoB,EAAE,CAACE,KAAH,CAAS,YAAT,CAAb,CAFP;AAGLM,IAAAA,cAAc,EAAE1D,EAAE,CAAC4D,GAAH,CAAO9B,IAAI,CAACmH,GAAL,GAAWpF,GAAX,GAAiB,QAAxB;AAHX,GAAP;AAKD","sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from '../logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"file":"peoplePicker.js"}
1
+ {"version":3,"sources":["../../src/widgets/peoplePicker.js"],"names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","escape","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"mappings":"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","sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"file":"peoplePicker.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-ui",
3
- "version": "2.4.18",
3
+ "version": "2.4.19",
4
4
  "description": "UI library for writing Solid read-write-web applications",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -54,17 +54,17 @@
54
54
  "homepage": "https://github.com/solid/solid-ui",
55
55
  "dependencies": {
56
56
  "@babel/runtime": "^7.16.5",
57
- "@inrupt/solid-client-authn-browser": "^1.11.3",
57
+ "@storybook/addon-docs": "^6.4.18",
58
58
  "crypto-browserify": "^3.12.0",
59
59
  "escape-html": "^1.0.3",
60
60
  "jss": "^10.9.0",
61
61
  "jss-preset-default": "^10.9.0",
62
62
  "mime-types": "^2.1.34",
63
- "pane-registry": "^2.4.6",
63
+ "pane-registry": "^2.4.7",
64
64
  "path-browserify": "^1.0.1",
65
65
  "postcss-flexbugs-fixes": "^5.0.2",
66
66
  "rdflib": "^2.2.17",
67
- "solid-logic": "^1.3.13",
67
+ "solid-logic": "^1.3.14",
68
68
  "solid-namespace": "^0.5.2",
69
69
  "stream-browserify": "^3.0.0",
70
70
  "uuid": "^8.3.2"
@@ -81,6 +81,7 @@
81
81
  "@storybook/addon-actions": "^6.4.9",
82
82
  "@storybook/addon-essentials": "^6.4.9",
83
83
  "@storybook/addon-links": "^6.4.9",
84
+ "@storybook/addon-postcss": "^2.0.0",
84
85
  "@storybook/html": "^6.4.9",
85
86
  "@testing-library/dom": "^8.11.1",
86
87
  "@testing-library/user-event": "^13.5.0",
@@ -92,8 +93,13 @@
92
93
  "autoprefixer": "^10.4.0",
93
94
  "babel-loader": "^8.2.3",
94
95
  "eslint": "^7.32.0",
96
+ "eslint-config-standard": "^16.0.3",
95
97
  "eslint-import-resolver-typescript": "^2.5.0",
98
+ "eslint-plugin-import": "^2.25.4",
96
99
  "eslint-plugin-jest": "^25.3.0",
100
+ "eslint-plugin-node": "^11.1.0",
101
+ "eslint-plugin-promise": "^6.0.0",
102
+ "html-webpack-plugin": "^4.5.2",
97
103
  "husky": "^7.0.4",
98
104
  "jest": "^27.4.5",
99
105
  "jsdom": "^19.0.0",
@@ -101,6 +107,8 @@
101
107
  "nock": "^13.2.1",
102
108
  "postcss-flexbugs-fixes": "^5.0.2",
103
109
  "raw-loader": "^4.0.2",
110
+ "react": "^17.0.2",
111
+ "react-dom": "^17.0.2",
104
112
  "react-is": "^17.0.2",
105
113
  "standard": "^16.0.4",
106
114
  "ts-jest": "^27.1.2",
@@ -1,4 +0,0 @@
1
- import { Session } from '@inrupt/solid-client-authn-browser';
2
- declare let authSession: Session;
3
- export default authSession;
4
- //# sourceMappingURL=authSession.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authSession.d.ts","sourceRoot":"","sources":["../../src/authn/authSession.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAER,MAAM,oCAAoC,CAAA;AAE3C,QAAA,IAAI,WAAW,EAAE,OAAO,CAAA;AAgBxB,eAAe,WAAW,CAAA"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _solidClientAuthnBrowser = require("@inrupt/solid-client-authn-browser");
9
-
10
- var authSession; // @ts-ignore
11
-
12
- if (!window.authSession) {
13
- authSession = new _solidClientAuthnBrowser.Session({
14
- clientAuthentication: (0, _solidClientAuthnBrowser.getClientAuthenticationWithDependencies)({})
15
- }, 'mySession'); // @ts-ignore
16
-
17
- window.authSession = authSession;
18
- } else {
19
- // @ts-ignore
20
- authSession = window.authSession;
21
- }
22
-
23
- var _default = authSession;
24
- exports["default"] = _default;
25
- //# sourceMappingURL=authSession.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/authn/authSession.ts"],"names":["authSession","window","Session","clientAuthentication"],"mappings":";;;;;;;AAAA;;AAKA,IAAIA,WAAJ,C,CACA;;AACA,IAAI,CAACC,MAAM,CAACD,WAAZ,EAAyB;AACvBA,EAAAA,WAAW,GAAG,IAAIE,gCAAJ,CACZ;AACEC,IAAAA,oBAAoB,EAAE,sEAAwC,EAAxC;AADxB,GADY,EAIZ,WAJY,CAAd,CADuB,CAOvB;;AACAF,EAAAA,MAAM,CAACD,WAAP,GAAqBA,WAArB;AACD,CATD,MASO;AACL;AACAA,EAAAA,WAAW,GAAGC,MAAM,CAACD,WAArB;AACD;;eAEcA,W","sourcesContent":["import {\n Session,\n getClientAuthenticationWithDependencies\n} from '@inrupt/solid-client-authn-browser'\n\nlet authSession: Session\n// @ts-ignore\nif (!window.authSession) {\n authSession = new Session(\n {\n clientAuthentication: getClientAuthenticationWithDependencies({})\n },\n 'mySession'\n )\n // @ts-ignore\n window.authSession = authSession\n} else {\n // @ts-ignore\n authSession = window.authSession\n}\n\nexport default authSession\n"],"file":"authSession.js"}
@@ -1,193 +0,0 @@
1
- /**
2
- * Signing in, signing up, profile and preferences reloading
3
- * Type index management
4
- *
5
- * Many functions in this module take a context object which
6
- * holds various RDF symbols, add to it, and return a promise of it.
7
- *
8
- * * `me` RDF symbol for the user's WebID
9
- * * `publicProfile` The user's public profile, iff loaded
10
- * * `preferencesFile` The user's personal preference file, iff loaded
11
- * * `index.public` The user's public type index file
12
- * * `index.private` The user's private type index file
13
- *
14
- * Not RDF symbols:
15
- * * `noun` A string in english for the type of thing -- like "address book"
16
- * * `instance` An array of nodes which are existing instances
17
- * * `containers` An array of nodes of containers of instances
18
- * * `div` A DOM element where UI can be displayed
19
- * * `statusArea` A DOM element (opt) progress stuff can be displayed, or error messages
20
- * @packageDocumentation
21
- */
22
- import { NamedNode } from 'rdflib';
23
- import { PaneDefinition } from 'pane-registry';
24
- import { AppDetails, AuthenticationContext } from './types';
25
- export declare const authSession: import("@inrupt/solid-client-authn-browser").Session;
26
- /**
27
- * Look for and load the User who has control over it
28
- */
29
- export declare function findOriginOwner(doc: NamedNode | string): string | boolean;
30
- /**
31
- * Saves `webId` in `context.me`
32
- * @param webId
33
- * @param context
34
- *
35
- * @returns Returns the WebID, after setting it
36
- */
37
- export declare function saveUser(webId: NamedNode | string | null, context?: AuthenticationContext): NamedNode | null;
38
- /**
39
- * Wrapper around [[offlineTestID]]
40
- * @returns {NamedNode|null}
41
- */
42
- export declare function defaultTestUser(): NamedNode | null;
43
- /**
44
- * Checks synchronously whether user is logged in
45
- *
46
- * @returns Named Node or null
47
- */
48
- export declare function currentUser(): NamedNode | null;
49
- /**
50
- * Resolves with the logged in user's WebID
51
- *
52
- * @param context
53
- */
54
- export declare function logIn(context: AuthenticationContext): Promise<AuthenticationContext>;
55
- /**
56
- * Logs the user in and loads their WebID profile document into the store
57
- *
58
- * @param context
59
- *
60
- * @returns Resolves with the context after login / fetch
61
- */
62
- export declare function logInLoadProfile(context: AuthenticationContext): Promise<AuthenticationContext>;
63
- /**
64
- * Loads preference file
65
- * Do this after having done log in and load profile
66
- *
67
- * @private
68
- *
69
- * @param context
70
- */
71
- export declare function logInLoadPreferences(context: AuthenticationContext): Promise<AuthenticationContext>;
72
- export declare function loadTypeIndexes(context: AuthenticationContext): Promise<AuthenticationContext>;
73
- /**
74
- * Returns promise of context with arrays of symbols
75
- *
76
- * 2016-12-11 change to include forClass arc a la
77
- * https://github.com/solid/solid/blob/main/proposals/data-discovery.md
78
- */
79
- export declare function findAppInstances(context: AuthenticationContext, theClass: NamedNode, isPublic?: boolean): Promise<AuthenticationContext>;
80
- /**
81
- * Register a new app in a type index
82
- */
83
- export declare function registerInTypeIndex(context: AuthenticationContext, instance: NamedNode, theClass: NamedNode, isPublic: boolean): Promise<AuthenticationContext>;
84
- /**
85
- * UI to control registration of instance
86
- */
87
- export declare function registrationControl(context: AuthenticationContext, instance: any, theClass: any): Promise<AuthenticationContext | void>;
88
- /**
89
- * UI to List at all registered things
90
- */
91
- export declare function registrationList(context: AuthenticationContext, options: {
92
- private?: boolean;
93
- public?: boolean;
94
- type?: NamedNode;
95
- }): Promise<AuthenticationContext>;
96
- /**
97
- * Simple Access Control
98
- *
99
- * This function sets up a simple default ACL for a resource, with
100
- * RWC for the owner, and a specified access (default none) for the public.
101
- * In all cases owner has read write control.
102
- * Parameter lists modes allowed to public
103
- *
104
- * @param options
105
- * @param options.public eg ['Read', 'Write']
106
- *
107
- * @returns Resolves with aclDoc uri on successful write
108
- */
109
- export declare function setACLUserPublic(docURI: string, me: NamedNode, options: {
110
- defaultForNew?: boolean;
111
- public?: [];
112
- }): Promise<NamedNode>;
113
- /**
114
- * Returns `sym($SolidTestEnvironment.username)` if
115
- * `$SolidTestEnvironment.username` is defined as a global
116
- * @returns {NamedNode|null}
117
- */
118
- export declare function offlineTestID(): NamedNode | null;
119
- export declare function renderSignInPopup(dom: HTMLDocument): void;
120
- /**
121
- * @returns {Promise<string|null>} Resolves with WebID URI or null
122
- */
123
- /**
124
- * Retrieves currently logged in webId from either
125
- * defaultTestUser or SolidAuth
126
- * @param [setUserCallback] Optional callback
127
- *
128
- * @returns Resolves with webId uri, if no callback provided
129
- */
130
- export declare function checkUser<T>(setUserCallback?: (me: NamedNode | null) => T): Promise<NamedNode | T | null>;
131
- /**
132
- * Login status box
133
- *
134
- * A big sign-up/sign in box or a logout box depending on the state
135
- *
136
- * @param dom
137
- * @param listener
138
- *
139
- * @returns
140
- */
141
- export declare function loginStatusBox(dom: HTMLDocument, listener?: ((uri: string | null) => void) | null, options?: {
142
- buttonStyle?: string;
143
- }): HTMLElement;
144
- /**
145
- * Workspace selection etc
146
- * See https://github.com/solid/userguide/issues/16
147
- */
148
- /**
149
- * Returns a UI object which, if it selects a workspace,
150
- * will callback(workspace, newBase).
151
- * See https://github.com/solid/userguide/issues/16 for more info on workspaces.
152
- *
153
- * If necessary, will get an account, preference file, etc. In sequence:
154
- *
155
- * - If not logged in, log in.
156
- * - Load preference file
157
- * - Prompt user for workspaces
158
- * - Allows the user to just type in a URI by hand
159
- *
160
- * Calls back with the workspace and the base URI
161
- *
162
- * @param dom
163
- * @param appDetails
164
- * @param callbackWS
165
- */
166
- export declare function selectWorkspace(dom: HTMLDocument, appDetails: AppDetails, callbackWS: (workspace: string | null, newBase: string) => void): HTMLElement;
167
- /**
168
- * Creates a new instance of an app.
169
- *
170
- * An instance of an app could be e.g. an issue tracker for a given project,
171
- * or a chess game, or calendar, or a health/fitness record for a person.
172
- *
173
- * Note that this use of the term 'app' refers more to entries in the user's
174
- * type index than to actual software applications that use the personal data
175
- * to which these entries point.
176
- *
177
- * @param dom
178
- * @param appDetails
179
- * @param callback
180
- *
181
- * @returns A div with a button in it for making a new app instance
182
- */
183
- export declare function newAppInstance(dom: HTMLDocument, appDetails: AppDetails, callback: (workspace: string | null, newBase: string) => void): HTMLElement;
184
- /**
185
- * Retrieves whether the currently logged in user is a power user
186
- * and/or a developer
187
- */
188
- export declare function getUserRoles(): Promise<Array<NamedNode>>;
189
- /**
190
- * Filters which panes should be available, based on the result of [[getUserRoles]]
191
- */
192
- export declare function filterAvailablePanes(panes: Array<PaneDefinition>): Promise<Array<PaneDefinition>>;
193
- //# sourceMappingURL=authn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authn.d.ts","sourceRoot":"","sources":["../../src/authn/authn.ts"],"names":[],"mappings":"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"}