@apvee/spfx-react-toolkit 1.0.0

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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2012 -0
  3. package/lib/core/atoms.internal.d.ts +53 -0
  4. package/lib/core/atoms.internal.d.ts.map +1 -0
  5. package/lib/core/atoms.internal.js +35 -0
  6. package/lib/core/atoms.internal.js.map +1 -0
  7. package/lib/core/context.internal.d.ts +23 -0
  8. package/lib/core/context.internal.d.ts.map +1 -0
  9. package/lib/core/context.internal.js +34 -0
  10. package/lib/core/context.internal.js.map +1 -0
  11. package/lib/core/index.d.ts +6 -0
  12. package/lib/core/index.d.ts.map +1 -0
  13. package/lib/core/index.js +6 -0
  14. package/lib/core/index.js.map +1 -0
  15. package/lib/core/provider-application-customizer.d.ts +57 -0
  16. package/lib/core/provider-application-customizer.d.ts.map +1 -0
  17. package/lib/core/provider-application-customizer.js +45 -0
  18. package/lib/core/provider-application-customizer.js.map +1 -0
  19. package/lib/core/provider-base.internal.d.ts +20 -0
  20. package/lib/core/provider-base.internal.d.ts.map +1 -0
  21. package/lib/core/provider-base.internal.js +126 -0
  22. package/lib/core/provider-base.internal.js.map +1 -0
  23. package/lib/core/provider-field-customizer.d.ts +58 -0
  24. package/lib/core/provider-field-customizer.d.ts.map +1 -0
  25. package/lib/core/provider-field-customizer.js +46 -0
  26. package/lib/core/provider-field-customizer.js.map +1 -0
  27. package/lib/core/provider-listview-commandset.d.ts +60 -0
  28. package/lib/core/provider-listview-commandset.d.ts.map +1 -0
  29. package/lib/core/provider-listview-commandset.js +48 -0
  30. package/lib/core/provider-listview-commandset.js.map +1 -0
  31. package/lib/core/provider-webpart.d.ts +48 -0
  32. package/lib/core/provider-webpart.d.ts.map +1 -0
  33. package/lib/core/provider-webpart.js +36 -0
  34. package/lib/core/provider-webpart.js.map +1 -0
  35. package/lib/core/types.d.ts +84 -0
  36. package/lib/core/types.d.ts.map +1 -0
  37. package/lib/core/types.js +4 -0
  38. package/lib/core/types.js.map +1 -0
  39. package/lib/hooks/index.d.ts +34 -0
  40. package/lib/hooks/index.d.ts.map +1 -0
  41. package/lib/hooks/index.js +34 -0
  42. package/lib/hooks/index.js.map +1 -0
  43. package/lib/hooks/useSPFxAadHttpClient.d.ts +231 -0
  44. package/lib/hooks/useSPFxAadHttpClient.d.ts.map +1 -0
  45. package/lib/hooks/useSPFxAadHttpClient.js +299 -0
  46. package/lib/hooks/useSPFxAadHttpClient.js.map +1 -0
  47. package/lib/hooks/useSPFxContainerInfo.d.ts +41 -0
  48. package/lib/hooks/useSPFxContainerInfo.d.ts.map +1 -0
  49. package/lib/hooks/useSPFxContainerInfo.js +47 -0
  50. package/lib/hooks/useSPFxContainerInfo.js.map +1 -0
  51. package/lib/hooks/useSPFxContainerSize.d.ts +119 -0
  52. package/lib/hooks/useSPFxContainerSize.d.ts.map +1 -0
  53. package/lib/hooks/useSPFxContainerSize.js +150 -0
  54. package/lib/hooks/useSPFxContainerSize.js.map +1 -0
  55. package/lib/hooks/useSPFxContext.d.ts +14 -0
  56. package/lib/hooks/useSPFxContext.d.ts.map +1 -0
  57. package/lib/hooks/useSPFxContext.js +16 -0
  58. package/lib/hooks/useSPFxContext.js.map +1 -0
  59. package/lib/hooks/useSPFxCorrelationInfo.d.ts +51 -0
  60. package/lib/hooks/useSPFxCorrelationInfo.d.ts.map +1 -0
  61. package/lib/hooks/useSPFxCorrelationInfo.js +58 -0
  62. package/lib/hooks/useSPFxCorrelationInfo.js.map +1 -0
  63. package/lib/hooks/useSPFxCrossSitePermissions.d.ts +81 -0
  64. package/lib/hooks/useSPFxCrossSitePermissions.d.ts.map +1 -0
  65. package/lib/hooks/useSPFxCrossSitePermissions.js +132 -0
  66. package/lib/hooks/useSPFxCrossSitePermissions.js.map +1 -0
  67. package/lib/hooks/useSPFxDisplayMode.d.ts +61 -0
  68. package/lib/hooks/useSPFxDisplayMode.d.ts.map +1 -0
  69. package/lib/hooks/useSPFxDisplayMode.js +69 -0
  70. package/lib/hooks/useSPFxDisplayMode.js.map +1 -0
  71. package/lib/hooks/useSPFxEnvironmentInfo.d.ts +63 -0
  72. package/lib/hooks/useSPFxEnvironmentInfo.d.ts.map +1 -0
  73. package/lib/hooks/useSPFxEnvironmentInfo.js +91 -0
  74. package/lib/hooks/useSPFxEnvironmentInfo.js.map +1 -0
  75. package/lib/hooks/useSPFxFluent9ThemeInfo.d.ts +105 -0
  76. package/lib/hooks/useSPFxFluent9ThemeInfo.d.ts.map +1 -0
  77. package/lib/hooks/useSPFxFluent9ThemeInfo.js +136 -0
  78. package/lib/hooks/useSPFxFluent9ThemeInfo.js.map +1 -0
  79. package/lib/hooks/useSPFxHubSiteInfo.d.ts +80 -0
  80. package/lib/hooks/useSPFxHubSiteInfo.d.ts.map +1 -0
  81. package/lib/hooks/useSPFxHubSiteInfo.js +127 -0
  82. package/lib/hooks/useSPFxHubSiteInfo.js.map +1 -0
  83. package/lib/hooks/useSPFxInstanceInfo.d.ts +41 -0
  84. package/lib/hooks/useSPFxInstanceInfo.d.ts.map +1 -0
  85. package/lib/hooks/useSPFxInstanceInfo.js +40 -0
  86. package/lib/hooks/useSPFxInstanceInfo.js.map +1 -0
  87. package/lib/hooks/useSPFxListInfo.d.ts +64 -0
  88. package/lib/hooks/useSPFxListInfo.d.ts.map +1 -0
  89. package/lib/hooks/useSPFxListInfo.js +70 -0
  90. package/lib/hooks/useSPFxListInfo.js.map +1 -0
  91. package/lib/hooks/useSPFxLocaleInfo.d.ts +123 -0
  92. package/lib/hooks/useSPFxLocaleInfo.d.ts.map +1 -0
  93. package/lib/hooks/useSPFxLocaleInfo.js +109 -0
  94. package/lib/hooks/useSPFxLocaleInfo.js.map +1 -0
  95. package/lib/hooks/useSPFxLogger.d.ts +108 -0
  96. package/lib/hooks/useSPFxLogger.d.ts.map +1 -0
  97. package/lib/hooks/useSPFxLogger.js +117 -0
  98. package/lib/hooks/useSPFxLogger.js.map +1 -0
  99. package/lib/hooks/useSPFxMSGraphClient.d.ts +200 -0
  100. package/lib/hooks/useSPFxMSGraphClient.d.ts.map +1 -0
  101. package/lib/hooks/useSPFxMSGraphClient.js +264 -0
  102. package/lib/hooks/useSPFxMSGraphClient.js.map +1 -0
  103. package/lib/hooks/useSPFxOneDriveAppData.d.ts +264 -0
  104. package/lib/hooks/useSPFxOneDriveAppData.d.ts.map +1 -0
  105. package/lib/hooks/useSPFxOneDriveAppData.js +395 -0
  106. package/lib/hooks/useSPFxOneDriveAppData.js.map +1 -0
  107. package/lib/hooks/useSPFxPageContext.d.ts +37 -0
  108. package/lib/hooks/useSPFxPageContext.d.ts.map +1 -0
  109. package/lib/hooks/useSPFxPageContext.js +49 -0
  110. package/lib/hooks/useSPFxPageContext.js.map +1 -0
  111. package/lib/hooks/useSPFxPageType.d.ts +82 -0
  112. package/lib/hooks/useSPFxPageType.d.ts.map +1 -0
  113. package/lib/hooks/useSPFxPageType.js +137 -0
  114. package/lib/hooks/useSPFxPageType.js.map +1 -0
  115. package/lib/hooks/useSPFxPerformance.d.ts +72 -0
  116. package/lib/hooks/useSPFxPerformance.d.ts.map +1 -0
  117. package/lib/hooks/useSPFxPerformance.js +167 -0
  118. package/lib/hooks/useSPFxPerformance.js.map +1 -0
  119. package/lib/hooks/useSPFxPermissions.d.ts +61 -0
  120. package/lib/hooks/useSPFxPermissions.d.ts.map +1 -0
  121. package/lib/hooks/useSPFxPermissions.js +73 -0
  122. package/lib/hooks/useSPFxPermissions.js.map +1 -0
  123. package/lib/hooks/useSPFxPnP.d.ts +539 -0
  124. package/lib/hooks/useSPFxPnP.d.ts.map +1 -0
  125. package/lib/hooks/useSPFxPnP.js +533 -0
  126. package/lib/hooks/useSPFxPnP.js.map +1 -0
  127. package/lib/hooks/useSPFxPnPContext.d.ts +290 -0
  128. package/lib/hooks/useSPFxPnPContext.d.ts.map +1 -0
  129. package/lib/hooks/useSPFxPnPContext.js +340 -0
  130. package/lib/hooks/useSPFxPnPContext.js.map +1 -0
  131. package/lib/hooks/useSPFxPnPList.d.ts +545 -0
  132. package/lib/hooks/useSPFxPnPList.d.ts.map +1 -0
  133. package/lib/hooks/useSPFxPnPList.js +906 -0
  134. package/lib/hooks/useSPFxPnPList.js.map +1 -0
  135. package/lib/hooks/useSPFxPnPSearch.d.ts +540 -0
  136. package/lib/hooks/useSPFxPnPSearch.d.ts.map +1 -0
  137. package/lib/hooks/useSPFxPnPSearch.js +672 -0
  138. package/lib/hooks/useSPFxPnPSearch.js.map +1 -0
  139. package/lib/hooks/useSPFxProperties.d.ts +80 -0
  140. package/lib/hooks/useSPFxProperties.d.ts.map +1 -0
  141. package/lib/hooks/useSPFxProperties.js +95 -0
  142. package/lib/hooks/useSPFxProperties.js.map +1 -0
  143. package/lib/hooks/useSPFxSPHttpClient.d.ts +218 -0
  144. package/lib/hooks/useSPFxSPHttpClient.d.ts.map +1 -0
  145. package/lib/hooks/useSPFxSPHttpClient.js +287 -0
  146. package/lib/hooks/useSPFxSPHttpClient.js.map +1 -0
  147. package/lib/hooks/useSPFxServiceScope.d.ts +107 -0
  148. package/lib/hooks/useSPFxServiceScope.d.ts.map +1 -0
  149. package/lib/hooks/useSPFxServiceScope.js +105 -0
  150. package/lib/hooks/useSPFxServiceScope.js.map +1 -0
  151. package/lib/hooks/useSPFxSiteInfo.d.ts +116 -0
  152. package/lib/hooks/useSPFxSiteInfo.d.ts.map +1 -0
  153. package/lib/hooks/useSPFxSiteInfo.js +109 -0
  154. package/lib/hooks/useSPFxSiteInfo.js.map +1 -0
  155. package/lib/hooks/useSPFxStorage.d.ts +81 -0
  156. package/lib/hooks/useSPFxStorage.d.ts.map +1 -0
  157. package/lib/hooks/useSPFxStorage.js +140 -0
  158. package/lib/hooks/useSPFxStorage.js.map +1 -0
  159. package/lib/hooks/useSPFxTeams.d.ts +63 -0
  160. package/lib/hooks/useSPFxTeams.d.ts.map +1 -0
  161. package/lib/hooks/useSPFxTeams.js +198 -0
  162. package/lib/hooks/useSPFxTeams.js.map +1 -0
  163. package/lib/hooks/useSPFxTenantProperty.d.ts +389 -0
  164. package/lib/hooks/useSPFxTenantProperty.d.ts.map +1 -0
  165. package/lib/hooks/useSPFxTenantProperty.js +683 -0
  166. package/lib/hooks/useSPFxTenantProperty.js.map +1 -0
  167. package/lib/hooks/useSPFxThemeInfo.d.ts +27 -0
  168. package/lib/hooks/useSPFxThemeInfo.d.ts.map +1 -0
  169. package/lib/hooks/useSPFxThemeInfo.js +33 -0
  170. package/lib/hooks/useSPFxThemeInfo.js.map +1 -0
  171. package/lib/hooks/useSPFxUserInfo.d.ts +47 -0
  172. package/lib/hooks/useSPFxUserInfo.d.ts.map +1 -0
  173. package/lib/hooks/useSPFxUserInfo.js +47 -0
  174. package/lib/hooks/useSPFxUserInfo.js.map +1 -0
  175. package/lib/hooks/useSPFxUserPhoto.d.ts +270 -0
  176. package/lib/hooks/useSPFxUserPhoto.d.ts.map +1 -0
  177. package/lib/hooks/useSPFxUserPhoto.js +346 -0
  178. package/lib/hooks/useSPFxUserPhoto.js.map +1 -0
  179. package/lib/index.d.ts +3 -0
  180. package/lib/index.d.ts.map +1 -0
  181. package/lib/index.js +3 -0
  182. package/lib/index.js.map +1 -0
  183. package/lib/utils/index.d.ts +1 -0
  184. package/lib/utils/index.d.ts.map +1 -0
  185. package/lib/utils/index.js +3 -0
  186. package/lib/utils/index.js.map +1 -0
  187. package/lib/utils/resize-observer.internal.d.ts +10 -0
  188. package/lib/utils/resize-observer.internal.d.ts.map +1 -0
  189. package/lib/utils/resize-observer.internal.js +34 -0
  190. package/lib/utils/resize-observer.internal.js.map +1 -0
  191. package/lib/utils/theme-subscription.internal.d.ts +11 -0
  192. package/lib/utils/theme-subscription.internal.d.ts.map +1 -0
  193. package/lib/utils/theme-subscription.internal.js +58 -0
  194. package/lib/utils/theme-subscription.internal.js.map +1 -0
  195. package/lib/utils/type-guards.internal.d.ts +35 -0
  196. package/lib/utils/type-guards.internal.d.ts.map +1 -0
  197. package/lib/utils/type-guards.internal.js +88 -0
  198. package/lib/utils/type-guards.internal.js.map +1 -0
  199. package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.d.ts +13 -0
  200. package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.d.ts.map +1 -0
  201. package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.js +67 -0
  202. package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.js.map +1 -0
  203. package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.manifest.json +21 -0
  204. package/lib/webparts/spFxReactToolkitTest/assets/welcome-dark.png +0 -0
  205. package/lib/webparts/spFxReactToolkitTest/assets/welcome-light.png +0 -0
  206. package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.d.ts +8 -0
  207. package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.d.ts.map +1 -0
  208. package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.js +2 -0
  209. package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.js.map +1 -0
  210. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.d.ts +8 -0
  211. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.d.ts.map +1 -0
  212. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.js +1351 -0
  213. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.js.map +1 -0
  214. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.css +2 -0
  215. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.d.ts +18 -0
  216. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.d.ts.map +1 -0
  217. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.js +19 -0
  218. package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.js.map +1 -0
  219. package/lib/webparts/spFxReactToolkitTest/loc/en-us.js +16 -0
  220. package/package.json +95 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSPFxPnPList.js","sourceRoot":"","sources":["../../src/hooks/useSPFxPnPList.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA8NxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgWG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,OAA+B,EAC/B,UAA2B;IAH7B,iBAydC;IApdC,2DAA2D;IAC3D,IAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,IAAM,OAAO,GAAG,UAAU,IAAI,cAAc,CAAC;IAE7C,4CAA4C;IAC5C,IAAM,EAAE,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC;IAEvB,qCAAqC;IACrC,IAAM,eAAe,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;IAE1C,yBAAyB;IACnB,IAAA,KAAoB,QAAQ,CAAM,EAAE,CAAC,EAApC,KAAK,QAAA,EAAE,QAAQ,QAAqB,CAAC;IACtC,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IACxC,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IAChD,IAAA,KAAoB,QAAQ,EAAqB,EAAhD,KAAK,QAAA,EAAE,QAAQ,QAAiC,CAAC;IAClD,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IAE9C,kEAAkE;IAC5D,IAAA,KAA0C,QAAQ,CAA0C,SAAS,CAAC,EAArG,gBAAgB,QAAA,EAAE,mBAAmB,QAAgE,CAAC;IACvG,IAAA,KAAoD,QAAQ,CAAqB,SAAS,CAAC,EAA1F,qBAAqB,QAAA,EAAE,wBAAwB,QAA2C,CAAC;IAC5F,IAAA,KAAgC,QAAQ,CAAC,CAAC,CAAC,EAA1C,WAAW,QAAA,EAAE,cAAc,QAAe,CAAC;IAElD,OAAO;IACP,IAAM,iBAAiB,GAAG,MAAM,CAA4C,SAAS,CAAC,CAAC;IACvF,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhC,sBAAsB;IACtB,IAAM,UAAU,GAAG,WAAW,CAAC;QAC7B,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP;;;OAGG;IACH,IAAM,oBAAoB,GAAG,WAAW,CAAC,UAAC,MAAc,EAAE,OAAyB;QACjF,uDAAuD;QAEvD,OAAO,IAAK,KAAa,CAAC,MAAM,EAAE;YAChC,GAAG,EAAE,UAAS,CAAS,EAAE,IAAqB;gBAC5C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACnB,OAAO,UAAS,CAAS;wBACvB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;wBAChB,IAAM,MAAM,GAAI,CAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzC,OAAO,oBAAoB,CAAC,MAAgB,EAAE,OAAO,CAAC,CAAC;oBACzD,CAAC,CAAC;gBACJ,CAAC;gBAED,IAAM,KAAK,GAAI,CAAS,CAAC,IAAc,CAAC,CAAC;gBACzC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,OAAO;wBAAS,cAAkB;6BAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;4BAAlB,yBAAkB;;wBAChC,IAAM,MAAM,GAAI,KAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wBAC7C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAQ,MAAc,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BACzF,OAAO,oBAAoB,CAAC,MAAgB,EAAE,OAAO,CAAC,CAAC;wBACzD,CAAC;wBACD,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAW,CAAC;QACb,sDAAsD;IACxD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP;;OAEG;IACH,IAAM,KAAK,GAAG,WAAW,CAAC,UACxB,YAAwC,EACxC,YAAoC;;;;;;oBAEpC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBAC7B,GAAG,GAAG,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;wBACpG,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACd,MAAM,GAAG,CAAC;oBACZ,CAAC;oBAED,UAAU,CAAC,IAAI,CAAC,CAAC;oBACjB,QAAQ,CAAC,SAAS,CAAC,CAAC;;;;oBAGZ,QAAQ,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,mCAAI,eAAe,CAAC;oBACrD,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;oBAGrD,OAAO,GAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;oBAC/C,SAAS,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAGrD,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAGjE,UAAU,SAAQ,CAAC;oBACnB,iBAAiB,SAAoB,CAAC;oBAE1C,4BAA4B;oBAC5B,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACxD,OAAO,CAAC,IAAI,CACV,qCAA8B,OAAO,CAAC,GAAG,4BAAkB,QAAQ,kBAAe;4BAClF,qBAAc,OAAO,CAAC,GAAG,OAAI,CAC9B,CAAC;oBACJ,CAAC;oBAED,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;wBAC9B,mCAAmC;wBACnC,UAAU,GAAG,SAAS,CAAC;wBACvB,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;oBAClC,CAAC;yBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAClC,sBAAsB;wBACtB,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACrC,iBAAiB,GAAG,QAAQ,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACN,gBAAgB;wBAChB,UAAU,GAAG,SAAS,CAAC;wBACvB,iBAAiB,GAAG,SAAS,CAAC;oBAChC,CAAC;oBAEc,qBAAM,UAAU,EAAE,EAAA;;oBAA3B,MAAM,GAAG,SAAyB;oBAExC,IAAI,CAAC,UAAU,CAAC,OAAO;wBAAE,sBAAO,MAAM,EAAC;oBAEvC,eAAe;oBACf,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjB,mBAAmB,CAAC,cAAM,OAAA,YAAY,EAAZ,CAAY,CAAC,CAAC;oBACxC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;oBAC5C,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAE9B,0CAA0C;oBAC1C,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;wBACpC,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpB,CAAC;oBAED,UAAU,CAAC,KAAK,CAAC,CAAC;oBAClB,sBAAO,MAAM,EAAC;;;oBAGd,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACvB,QAAQ,CAAC,KAAY,CAAC,CAAC;wBACvB,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpB,CAAC;oBACD,MAAM,KAAG,CAAC;;;;SAEb,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAEnF;;OAEG;IACH,IAAM,OAAO,GAAG,WAAW,CAAC;;;;oBAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;oBACxF,CAAC;oBAED,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,qBAAM,KAAK,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,EAAA;;oBAAlE,SAAkE,CAAC;;;;SACpE,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;IAErD;;OAEG;IACH,IAAM,gBAAgB,GAAG,WAAW,CAAC;QACnC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC9B,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,iBAAiB,CAAC,OAAO,GAAG,UAAU,CAAC;YACrC,OAAO,EAAE,CAAC,KAAK,CAAC,UAAS,GAAG;gBAC1B,IAAM,KAAK,GAAG,GAAY,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;gBAClE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd;;OAEG;IACH,IAAM,QAAQ,GAAG,WAAW,CAAC;;;;;oBAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;oBAC7E,CAAC;oBAED,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;wBACxC,MAAM,IAAI,KAAK,CAAC,kGAAkG,CAAC,CAAC;oBACtH,CAAC;oBAED,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;wBAC3B,sBAAO,EAAE,EAAC;oBACZ,CAAC;oBAED,cAAc,CAAC,IAAI,CAAC,CAAC;;;;oBAGnB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;oBAClE,CAAC;oBAEK,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;oBACrD,OAAO,GAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;oBAC/C,SAAS,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAErD,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;oBACxC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAE3D,qBAAM,UAAU,EAAE,EAAA;;oBAA3B,WAAS,SAAyB;oBAExC,IAAI,CAAC,UAAU,CAAC,OAAO;wBAAE,sBAAO,QAAM,EAAC;oBAEvC,QAAQ,CAAC,UAAS,SAAc;wBAC9B,OAAO,SAAS,CAAC,MAAM,CAAC,QAAM,CAAC,CAAC;oBAClC,CAAC,CAAC,CAAC;oBACH,cAAc,CAAC,UAAS,IAAY;wBAClC,OAAO,IAAI,GAAG,QAAM,CAAC,MAAM,CAAC;oBAC9B,CAAC,CAAC,CAAC;oBACH,UAAU,CAAC,QAAM,CAAC,MAAM,KAAK,qBAAqB,CAAC,CAAC;oBACpD,cAAc,CAAC,KAAK,CAAC,CAAC;oBAEtB,sBAAO,QAAM,EAAC;;;oBAGd,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACvB,QAAQ,CAAC,KAAY,CAAC,CAAC;wBACvB,cAAc,CAAC,KAAK,CAAC,CAAC;oBACxB,CAAC;oBACD,MAAM,KAAG,CAAC;;;;SAEb,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE9I;;OAEG;IACH,IAAM,OAAO,GAAG,WAAW,CAAC,UAAO,EAAU;;;;;oBAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;oBAClE,CAAC;;;;oBAGc,qBAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAA;;oBAAnE,IAAI,GAAG,SAAiE;oBAC9E,sBAAO,IAAI,EAAC;;;oBAEN,UAAQ,KAAY,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,OAAK,CAAC,CAAC;oBACxD,QAAQ,CAAC,OAAK,CAAC,CAAC;oBAChB,sBAAO,SAAS,EAAC;;;;SAEpB,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IAE5C;;OAEG;IACH,IAAM,MAAM,GAAG,WAAW,CAAC,UAAO,IAAgB;;;;;oBAChD,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBACjD,CAAC;;;;oBAGgB,qBAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAA+B,CAAC,EAAA;;oBAA5F,MAAM,GAAG,SAAmF;oBAClG,gBAAgB,EAAE,CAAC;oBACnB,sBAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAC;;;oBAEtB,QAAQ,CAAC,KAAY,CAAC,CAAC;oBACvB,MAAM,KAAG,CAAC;;;;SAEb,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,IAAM,MAAM,GAAG,WAAW,CAAC,UAAO,EAAU,EAAE,IAAgB;;;;;oBAC5D,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBACjD,CAAC;;;;oBAGC,qBAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAA+B,CAAC,EAAA;;oBAAlG,SAAkG,CAAC;oBACnG,gBAAgB,EAAE,CAAC;;;;oBAEnB,QAAQ,CAAC,KAAY,CAAC,CAAC;oBACvB,MAAM,KAAG,CAAC;;;;SAEb,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,IAAM,MAAM,GAAG,WAAW,CAAC,UAAO,EAAU;;;;;oBAC1C,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBACjD,CAAC;;;;oBAGC,qBAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAnE,SAAmE,CAAC;oBACpE,gBAAgB,EAAE,CAAC;;;;oBAEnB,QAAQ,CAAC,KAAY,CAAC,CAAC;oBACvB,MAAM,KAAG,CAAC;;;;SAEb,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,IAAM,WAAW,GAAG,WAAW,CAAC,UAAO,aAA2B;;;;;oBAChE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBACjD,CAAC;;;;oBAGO,QAAgB,EAAE,CAAC;oBACnB,WAAoB,EAAE,CAAC;oBACvB,WAAW,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC3B,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAEzB,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAEvD,oBAAoB;oBACpB,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAA4B,CAAC,CAAC,IAAI,CAAC,UAAS,MAAgC;4BACxG,KAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC3B,CAAC,CAAC,CAAC,KAAK,CAAC,UAAS,KAAc;4BAC9B,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;4BAC5C,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACrB,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,gBAAgB;oBAChB,qBAAM,OAAO,EAAE,EAAA;;oBADf,gBAAgB;oBAChB,SAAe,CAAC;oBAEhB,iEAAiE;oBACjE,IAAI,QAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChB,UAAU,GAAG,IAAI,KAAK,CAAC,+BAAwB,QAAM,CAAC,MAAM,iBAAO,aAAa,CAAC,MAAM,kBAAe,CAAC,CAAC;wBAC9G,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAM,CAAC,CAAC;oBACjD,CAAC;oBAED,gBAAgB,EAAE,CAAC;oBACnB,sBAAO,KAAG,EAAC;;;oBAEL,UAAQ,KAAY,CAAC;oBAC3B,QAAQ,CAAC,OAAK,CAAC,CAAC;oBAChB,MAAM,OAAK,CAAC;;;;SAEf,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,IAAM,WAAW,GAAG,WAAW,CAAC,UAC9B,OAAgD;;;;;oBAEhD,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBACjD,CAAC;;;;oBAGO,WAAoB,EAAE,CAAC;oBACvB,WAAW,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC3B,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAEzB,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAEvD,oBAAoB;oBACpB,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAA+B,CAAC,CAAC,KAAK,CAAC,UAAS,KAAc;4BAChH,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;4BAC5C,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACrB,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,gBAAgB;oBAChB,qBAAM,OAAO,EAAE,EAAA;;oBADf,gBAAgB;oBAChB,SAAe,CAAC;oBAEhB,iEAAiE;oBACjE,IAAI,QAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChB,UAAU,GAAG,IAAI,KAAK,CAAC,+BAAwB,QAAM,CAAC,MAAM,iBAAO,OAAO,CAAC,MAAM,kBAAe,CAAC,CAAC;wBACxG,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAM,CAAC,CAAC;oBACjD,CAAC;oBAED,gBAAgB,EAAE,CAAC;;;;oBAEb,UAAQ,KAAY,CAAC;oBAC3B,QAAQ,CAAC,OAAK,CAAC,CAAC;oBAChB,MAAM,OAAK,CAAC;;;;SAEf,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,IAAM,WAAW,GAAG,WAAW,CAAC,UAAO,GAAa;;;;;oBAClD,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBACjD,CAAC;;;;oBAGO,WAAoB,EAAE,CAAC;oBACvB,WAAW,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC3B,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAEzB,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAEvD,oBAAoB;oBACpB,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAS,KAAc;4BAC/D,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;4BAC5C,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACrB,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,gBAAgB;oBAChB,qBAAM,OAAO,EAAE,EAAA;;oBADf,gBAAgB;oBAChB,SAAe,CAAC;oBAEhB,iEAAiE;oBACjE,IAAI,QAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChB,UAAU,GAAG,IAAI,KAAK,CAAC,+BAAwB,QAAM,CAAC,MAAM,iBAAO,GAAG,CAAC,MAAM,kBAAe,CAAC,CAAC;wBACpG,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAM,CAAC,CAAC;oBACjD,CAAC;oBAED,gBAAgB,EAAE,CAAC;;;;oBAEb,UAAQ,KAAY,CAAC;oBAC3B,QAAQ,CAAC,OAAK,CAAC,CAAC;oBAChB,MAAM,OAAK,CAAC;;;;SAEf,EAAE,CAAC,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,SAAS,CAAC;QACR,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAE1B,OAAO;YACL,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;YAC3B,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC9B,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gBAAgB;IAChB,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;IAEzD,OAAO;QACL,KAAK,OAAA;QACL,KAAK,EAAE,KAAY;QACnB,OAAO,SAAA;QACP,WAAW,aAAA;QACX,KAAK,OAAA;QACL,OAAO,SAAA;QACP,OAAO,SAAA;QACP,OAAO,SAAA;QACP,QAAQ,UAAA;QACR,UAAU,YAAA;QACV,OAAO,SAAA;QACP,MAAM,QAAA;QACN,MAAM,QAAA;QACN,MAAM,QAAA;QACN,WAAW,aAAA;QACX,WAAW,aAAA;QACX,WAAW,aAAA;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,540 @@
1
+ import type { PnPContextInfo } from './useSPFxPnPContext';
2
+ import '@pnp/sp/search';
3
+ import type { ISearchBuilder } from '@pnp/sp/search';
4
+ /**
5
+ * Type alias for SearchQueryBuilder function
6
+ * Uses ISearchBuilder interface from PnPjs
7
+ */
8
+ type SearchQueryBuilderFn = (builder: ISearchBuilder) => ISearchBuilder;
9
+ /**
10
+ * Standard SharePoint Search Verticals (Result Sources).
11
+ * Use these SourceIds to filter search results by content type.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { SearchVerticals } from '@apvee/spfx-react-toolkit';
16
+ *
17
+ * // Search only people
18
+ * search(builder =>
19
+ * builder.text("john").sourceId(SearchVerticals.People)
20
+ * );
21
+ * ```
22
+ */
23
+ export declare const SearchVerticals: {
24
+ /**
25
+ * All results (default) - no filtering
26
+ */
27
+ readonly All: undefined;
28
+ /**
29
+ * People and user profiles
30
+ */
31
+ readonly People: "b09a7990-05ea-4af9-81ef-edfab16c4e31";
32
+ /**
33
+ * Video content (.mp4, .avi, embedded videos)
34
+ */
35
+ readonly Videos: "38403c8c-3975-41a8-826e-717f2d41568a";
36
+ /**
37
+ * SharePoint sites, subsites, workspaces
38
+ */
39
+ readonly Sites: "e1327b9c-2b8c-4b23-99c9-3730cb29c3f7";
40
+ /**
41
+ * Documents (.docx, .pdf, .xlsx, etc.)
42
+ */
43
+ readonly Documents: "8413cd39-2156-4e00-b54d-11efd9abdb89";
44
+ /**
45
+ * Conversations (Yammer, Teams messages)
46
+ */
47
+ readonly Conversations: "6e71030e-5e16-4406-9bff-9c1829843083";
48
+ /**
49
+ * Pages (modern pages, wiki pages)
50
+ */
51
+ readonly Pages: "5e34578e-4d68-4783-8c79-1f07d10bed4f";
52
+ };
53
+ /**
54
+ * Options for configuring the useSPFxPnPSearch hook.
55
+ */
56
+ export interface UseSPFxPnPSearchOptions {
57
+ /**
58
+ * Number of results per page (default: 50).
59
+ * Used for automatic pagination with loadMore().
60
+ *
61
+ * @default 50
62
+ * @example
63
+ * ```tsx
64
+ * const { search } = useSPFxPnPSearch({ pageSize: 100 });
65
+ * ```
66
+ */
67
+ pageSize?: number;
68
+ /**
69
+ * Default properties to select in search results.
70
+ * Can be overridden in individual search() calls via builder.
71
+ *
72
+ * @example
73
+ * ```tsx
74
+ * useSPFxPnPSearch({
75
+ * selectProperties: ['Title', 'Path', 'Author', 'FileType']
76
+ * });
77
+ * ```
78
+ */
79
+ selectProperties?: string[];
80
+ /**
81
+ * Refiners (facets) to request from SharePoint.
82
+ * Comma-separated string of managed property names.
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * useSPFxPnPSearch({
87
+ * refiners: 'FileType,Author,ModifiedBy'
88
+ * });
89
+ * ```
90
+ */
91
+ refiners?: string;
92
+ }
93
+ /**
94
+ * Represents a single search result with parsed data and raw cells.
95
+ *
96
+ * @template T - The type of the parsed result data (default: Record<string, string>)
97
+ */
98
+ export interface SearchResult<T = Record<string, string>> {
99
+ /**
100
+ * Unique identifier for the result.
101
+ * Computed from Path or DocId.
102
+ */
103
+ id: string;
104
+ /**
105
+ * Parsed result data as a typed object.
106
+ * Cells array converted to key-value object for convenience.
107
+ *
108
+ * @example
109
+ * ```tsx
110
+ * result.data.Title // "My Document"
111
+ * result.data.Path // "https://..."
112
+ * result.data.FileType // "docx"
113
+ * ```
114
+ */
115
+ data: T;
116
+ /**
117
+ * Raw search result from SharePoint Search.
118
+ * In PnPjs v4, this is the complete ISearchResult object.
119
+ */
120
+ raw: unknown;
121
+ /**
122
+ * Relevance rank score (higher = more relevant).
123
+ */
124
+ rank?: number;
125
+ }
126
+ /**
127
+ * Represents a single refiner (facet) with its entries.
128
+ */
129
+ export interface SearchRefiner {
130
+ /**
131
+ * Name of the refiner (managed property name).
132
+ */
133
+ name: string;
134
+ /**
135
+ * Refiner entries with values and counts.
136
+ */
137
+ entries: Array<{
138
+ /**
139
+ * Display value of the refiner entry.
140
+ */
141
+ value: string;
142
+ /**
143
+ * Number of results matching this refiner value.
144
+ */
145
+ count: number;
146
+ /**
147
+ * Refinement token for filtering.
148
+ */
149
+ token: string;
150
+ }>;
151
+ }
152
+ /**
153
+ * Return type for the useSPFxPnPSearch hook.
154
+ *
155
+ * @template T - The type of the search result data
156
+ */
157
+ export interface SPFxPnPSearchInfo<T = Record<string, string>> {
158
+ /**
159
+ * Executes a search query using SharePoint Search API.
160
+ *
161
+ * Supports both simple text queries and advanced SearchQueryBuilder patterns.
162
+ * The hook automatically applies default options (selectProperties, refiners, pageSize)
163
+ * before passing the builder to the callback, allowing user overrides.
164
+ *
165
+ * @param query - Search query text or builder callback
166
+ * @param options - Optional query-specific options (pageSize override)
167
+ * @returns Promise resolving to array of parsed search results
168
+ *
169
+ * @example Simple text query
170
+ * ```tsx
171
+ * const { search, results } = useSPFxPnPSearch();
172
+ *
173
+ * await search("ContentType:Document");
174
+ * // results contains all documents
175
+ * ```
176
+ *
177
+ * @example Advanced builder query
178
+ * ```tsx
179
+ * await search(builder =>
180
+ * builder
181
+ * .text("training")
182
+ * .sourceId(SearchVerticals.Videos)
183
+ * .selectProperties('Title', 'Path', 'FileType')
184
+ * .rowLimit(100)
185
+ * .sortList({ Property: 'LastModifiedTime', Direction: 1 })
186
+ * );
187
+ * ```
188
+ *
189
+ * @example With verticals
190
+ * ```tsx
191
+ * // Search only people
192
+ * search(builder =>
193
+ * builder
194
+ * .text("john")
195
+ * .sourceId(SearchVerticals.People)
196
+ * );
197
+ * ```
198
+ */
199
+ search: (query: string | SearchQueryBuilderFn, options?: {
200
+ pageSize?: number;
201
+ }) => Promise<SearchResult<T>[]>;
202
+ /**
203
+ * Gets search suggestions (autocomplete) for a query text.
204
+ * Useful for implementing search-as-you-type experiences.
205
+ *
206
+ * @param queryText - Partial search query text
207
+ * @returns Promise resolving to array of suggestion strings
208
+ *
209
+ * @example
210
+ * ```tsx
211
+ * const { suggest } = useSPFxPnPSearch();
212
+ *
213
+ * const suggestions = await suggest("my qu");
214
+ * // → ["my query", "my question", "my quick start"]
215
+ * ```
216
+ */
217
+ suggest: (queryText: string) => Promise<string[]>;
218
+ /**
219
+ * Current search results.
220
+ */
221
+ results: SearchResult<T>[];
222
+ /**
223
+ * Total number of results available (may be > results.length if paginated).
224
+ */
225
+ totalResults: number;
226
+ /**
227
+ * Available refiners (facets) from the last search.
228
+ * Only populated if refiners were requested in options.
229
+ */
230
+ refiners: SearchRefiner[];
231
+ /**
232
+ * Indicates if a search is in progress.
233
+ */
234
+ loading: boolean;
235
+ /**
236
+ * Indicates if loadMore() is fetching additional results.
237
+ */
238
+ loadingMore: boolean;
239
+ /**
240
+ * Indicates if more results are available to load.
241
+ */
242
+ hasMore: boolean;
243
+ /**
244
+ * Error from the last operation, if any.
245
+ */
246
+ error: Error | undefined;
247
+ /**
248
+ * Loads the next page of results using the last query.
249
+ * Automatically appends new results to the existing results array.
250
+ *
251
+ * @returns Promise resolving to the newly loaded results
252
+ * @throws Error if no previous search was executed
253
+ * @throws Error if no pageSize was specified
254
+ *
255
+ * @example
256
+ * ```tsx
257
+ * const { results, hasMore, loadMore, loadingMore } = useSPFxPnPSearch({ pageSize: 50 });
258
+ *
259
+ * return (
260
+ * <div>
261
+ * {results.map(r => <ResultCard key={r.id} result={r} />)}
262
+ * {hasMore && (
263
+ * <button onClick={loadMore} disabled={loadingMore}>
264
+ * Load More
265
+ * </button>
266
+ * )}
267
+ * </div>
268
+ * );
269
+ * ```
270
+ */
271
+ loadMore: () => Promise<SearchResult<T>[]>;
272
+ /**
273
+ * Re-executes the last search with the same parameters.
274
+ * Resets pagination state and replaces current results.
275
+ *
276
+ * @returns Promise resolving when refetch is complete
277
+ * @throws Error if no previous search was executed
278
+ */
279
+ refetch: () => Promise<void>;
280
+ /**
281
+ * Applies a refiner filter to the current search query.
282
+ * Uses SharePoint's RefinementFilters API for semantic filtering.
283
+ * Automatically re-executes the search with the new filter.
284
+ *
285
+ * @param refinerName - Name of the refiner (managed property)
286
+ * @param refinerValue - Value to filter by
287
+ * @returns Promise resolving when filtered search is complete
288
+ *
289
+ * @example
290
+ * ```tsx
291
+ * const { refiners, applyRefiner } = useSPFxPnPSearch({
292
+ * refiners: 'FileType,Author'
293
+ * });
294
+ *
295
+ * // After initial search, show refiners
296
+ * {refiners.map(refiner => (
297
+ * <div key={refiner.name}>
298
+ * <h3>{refiner.name}</h3>
299
+ * {refiner.entries.map(entry => (
300
+ * <button onClick={() => applyRefiner(refiner.name, entry.value)}>
301
+ * {entry.value} ({entry.count})
302
+ * </button>
303
+ * ))}
304
+ * </div>
305
+ * ))}
306
+ * ```
307
+ */
308
+ applyRefiner: (refinerName: string, refinerValue: string) => Promise<void>;
309
+ /**
310
+ * Clears the current error state.
311
+ */
312
+ clearError: () => void;
313
+ }
314
+ /**
315
+ * Hook for working with SharePoint Search using PnPjs fluent API.
316
+ * Provides search execution, suggestions, refiners, pagination, and state management.
317
+ *
318
+ * **Key Features**:
319
+ * - ✅ Native PnPjs SearchQueryBuilder - full type-safe query building
320
+ * - ✅ Auto-parsing of Cells to typed objects
321
+ * - ✅ Search suggestions (autocomplete)
322
+ * - ✅ Refiners (facets) support
323
+ * - ✅ Pagination with loadMore() and hasMore
324
+ * - ✅ Verticals support (People, Videos, Sites, etc.)
325
+ * - ✅ Cross-site search via PnPContextInfo
326
+ * - ✅ Local state management per component instance
327
+ * - ✅ ES5 compatibility (IE11 support)
328
+ *
329
+ * @template T - The type of the search result data (default: Record<string, string>)
330
+ * @param options - Optional configuration (pageSize, selectProperties, refiners)
331
+ * @param pnpContext - Optional PnP context for cross-site scenarios
332
+ * @returns Object containing search method, results, loading states, and actions
333
+ *
334
+ * @example Basic text search
335
+ * ```tsx
336
+ * import { useSPFxPnPSearch } from '@apvee/spfx-react-toolkit';
337
+ *
338
+ * function DocumentSearch() {
339
+ * const { search, results, loading } = useSPFxPnPSearch({ pageSize: 50 });
340
+ *
341
+ * useEffect(() => {
342
+ * search("ContentType:Document");
343
+ * }, [search]);
344
+ *
345
+ * if (loading) return <Spinner />;
346
+ *
347
+ * return (
348
+ * <ul>
349
+ * {results.map(result => (
350
+ * <li key={result.id}>
351
+ * <a href={result.data.Path}>{result.data.Title}</a>
352
+ * </li>
353
+ * ))}
354
+ * </ul>
355
+ * );
356
+ * }
357
+ * ```
358
+ *
359
+ * @example Advanced search with builder
360
+ * ```tsx
361
+ * interface Document {
362
+ * Title: string;
363
+ * Path: string;
364
+ * FileType: string;
365
+ * Author: string;
366
+ * LastModifiedTime: string;
367
+ * }
368
+ *
369
+ * function AdvancedSearch() {
370
+ * const { search, results } = useSPFxPnPSearch<Document>({
371
+ * selectProperties: ['Title', 'Path', 'FileType', 'Author', 'LastModifiedTime'],
372
+ * pageSize: 100
373
+ * });
374
+ *
375
+ * useEffect(() => {
376
+ * search(builder =>
377
+ * builder
378
+ * .text("training")
379
+ * .rowLimit(100)
380
+ * .sortList({ Property: 'LastModifiedTime', Direction: 1 })
381
+ * );
382
+ * }, [search]);
383
+ *
384
+ * return (
385
+ * <div>
386
+ * {results.map(doc => (
387
+ * <DocumentCard key={doc.id} document={doc.data} />
388
+ * ))}
389
+ * </div>
390
+ * );
391
+ * }
392
+ * ```
393
+ *
394
+ * @example Search with verticals
395
+ * ```tsx
396
+ * import { SearchVerticals } from '@apvee/spfx-react-toolkit';
397
+ *
398
+ * function PeopleSearch() {
399
+ * const { search, results } = useSPFxPnPSearch({
400
+ * selectProperties: ['PreferredName', 'WorkEmail', 'PictureURL', 'JobTitle']
401
+ * });
402
+ *
403
+ * useEffect(() => {
404
+ * search(builder =>
405
+ * builder
406
+ * .text("john")
407
+ * .sourceId(SearchVerticals.People)
408
+ * );
409
+ * }, [search]);
410
+ *
411
+ * return (
412
+ * <div>
413
+ * {results.map(person => (
414
+ * <Persona
415
+ * key={person.id}
416
+ * text={person.data.PreferredName}
417
+ * secondaryText={person.data.JobTitle}
418
+ * imageUrl={person.data.PictureURL}
419
+ * />
420
+ * ))}
421
+ * </div>
422
+ * );
423
+ * }
424
+ * ```
425
+ *
426
+ * @example Pagination with loadMore
427
+ * ```tsx
428
+ * function PaginatedSearch() {
429
+ * const {
430
+ * search,
431
+ * results,
432
+ * hasMore,
433
+ * loadMore,
434
+ * loadingMore
435
+ * } = useSPFxPnPSearch({ pageSize: 20 });
436
+ *
437
+ * useEffect(() => {
438
+ * search("report");
439
+ * }, [search]);
440
+ *
441
+ * return (
442
+ * <div>
443
+ * {results.map(r => <ResultCard key={r.id} result={r} />)}
444
+ * {hasMore && (
445
+ * <button onClick={loadMore} disabled={loadingMore}>
446
+ * {loadingMore ? 'Loading...' : 'Load More'}
447
+ * </button>
448
+ * )}
449
+ * </div>
450
+ * );
451
+ * }
452
+ * ```
453
+ *
454
+ * @example Refiners (facets) filtering
455
+ * ```tsx
456
+ * function RefinedSearch() {
457
+ * const {
458
+ * search,
459
+ * results,
460
+ * refiners,
461
+ * applyRefiner
462
+ * } = useSPFxPnPSearch({
463
+ * refiners: 'FileType,Author',
464
+ * pageSize: 50
465
+ * });
466
+ *
467
+ * useEffect(() => {
468
+ * search("document");
469
+ * }, [search]);
470
+ *
471
+ * return (
472
+ * <div style={{ display: 'flex' }}>
473
+ * {/* Sidebar with refiners *\/}
474
+ * <div>
475
+ * {refiners.map(refiner => (
476
+ * <div key={refiner.name}>
477
+ * <h4>{refiner.name}</h4>
478
+ * {refiner.entries.map(entry => (
479
+ * <button
480
+ * key={entry.value}
481
+ * onClick={() => applyRefiner(refiner.name, entry.value)}
482
+ * >
483
+ * {entry.value} ({entry.count})
484
+ * </button>
485
+ * ))}
486
+ * </div>
487
+ * ))}
488
+ * </div>
489
+ *
490
+ * {/* Results *\/}
491
+ * <div>
492
+ * {results.map(r => <ResultCard key={r.id} result={r} />)}
493
+ * </div>
494
+ * </div>
495
+ * );
496
+ * }
497
+ * ```
498
+ *
499
+ * @example Search suggestions (autocomplete)
500
+ * ```tsx
501
+ * function SearchBox() {
502
+ * const { search, suggest } = useSPFxPnPSearch();
503
+ * const [query, setQuery] = React.useState('');
504
+ * const [suggestions, setSuggestions] = React.useState<string[]>([]);
505
+ *
506
+ * const handleInputChange = async (text: string) => {
507
+ * setQuery(text);
508
+ * if (text.length > 2) {
509
+ * const results = await suggest(text);
510
+ * setSuggestions(results);
511
+ * }
512
+ * };
513
+ *
514
+ * const handleSearch = () => {
515
+ * search(query);
516
+ * setSuggestions([]);
517
+ * };
518
+ *
519
+ * return (
520
+ * <div>
521
+ * <input
522
+ * value={query}
523
+ * onChange={(e) => handleInputChange(e.target.value)}
524
+ * onKeyPress={(e) => e.key === 'Enter' && handleSearch()}
525
+ * />
526
+ * {suggestions.length > 0 && (
527
+ * <ul>
528
+ * {suggestions.map((s, i) => (
529
+ * <li key={i} onClick={() => setQuery(s)}>{s}</li>
530
+ * ))}
531
+ * </ul>
532
+ * )}
533
+ * </div>
534
+ * );
535
+ * }
536
+ * ```
537
+ */
538
+ export declare function useSPFxPnPSearch<T = Record<string, string>>(options?: UseSPFxPnPSearchOptions, pnpContext?: PnPContextInfo): SPFxPnPSearchInfo<T>;
539
+ export {};
540
+ //# sourceMappingURL=useSPFxPnPSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSPFxPnPSearch.d.ts","sourceRoot":"","sources":["../../src/hooks/useSPFxPnPSearch.ts"],"names":[],"mappings":"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"}