@budibase/server 1.0.145 → 1.0.148

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 (177) hide show
  1. package/__mocks__/@google-cloud/firestore.ts +36 -0
  2. package/__mocks__/pg.ts +1 -9
  3. package/builder/assets/{index.6b7d3283.js → index.63d4b14b.js} +2 -2
  4. package/builder/index.html +1 -1
  5. package/coverage/clover.xml +94 -101
  6. package/coverage/coverage-final.json +2 -2
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/index.html +1 -1
  17. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  46. package/coverage/lcov-report/api/index.html +1 -1
  47. package/coverage/lcov-report/api/index.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/index.html +1 -1
  59. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  73. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  76. package/coverage/lcov-report/automations/actions.js.html +1 -1
  77. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  78. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  79. package/coverage/lcov-report/automations/index.html +1 -1
  80. package/coverage/lcov-report/automations/index.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/index.html +1 -1
  88. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  107. package/coverage/lcov-report/constants/index.html +1 -1
  108. package/coverage/lcov-report/constants/index.js.html +1 -1
  109. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  110. package/coverage/lcov-report/constants/screens.js.html +1 -1
  111. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  112. package/coverage/lcov-report/db/index.html +18 -18
  113. package/coverage/lcov-report/db/index.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  117. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  118. package/coverage/lcov-report/db/newid.js.html +2 -2
  119. package/coverage/lcov-report/db/utils.js.html +18 -72
  120. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  121. package/coverage/lcov-report/events/index.html +1 -1
  122. package/coverage/lcov-report/events/index.js.html +1 -1
  123. package/coverage/lcov-report/events/utils.js.html +1 -1
  124. package/coverage/lcov-report/index.html +19 -19
  125. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  126. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  127. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  128. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  129. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  130. package/coverage/lcov-report/middleware/index.html +1 -1
  131. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  132. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  133. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  134. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  135. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  136. package/coverage/lcov-report/threads/automation.js.html +1 -1
  137. package/coverage/lcov-report/threads/index.html +1 -1
  138. package/coverage/lcov-report/threads/query.js.html +1 -1
  139. package/coverage/lcov-report/threads/utils.js.html +1 -1
  140. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  141. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  142. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  143. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  144. package/coverage/lcov-report/utilities/global.js.html +1 -1
  145. package/coverage/lcov-report/utilities/index.html +1 -1
  146. package/coverage/lcov-report/utilities/index.js.html +1 -1
  147. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  148. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  150. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  152. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  153. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  154. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  155. package/coverage/lcov-report/utilities/security.js.html +1 -1
  156. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  158. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  159. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  160. package/coverage/lcov-report/utilities/users.js.html +1 -1
  161. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  162. package/coverage/lcov.info +187 -201
  163. package/dist/api/controllers/row/ExternalRequest.js +3 -2
  164. package/dist/db/utils.js +3 -21
  165. package/dist/integrations/firebase.js +9 -9
  166. package/dist/integrations/index.js +1 -0
  167. package/dist/integrations/postgres.js +15 -11
  168. package/dist/package.json +5 -5
  169. package/dist/tsconfig.build.tsbuildinfo +1 -1
  170. package/package.json +6 -6
  171. package/src/api/controllers/row/ExternalRequest.ts +3 -2
  172. package/src/db/utils.js +4 -22
  173. package/src/integrations/firebase.ts +10 -10
  174. package/src/integrations/index.ts +1 -0
  175. package/src/integrations/postgres.ts +9 -11
  176. package/src/integrations/tests/firebase.spec.js +92 -0
  177. package/src/integrations/tests/postgres.spec.js +0 -4
@@ -0,0 +1,36 @@
1
+ module FirebaseMock {
2
+ const firebase: any = {}
3
+
4
+ firebase.Firestore = function () {
5
+ this.get = jest.fn(() => [
6
+ {
7
+ data: jest.fn(() => ({ result: "test" })),
8
+ },
9
+ ])
10
+
11
+ this.update = jest.fn()
12
+ this.set = jest.fn()
13
+ this.delete = jest.fn()
14
+
15
+ this.doc = jest.fn(() => ({
16
+ update: this.update,
17
+ set: this.set,
18
+ delete: this.delete,
19
+ get: jest.fn(() => ({
20
+ data: jest.fn(() => ({ result: "test" })),
21
+ })),
22
+ id: "test_id",
23
+ }))
24
+
25
+ this.where = jest.fn(() => ({
26
+ get: this.get,
27
+ }))
28
+
29
+ this.collection = jest.fn(() => ({
30
+ doc: this.doc,
31
+ where: this.where,
32
+ }))
33
+ }
34
+
35
+ module.exports = firebase
36
+ }
package/__mocks__/pg.ts CHANGED
@@ -14,21 +14,13 @@ module PgMock {
14
14
  function Client() {}
15
15
 
16
16
  Client.prototype.query = query
17
+ Client.prototype.end = jest.fn()
17
18
  Client.prototype.connect = jest.fn()
18
19
  Client.prototype.release = jest.fn()
19
20
 
20
- function Pool() {}
21
-
22
21
  const on = jest.fn()
23
- Pool.prototype.query = query
24
- Pool.prototype.connect = jest.fn(() => {
25
- // @ts-ignore
26
- return new Client()
27
- })
28
- Pool.prototype.on = on
29
22
 
30
23
  pg.Client = Client
31
- pg.Pool = Pool
32
24
  pg.queryMock = query
33
25
  pg.on = on
34
26
 
@@ -1246,7 +1246,7 @@ function print() { __p += __j.call(arguments, '') }
1246
1246
  `),t=j("i"),i=F(n),l=F("?"),s=F(`
1247
1247
  This action cannot be undone.`)},m(o,a){$(o,e,a),$(o,t,a),N(t,i),N(t,l),$(o,s,a)},p(o,a){a&1&&n!==(n=o[0].name+"")&&Ee(i,n)},d(o){o&&b(e),o&&b(t),o&&b(s)}}}function p1e(r){let e,t,n,i,l,s;e=new wr({props:{$$slots:{control:[f1e],default:[u1e]},$$scope:{ctx:r}}});let o={okText:"Delete Automation",onOk:r[3],title:"Confirm Deletion",$$slots:{default:[c1e]},$$scope:{ctx:r}};n=new fr({props:o}),r[4](n);let a={automation:r[0]};return l=new s1e({props:a}),r[5](l),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment)},m(u,f){A(e,u,f),$(u,t,f),A(n,u,f),$(u,i,f),A(l,u,f),s=!0},p(u,[f]){const c={};f&134&&(c.$$scope={dirty:f,ctx:u}),e.$set(c);const p={};f&129&&(p.$$scope={dirty:f,ctx:u}),n.$set(p);const d={};f&1&&(d.automation=u[0]),l.$set(d)},i(u){s||(m(e.$$.fragment,u),m(n.$$.fragment,u),m(l.$$.fragment,u),s=!0)},o(u){_(e.$$.fragment,u),_(n.$$.fragment,u),_(l.$$.fragment,u),s=!1},d(u){E(e,u),u&&b(t),r[4](null),E(n,u),u&&b(i),r[5](null),E(l,u)}}}function d1e(r,e,t){let n;fe(r,Ut,f=>t(6,n=f));let{automation:i}=e,l,s;async function o(){try{await Qt.actions.delete(i),we.success("Automation deleted successfully"),n("../automate")}catch{we.error("Error deleting automation")}}function a(f){K[f?"unshift":"push"](()=>{l=f,t(1,l)})}function u(f){K[f?"unshift":"push"](()=>{s=f,t(2,s)})}return r.$$set=f=>{"automation"in f&&t(0,i=f.automation)},[i,l,s,o,a,u]}class m1e extends se{constructor(e){super();oe(this,e,d1e,p1e,ie,{automation:0})}}function Zy(r,e,t){const n=r.slice();return n[5]=e[t],n[7]=t,n}function g1e(r){let e,t,n;return e=new m1e({props:{automation:r[5]}}),{c(){S(e.$$.fragment),t=R()},m(i,l){A(e,i,l),$(i,t,l),n=!0},p(i,l){const s={};l&1&&(s.automation=i[5]),e.$set(s)},i(i){n||(m(e.$$.fragment,i),n=!0)},o(i){_(e.$$.fragment,i),n=!1},d(i){E(e,i),i&&b(t)}}}function xy(r){let e,t;function n(){return r[3](r[5])}return e=new Ll({props:{border:r[7]>0,icon:"ShareAndroid",text:r[5].name,selected:r[5]._id===r[1],$$slots:{default:[g1e]},$$scope:{ctx:r}}}),e.$on("click",n),{c(){S(e.$$.fragment)},m(i,l){A(e,i,l),t=!0},p(i,l){r=i;const s={};l&1&&(s.text=r[5].name),l&3&&(s.selected=r[5]._id===r[1]),l&257&&(s.$$scope={dirty:l,ctx:r}),e.$set(s)},i(i){t||(m(e.$$.fragment,i),t=!0)},o(i){_(e.$$.fragment,i),t=!1},d(i){E(e,i)}}}function _1e(r){let e,t,n=r[0].automations,i=[];for(let s=0;s<n.length;s+=1)i[s]=xy(Zy(r,n,s));const l=s=>_(i[s],1,1,()=>{i[s]=null});return{c(){e=j("div");for(let s=0;s<i.length;s+=1)i[s].c();w(e,"class","automations-list svelte-g64vb")},m(s,o){$(s,e,o);for(let a=0;a<i.length;a+=1)i[a].m(e,null);t=!0},p(s,[o]){if(o&7){n=s[0].automations;let a;for(a=0;a<n.length;a+=1){const u=Zy(s,n,a);i[a]?(i[a].p(u,o),m(i[a],1)):(i[a]=xy(u),i[a].c(),m(i[a],1),i[a].m(e,null))}for(ee(),a=n.length;a<i.length;a+=1)l(a);te()}},i(s){if(!t){for(let o=0;o<n.length;o+=1)m(i[o]);t=!0}},o(s){i=i.filter(Boolean);for(let o=0;o<i.length;o+=1)_(i[o]);t=!1},d(s){s&&b(e),mt(i,s)}}}function h1e(r,e,t){let n,i,l;fe(r,Ut,a=>t(4,i=a)),fe(r,Qt,a=>t(0,l=a)),qt(async()=>{try{await Qt.actions.fetch()}catch{we.error("Error getting automations list")}});function s(a){Qt.actions.select(a),i(`./${a._id}`)}const o=a=>s(a);return r.$$.update=()=>{var a,u;r.$$.dirty&1&&t(1,n=(u=(a=l.selectedAutomation)==null?void 0:a.automation)==null?void 0:u._id)},[l,n,s,o]}class $1e extends se{constructor(e){super();oe(this,e,h1e,_1e,ie,{})}}function e7(r,e,t){const n=r.slice();return n[17]=e[t][0],n[18]=e[t][1],n}function b1e(r){let e;return{c(){e=F(`Please name your automation, then select a trigger. Every automation must
1248
1248
  start with a trigger.`)},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function v1e(r){let e;return{c(){e=F("Triggers")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function w1e(r){let e=r[18].name+"",t;return{c(){t=F(e)},m(n,i){$(n,t,i)},p(n,i){i&8&&e!==(e=n[18].name+"")&&Ee(t,e)},d(n){n&&b(t)}}}function t7(r){let e,t,n,i,l,s,o,a,u,f;n=new ut({props:{name:r[18].icon}}),s=new Ye({props:{size:"S",$$slots:{default:[w1e]},$$scope:{ctx:r}}});function c(){return r[13](r[18])}return{c(){e=j("div"),t=j("div"),S(n.$$.fragment),i=R(),l=j("span"),S(s.$$.fragment),o=R(),w(l,"class","icon-spacing svelte-d3iboa"),w(t,"class","item-body svelte-d3iboa"),w(e,"class","item svelte-d3iboa"),ae(e,"selected",r[2]===r[18].name)},m(p,d){$(p,e,d),N(e,t),A(n,t,null),N(t,i),N(t,l),A(s,l,null),N(e,o),a=!0,u||(f=Ne(e,"click",c),u=!0)},p(p,d){r=p;const g={};d&8&&(g.name=r[18].icon),n.$set(g);const h={};d&2097160&&(h.$$scope={dirty:d,ctx:r}),s.$set(h),d&12&&ae(e,"selected",r[2]===r[18].name)},i(p){a||(m(n.$$.fragment,p),m(s.$$.fragment,p),a=!0)},o(p){_(n.$$.fragment,p),_(s.$$.fragment,p),a=!1},d(p){p&&b(e),E(n),E(s),u=!1,f()}}}function y1e(r){let e,t,n,i;e=new Ye({props:{size:"S",$$slots:{default:[v1e]},$$scope:{ctx:r}}});let l=r[3],s=[];for(let a=0;a<l.length;a+=1)s[a]=t7(e7(r,l,a));const o=a=>_(s[a],1,1,()=>{s[a]=null});return{c(){S(e.$$.fragment),t=R(),n=j("div");for(let a=0;a<s.length;a+=1)s[a].c();w(n,"class","item-list svelte-d3iboa")},m(a,u){A(e,a,u),$(a,t,u),$(a,n,u);for(let f=0;f<s.length;f+=1)s[f].m(n,null);i=!0},p(a,u){const f={};if(u&2097152&&(f.$$scope={dirty:u,ctx:a}),e.$set(f),u&76){l=a[3];let c;for(c=0;c<l.length;c+=1){const p=e7(a,l,c);s[c]?(s[c].p(p,u),m(s[c],1)):(s[c]=t7(p),s[c].c(),m(s[c],1),s[c].m(n,null))}for(ee(),c=l.length;c<s.length;c+=1)o(c);te()}},i(a){if(!i){m(e.$$.fragment,a);for(let u=0;u<l.length;u+=1)m(s[u]);i=!0}},o(a){_(e.$$.fragment,a),s=s.filter(Boolean);for(let u=0;u<s.length;u+=1)_(s[u]);i=!1},d(a){E(e,a),a&&b(t),a&&b(n),mt(s,a)}}}function k1e(r){let e,t,n,i,l,s,o,a,u,f;e=new s1({props:{header:"You must publish your app to activate your automations.",message:"To test your automation before publishing, you can use the 'Run Test' functionality on the next screen."}}),n=new Ye({props:{size:"XS",$$slots:{default:[b1e]},$$scope:{ctx:r}}});function c(g){r[10](g)}function p(g){r[11](g)}let d={label:"Name"};return r[0]!==void 0&&(d.value=r[0]),r[4]!==void 0&&(d.error=r[4]),l=new nt({props:d}),K.push(()=>de(l,"value",c)),K.push(()=>de(l,"error",p)),l.$on("change",r[12]),u=new Ve({props:{noPadding:!0,$$slots:{default:[y1e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment),a=R(),S(u.$$.fragment)},m(g,h){A(e,g,h),$(g,t,h),A(n,g,h),$(g,i,h),A(l,g,h),$(g,a,h),A(u,g,h),f=!0},p(g,h){const v={};h&2097152&&(v.$$scope={dirty:h,ctx:g}),n.$set(v);const y={};!s&&h&1&&(s=!0,y.value=g[0],me(()=>s=!1)),!o&&h&16&&(o=!0,y.error=g[4],me(()=>o=!1)),l.$set(y);const k={};h&2097164&&(k.$$scope={dirty:h,ctx:g}),u.$set(k)},i(g){f||(m(e.$$.fragment,g),m(n.$$.fragment,g),m(l.$$.fragment,g),m(u.$$.fragment,g),f=!0)},o(g){_(e.$$.fragment,g),_(n.$$.fragment,g),_(l.$$.fragment,g),_(u.$$.fragment,g),f=!1},d(g){E(e,g),g&&b(t),E(n,g),g&&b(i),E(l,g),g&&b(a),E(u,g)}}}function C1e(r){let e,t;return e=new Nt({props:{title:"Create Automation",confirmText:"Save",size:"M",onConfirm:r[5],disabled:!r[2]||!r[0],$$slots:{default:[k1e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,[i]){const l={};i&5&&(l.disabled=!n[2]||!n[0]),i&2097183&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function S1e(r,e,t){let n,i,l,s,o,a;fe(r,Qt,T=>t(8,s=T)),fe(r,Ut,T=>t(16,o=T)),fe(r,Ss,T=>t(9,a=T));let u,f,c=!1,p,{webhookModal:d}=e;async function g(){var T;try{await Qt.actions.create({name:u,instanceId:n});const O=s.selectedAutomation.constructBlock("TRIGGER",p.stepId,p);Qt.actions.addBlockToAutomation(O),p.stepId==="WEBHOOK"&&d.show,await Qt.actions.save((T=s.selectedAutomation)==null?void 0:T.automation),we.success(`Automation ${u} created`),o(`./${s.selectedAutomation.automation._id}`),Ln.captureEvent(Nn.AUTOMATION.CREATED,{name:u})}catch{we.error("Error creating automation")}}const h=T=>{p=T,t(2,f=T.name)};function v(T){u=T,t(0,u)}function y(T){i=T,t(4,i),t(1,c),t(0,u)}const k=()=>t(1,c=!0),I=T=>h(T);return r.$$set=T=>{"webhookModal"in T&&t(7,d=T.webhookModal)},r.$$.update=()=>{r.$$.dirty&512&&(n=a._id),r.$$.dirty&3&&t(4,i=c&&!u?"Please specify a name for the automation.":null),r.$$.dirty&256&&t(3,l=Object.entries(s.blockDefinitions.TRIGGER))},[u,c,f,l,i,g,h,d,s,a,v,y,k,I]}class n7 extends se{constructor(e){super();oe(this,e,S1e,C1e,ie,{webhookModal:7})}}function A1e(r){let e,t;return e=new n7({props:{webhookModal:r[1]}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&2&&(l.webhookModal=n[1]),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function E1e(r){let e,t,n,i;e=new $1e({});let l={$$slots:{default:[A1e]},$$scope:{ctx:r}};return n=new kt({props:l}),r[2](n),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(s,o){A(e,s,o),$(s,t,o),A(n,s,o),i=!0},p(s,o){const a={};o&10&&(a.$$scope={dirty:o,ctx:s}),n.$set(a)},i(s){i||(m(e.$$.fragment,s),m(n.$$.fragment,s),i=!0)},o(s){_(e.$$.fragment,s),_(n.$$.fragment,s),i=!1},d(s){E(e,s),s&&b(t),r[2](null),E(n,s)}}}function O1e(r){let e,t;return e=new bn({props:{title:"Automations",$$slots:{default:[E1e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&11&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function T1e(r){let e,t,n,i,l,s;return t=new Vr({props:{selected:"Automations",$$slots:{default:[O1e]},$$scope:{ctx:r}}}),l=new ut({props:{hoverable:!0,name:"AddCircle"}}),l.$on("click",function(){ft(r[0].show)&&r[0].show.apply(this,arguments)}),{c(){e=j("div"),S(t.$$.fragment),n=R(),i=j("div"),S(l.$$.fragment),w(i,"class","add-button svelte-mcmub4"),w(e,"class","title svelte-mcmub4")},m(o,a){$(o,e,a),A(t,e,null),N(e,n),N(e,i),A(l,i,null),s=!0},p(o,[a]){r=o;const u={};a&11&&(u.$$scope={dirty:a,ctx:r}),t.$set(u)},i(o){s||(m(t.$$.fragment,o),m(l.$$.fragment,o),s=!0)},o(o){_(t.$$.fragment,o),_(l.$$.fragment,o),s=!1},d(o){o&&b(e),E(t),E(l)}}}function I1e(r,e,t){let{modal:n}=e,{webhookModal:i}=e;function l(s){K[s?"unshift":"push"](()=>{n=s,t(0,n)})}return r.$$set=s=>{"modal"in s&&t(0,n=s.modal),"webhookModal"in s&&t(1,i=s.webhookModal)},[n,i,l]}class L1e extends se{constructor(e){super();oe(this,e,I1e,T1e,ie,{modal:0,webhookModal:1})}}function P1e(r){let e,t,n,i;return n=new Ve({props:{gap:"S",justifyItems:"center",$$slots:{default:[j1e]},$$scope:{ctx:r}}}),{c(){e=j("div"),t=j("div"),S(n.$$.fragment),w(t,"class","main svelte-16gumu0"),w(e,"class","centered svelte-16gumu0")},m(l,s){$(l,e,s),N(e,t),A(n,t,null),i=!0},p(l,s){const o={};s&257&&(o.$$scope={dirty:s,ctx:l}),n.$set(o)},i(l){i||(m(n.$$.fragment,l),i=!0)},o(l){_(n.$$.fragment,l),i=!1},d(l){l&&b(e),E(n)}}}function N1e(r){let e;const t=r[4].default,n=bt(t,r,r[8],null);return{c(){n&&n.c()},m(i,l){n&&n.m(i,l),e=!0},p(i,l){n&&n.p&&(!e||l&256)&&vt(n,t,i,i[8],e?yt(t,i[8],l,null):wt(i[8]),null)},i(i){e||(m(n,i),e=!0)},o(i){_(n,i),e=!1},d(i){n&&n.d(i)}}}function R1e(r){let e;return{c(){e=F("You have no automations")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function M1e(r){let e;return{c(){e=F("Let's fix that. Call the bots!")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function D1e(r){let e;return{c(){e=F("Create automation")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function j1e(r){let e,t,n,i,l,s,o,a,u;return i=new gt({props:{size:"M",$$slots:{default:[R1e]},$$scope:{ctx:r}}}),s=new Ye({props:{size:"M",$$slots:{default:[M1e]},$$scope:{ctx:r}}}),a=new ot({props:{size:"M",cta:!0,$$slots:{default:[D1e]},$$scope:{ctx:r}}}),a.$on("click",r[5]),{c(){e=_e("svg"),t=_e("use"),n=R(),S(i.$$.fragment),l=R(),S(s.$$.fragment),o=R(),S(a.$$.fragment),Gt(t,"xlink:href","#spectrum-icon-18-WorkflowAdd"),w(e,"width","60px"),w(e,"height","60px"),w(e,"class","spectrum-Icon"),w(e,"focusable","false")},m(f,c){$(f,e,c),N(e,t),$(f,n,c),A(i,f,c),$(f,l,c),A(s,f,c),$(f,o,c),A(a,f,c),u=!0},p(f,c){const p={};c&256&&(p.$$scope={dirty:c,ctx:f}),i.$set(p);const d={};c&256&&(d.$$scope={dirty:c,ctx:f}),s.$set(d);const g={};c&256&&(g.$$scope={dirty:c,ctx:f}),a.$set(g)},i(f){u||(m(i.$$.fragment,f),m(s.$$.fragment,f),m(a.$$.fragment,f),u=!0)},o(f){_(i.$$.fragment,f),_(s.$$.fragment,f),_(a.$$.fragment,f),u=!1},d(f){f&&b(e),f&&b(n),E(i,f),f&&b(l),E(s,f),f&&b(o),E(a,f)}}}function B1e(r){let e,t;return e=new n7({props:{webhookModal:r[1]}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&2&&(l.webhookModal=n[1]),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function z1e(r){let e,t;return e=new F1({}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function q1e(r){let e,t,n,i,l,s,o,a,u,f,c,p;n=new L1e({props:{modal:r[0],webhookModal:r[1]}});const d=[N1e,P1e],g=[];function h(k,I){return k[2]?0:1}s=h(r),o=g[s]=d[s](r);let v={$$slots:{default:[B1e]},$$scope:{ctx:r}};u=new kt({props:v}),r[6](u);let y={width:"30%",$$slots:{default:[z1e]},$$scope:{ctx:r}};return c=new kt({props:y}),r[7](c),{c(){e=j("div"),t=j("div"),S(n.$$.fragment),i=R(),l=j("div"),o.c(),a=R(),S(u.$$.fragment),f=R(),S(c.$$.fragment),w(t,"class","nav svelte-16gumu0"),w(l,"class","content svelte-16gumu0"),w(e,"class","root svelte-16gumu0")},m(k,I){$(k,e,I),N(e,t),A(n,t,null),N(e,i),N(e,l),g[s].m(l,null),N(e,a),A(u,e,null),N(e,f),A(c,e,null),p=!0},p(k,[I]){const T={};I&1&&(T.modal=k[0]),I&2&&(T.webhookModal=k[1]),n.$set(T);let O=s;s=h(k),s===O?g[s].p(k,I):(ee(),_(g[O],1,1,()=>{g[O]=null}),te(),o=g[s],o?o.p(k,I):(o=g[s]=d[s](k),o.c()),m(o,1),o.m(l,null));const L={};I&258&&(L.$$scope={dirty:I,ctx:k}),u.$set(L);const M={};I&256&&(M.$$scope={dirty:I,ctx:k}),c.$set(M)},i(k){p||(m(n.$$.fragment,k),m(o),m(u.$$.fragment,k),m(c.$$.fragment,k),p=!0)},o(k){_(n.$$.fragment,k),_(o),_(u.$$.fragment,k),_(c.$$.fragment,k),p=!1},d(k){k&&b(e),E(n),g[s].d(),r[6](null),E(u),r[7](null),E(c)}}}function U1e(r,e,t){let n,i;fe(r,Qt,p=>t(3,i=p));let{$$slots:l={},$$scope:s}=e,o,a;const u=()=>o.show();function f(p){K[p?"unshift":"push"](()=>{o=p,t(0,o)})}function c(p){K[p?"unshift":"push"](()=>{a=p,t(1,a)})}return r.$$set=p=>{"$$scope"in p&&t(8,s=p.$$scope)},r.$$.update=()=>{r.$$.dirty&8&&t(2,n=i.automations[0])},[o,a,n,i,l,u,f,c,s]}class F1e extends se{constructor(e){super();oe(this,e,U1e,q1e,ie,{})}}function V1e(r){let e,t,n,i,l,s,o;function a(f){r[4](f)}let u={};return r[2]!==void 0&&(u.value=r[2]),l=new nt({props:u}),K.push(()=>de(l,"value",a)),{c(){e=j("span"),e.textContent=`The changes you have made will be deleted and the application reverted
1249
- back to its production state.`,t=R(),n=j("span"),n.textContent="Please enter your app name to continue.",i=R(),S(l.$$.fragment)},m(f,c){$(f,e,c),$(f,t,c),$(f,n,c),$(f,i,c),A(l,f,c),o=!0},p(f,c){const p={};!s&&c&4&&(s=!0,p.value=f[2],me(()=>s=!1)),l.$set(p)},i(f){o||(m(l.$$.fragment,f),o=!0)},o(f){_(l.$$.fragment,f),o=!1},d(f){f&&b(e),f&&b(t),f&&b(n),f&&b(i),E(l,f)}}}function H1e(r){let e,t;return e=new Nt({props:{title:"Revert Changes",confirmText:"Revert",onConfirm:r[3],disabled:r[2]!==r[0].name,$$slots:{default:[V1e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&5&&(l.disabled=n[2]!==n[0].name),i&132&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function W1e(r){let e,t,n,i;e=new ut({props:{name:"Revert",hoverable:!0}}),e.$on("click",function(){ft(r[1].show)&&r[1].show.apply(this,arguments)});let l={$$slots:{default:[H1e]},$$scope:{ctx:r}};return n=new kt({props:l}),r[5](n),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(s,o){A(e,s,o),$(s,t,o),A(n,s,o),i=!0},p(s,[o]){r=s;const a={};o&133&&(a.$$scope={dirty:o,ctx:r}),n.$set(a)},i(s){i||(m(e.$$.fragment,s),m(n.$$.fragment,s),i=!0)},o(s){_(e.$$.fragment,s),_(n.$$.fragment,s),i=!1},d(s){E(e,s),s&&b(t),r[5](null),E(n,s)}}}function G1e(r,e,t){let n,i;fe(r,Ge,f=>t(0,i=f));let l,s;const o=async()=>{try{await Ze.revertAppChanges(n);const f=await Ze.fetchAppPackage(n);await Ge.actions.initialise(f),we.info("Changes reverted successfully")}catch(f){we.error(`Error reverting changes: ${f}`)}};function a(f){s=f,t(2,s)}function u(f){K[f?"unshift":"push"](()=>{l=f,t(1,l)})}return r.$$.update=()=>{r.$$.dirty&1&&(n=i.appId)},[i,l,s,o,a,u]}class Y1e extends se{constructor(e){super();oe(this,e,G1e,W1e,ie,{})}}const J1e="@budibase/client",Q1e="1.0.144",X1e="MPL-2.0",K1e="dist/budibase-client.js",Z1e="dist/budibase-client.js",x1e="module",eme="src/index.js",tme={".":{import:"./dist/budibase-client.js",require:"./dist/budibase-client.js"},"./package.json":"./package.json","./manifest.json":"./manifest.json"},nme={build:"rollup -c","dev:builder":"rollup -cw"},rme={"@budibase/bbui":"^1.0.144","@budibase/frontend-core":"^1.0.144","@budibase/string-templates":"^1.0.144","@spectrum-css/button":"^3.0.3","@spectrum-css/card":"^3.0.3","@spectrum-css/divider":"^1.0.3","@spectrum-css/link":"^3.1.3","@spectrum-css/page":"^3.0.1","@spectrum-css/tag":"^3.1.4","@spectrum-css/typography":"^3.0.2","@spectrum-css/vars":"^3.0.1",apexcharts:"^3.22.1",dayjs:"^1.10.5",downloadjs:"1.4.7",leaflet:"^1.7.1",regexparam:"^1.3.0","rollup-plugin-polyfill-node":"^0.8.0","sanitize-html":"^2.7.0",screenfull:"^6.0.1",shortid:"^2.2.15",svelte:"^3.38.2","svelte-apexcharts":"^1.0.2","svelte-flatpickr":"^3.1.0","svelte-spa-router":"^3.0.5"},ime={"@rollup/plugin-alias":"^3.1.5","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1",postcss:"^8.2.10",rollup:"^2.44.0","rollup-plugin-json":"^4.0.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-svelte":"^7.1.0","rollup-plugin-svg":"^2.0.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.4"},lme="d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc";var H1={name:J1e,version:Q1e,license:X1e,module:K1e,main:Z1e,type:x1e,svelte:eme,exports:tme,scripts:nme,dependencies:rme,devDependencies:ime,gitHead:lme};function sme(r){let e,t;return e=new Ye({props:{size:"S",$$slots:{default:[ame]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&513&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function ome(r){let e,t;return e=new Ye({props:{size:"S",$$slots:{default:[ume]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&513&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function ame(r){let e,t,n=r[0].version+"",i,l;return{c(){e=F("This app is currently using version "),t=j("b"),i=F(n),l=F(` which is the
1249
+ back to its production state.`,t=R(),n=j("span"),n.textContent="Please enter your app name to continue.",i=R(),S(l.$$.fragment)},m(f,c){$(f,e,c),$(f,t,c),$(f,n,c),$(f,i,c),A(l,f,c),o=!0},p(f,c){const p={};!s&&c&4&&(s=!0,p.value=f[2],me(()=>s=!1)),l.$set(p)},i(f){o||(m(l.$$.fragment,f),o=!0)},o(f){_(l.$$.fragment,f),o=!1},d(f){f&&b(e),f&&b(t),f&&b(n),f&&b(i),E(l,f)}}}function H1e(r){let e,t;return e=new Nt({props:{title:"Revert Changes",confirmText:"Revert",onConfirm:r[3],disabled:r[2]!==r[0].name,$$slots:{default:[V1e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&5&&(l.disabled=n[2]!==n[0].name),i&132&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function W1e(r){let e,t,n,i;e=new ut({props:{name:"Revert",hoverable:!0}}),e.$on("click",function(){ft(r[1].show)&&r[1].show.apply(this,arguments)});let l={$$slots:{default:[H1e]},$$scope:{ctx:r}};return n=new kt({props:l}),r[5](n),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(s,o){A(e,s,o),$(s,t,o),A(n,s,o),i=!0},p(s,[o]){r=s;const a={};o&133&&(a.$$scope={dirty:o,ctx:r}),n.$set(a)},i(s){i||(m(e.$$.fragment,s),m(n.$$.fragment,s),i=!0)},o(s){_(e.$$.fragment,s),_(n.$$.fragment,s),i=!1},d(s){E(e,s),s&&b(t),r[5](null),E(n,s)}}}function G1e(r,e,t){let n,i;fe(r,Ge,f=>t(0,i=f));let l,s;const o=async()=>{try{await Ze.revertAppChanges(n);const f=await Ze.fetchAppPackage(n);await Ge.actions.initialise(f),we.info("Changes reverted successfully")}catch(f){we.error(`Error reverting changes: ${f}`)}};function a(f){s=f,t(2,s)}function u(f){K[f?"unshift":"push"](()=>{l=f,t(1,l)})}return r.$$.update=()=>{r.$$.dirty&1&&(n=i.appId)},[i,l,s,o,a,u]}class Y1e extends se{constructor(e){super();oe(this,e,G1e,W1e,ie,{})}}const J1e="@budibase/client",Q1e="1.0.147",X1e="MPL-2.0",K1e="dist/budibase-client.js",Z1e="dist/budibase-client.js",x1e="module",eme="src/index.js",tme={".":{import:"./dist/budibase-client.js",require:"./dist/budibase-client.js"},"./package.json":"./package.json","./manifest.json":"./manifest.json"},nme={build:"rollup -c","dev:builder":"rollup -cw"},rme={"@budibase/bbui":"^1.0.147","@budibase/frontend-core":"^1.0.147","@budibase/string-templates":"^1.0.147","@spectrum-css/button":"^3.0.3","@spectrum-css/card":"^3.0.3","@spectrum-css/divider":"^1.0.3","@spectrum-css/link":"^3.1.3","@spectrum-css/page":"^3.0.1","@spectrum-css/tag":"^3.1.4","@spectrum-css/typography":"^3.0.2","@spectrum-css/vars":"^3.0.1",apexcharts:"^3.22.1",dayjs:"^1.10.5",downloadjs:"1.4.7",leaflet:"^1.7.1",regexparam:"^1.3.0","rollup-plugin-polyfill-node":"^0.8.0","sanitize-html":"^2.7.0",screenfull:"^6.0.1",shortid:"^2.2.15",svelte:"^3.38.2","svelte-apexcharts":"^1.0.2","svelte-flatpickr":"^3.1.0","svelte-spa-router":"^3.0.5"},ime={"@rollup/plugin-alias":"^3.1.5","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1",postcss:"^8.2.10",rollup:"^2.44.0","rollup-plugin-json":"^4.0.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-svelte":"^7.1.0","rollup-plugin-svg":"^2.0.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.4"},lme="d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc";var H1={name:J1e,version:Q1e,license:X1e,module:K1e,main:Z1e,type:x1e,svelte:eme,exports:tme,scripts:nme,dependencies:rme,devDependencies:ime,gitHead:lme};function sme(r){let e,t;return e=new Ye({props:{size:"S",$$slots:{default:[ame]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&513&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function ome(r){let e,t;return e=new Ye({props:{size:"S",$$slots:{default:[ume]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&513&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function ame(r){let e,t,n=r[0].version+"",i,l;return{c(){e=F("This app is currently using version "),t=j("b"),i=F(n),l=F(` which is the
1250
1250
  latest version available.`)},m(s,o){$(s,e,o),$(s,t,o),N(t,i),$(s,l,o)},p(s,o){o&1&&n!==(n=s[0].version+"")&&Ee(i,n)},d(s){s&&b(e),s&&b(t),s&&b(l)}}}function ume(r){let e,t,n=r[0].version+"",i,l,s,o;return{c(){e=F("This app is currently using version "),t=j("b"),i=F(n),l=F(`, but version
1251
1251
  `),s=j("b"),s.textContent=`${H1.version}`,o=F(` is available. Updates can contain new features,
1252
1252
  performance improvements and bug fixes.`)},m(a,u){$(a,e,u),$(a,t,u),N(t,i),$(a,l,u),$(a,s,u),$(a,o,u)},p(a,u){u&1&&n!==(n=a[0].version+"")&&Ee(i,n)},d(a){a&&b(e),a&&b(t),a&&b(l),a&&b(s),a&&b(o)}}}function r7(r){let e,t;return e=new Ye({props:{size:"S",$$slots:{default:[fme]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&513&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function fme(r){let e,t,n=r[0].revertableVersion+"",i,l;return{c(){e=F(`You can revert this app to version
@@ -1290,7 +1290,7 @@ function print() { __p += __j.call(arguments, '') }
1290
1290
  if visited directly.`)},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function tbe(r){let e,t,n,i,l,s;return e=new gt({props:{size:"XS",$$slots:{default:[x$e]},$$scope:{ctx:r}}}),n=new Ye({props:{$$slots:{default:[ebe]},$$scope:{ctx:r}}}),l=new Bi({props:{schema:r[12],data:r[7],allowEditColumns:!1,allowEditRows:!1,allowSelectRows:!1}}),l.$on("click",r[20]),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment)},m(o,a){A(e,o,a),$(o,t,a),A(n,o,a),$(o,i,a),A(l,o,a),s=!0},p(o,a){const u={};a&536870912&&(u.$$scope={dirty:a,ctx:o}),e.$set(u);const f={};a&536870912&&(f.$$scope={dirty:a,ctx:o}),n.$set(f);const c={};a&128&&(c.data=o[7]),l.$set(c)},i(o){s||(m(e.$$.fragment,o),m(n.$$.fragment,o),m(l.$$.fragment,o),s=!0)},o(o){_(e.$$.fragment,o),_(n.$$.fragment,o),_(l.$$.fragment,o),s=!1},d(o){E(e,o),o&&b(t),E(n,o),o&&b(i),E(l,o)}}}function nbe(r){let e;return{c(){e=F("Delete user")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function rbe(r){let e;return{c(){e=F("Deleting a user completely removes them from your account.")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function ibe(r){let e,t,n,i;return e=new gt({props:{size:"S",$$slots:{default:[nbe]},$$scope:{ctx:r}}}),n=new Ye({props:{$$slots:{default:[rbe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(l,s){A(e,l,s),$(l,t,s),A(n,l,s),i=!0},p(l,s){const o={};s&536870912&&(o.$$scope={dirty:s,ctx:l}),e.$set(o);const a={};s&536870912&&(a.$$scope={dirty:s,ctx:l}),n.$set(a)},i(l){i||(m(e.$$.fragment,l),m(n.$$.fragment,l),i=!0)},o(l){_(e.$$.fragment,l),_(n.$$.fragment,l),i=!1},d(l){E(e,l),l&&b(t),E(n,l)}}}function lbe(r){let e;return{c(){e=F("Delete user")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function sbe(r){let e,t,n,i,l,s,o,a,u,f,c,p,d,g,h,v,y,k,I;return e=new Ve({props:{gap:"XS",noPadding:!0,$$slots:{default:[q$e]},$$scope:{ctx:r}}}),n=new nn({props:{size:"S"}}),l=new Ve({props:{gap:"S",noPadding:!0,$$slots:{default:[Q$e]},$$scope:{ctx:r}}}),o=new nn({props:{size:"S"}}),u=new Ve({props:{gap:"S",noPadding:!0,$$slots:{default:[Z$e]},$$scope:{ctx:r}}}),c=new Ve({props:{gap:"S",noPadding:!0,$$slots:{default:[tbe]},$$scope:{ctx:r}}}),d=new nn({props:{size:"S"}}),h=new Ve({props:{gap:"XS",noPadding:!0,$$slots:{default:[ibe]},$$scope:{ctx:r}}}),k=new ot({props:{warning:!0,$$slots:{default:[lbe]},$$scope:{ctx:r}}}),k.$on("click",function(){ft(r[2].show)&&r[2].show.apply(this,arguments)}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment),s=R(),S(o.$$.fragment),a=R(),S(u.$$.fragment),f=R(),S(c.$$.fragment),p=R(),S(d.$$.fragment),g=R(),S(h.$$.fragment),v=R(),y=j("div"),S(k.$$.fragment),w(y,"class","delete-button")},m(T,O){A(e,T,O),$(T,t,O),A(n,T,O),$(T,i,O),A(l,T,O),$(T,s,O),A(o,T,O),$(T,a,O),A(u,T,O),$(T,f,O),A(c,T,O),$(T,p,O),A(d,T,O),$(T,g,O),A(h,T,O),$(T,v,O),$(T,y,O),A(k,y,null),I=!0},p(T,O){r=T;const L={};O&536871426&&(L.$$scope={dirty:O,ctx:r}),e.$set(L);const M={};O&536872019&&(M.$$scope={dirty:O,ctx:r}),l.$set(M);const U={};O&536871168&&(U.$$scope={dirty:O,ctx:r}),u.$set(U);const D={};O&536871040&&(D.$$scope={dirty:O,ctx:r}),c.$set(D);const B={};O&536870912&&(B.$$scope={dirty:O,ctx:r}),h.$set(B);const V={};O&536870912&&(V.$$scope={dirty:O,ctx:r}),k.$set(V)},i(T){I||(m(e.$$.fragment,T),m(n.$$.fragment,T),m(l.$$.fragment,T),m(o.$$.fragment,T),m(u.$$.fragment,T),m(c.$$.fragment,T),m(d.$$.fragment,T),m(h.$$.fragment,T),m(k.$$.fragment,T),I=!0)},o(T){_(e.$$.fragment,T),_(n.$$.fragment,T),_(l.$$.fragment,T),_(o.$$.fragment,T),_(u.$$.fragment,T),_(c.$$.fragment,T),_(d.$$.fragment,T),_(h.$$.fragment,T),_(k.$$.fragment,T),I=!1},d(T){E(e,T),T&&b(t),E(n,T),T&&b(i),E(l,T),T&&b(s),E(o,T),T&&b(a),E(u,T),T&&b(f),E(c,T),T&&b(p),E(d,T),T&&b(g),E(h,T),T&&b(v),T&&b(y),E(k)}}}function obe(r){var l,s;let e,t,n=((s=(l=r[1])==null?void 0:l.data)==null?void 0:s.email)+"",i;return{c(){e=F("Are you sure you want to delete "),t=j("strong"),i=F(n)},m(o,a){$(o,e,a),$(o,t,a),N(t,i)},p(o,a){var u,f;a&2&&n!==(n=((f=(u=o[1])==null?void 0:u.data)==null?void 0:f.email)+"")&&Ee(i,n)},d(o){o&&b(e),o&&b(t)}}}function abe(r){let e,t;return e=new Ye({props:{$$slots:{default:[obe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&536870914&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function ube(r){let e,t;return e=new Nt({props:{warning:!0,onConfirm:r[15],title:"Delete User",confirmText:"Delete user",cancelText:"Cancel",showCloseIcon:!1,$$slots:{default:[abe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&536870914&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function fbe(r){let e,t;return e=new L$e({props:{app:r[5],user:r[1].data}}),e.$on("update",r[13].refresh),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&32&&(l.app=n[5]),i&2&&(l.user=n[1].data),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function cbe(r){let e,t;return e=new D$e({props:{user:r[1].data}}),e.$on("update",r[13].refresh),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&2&&(l.user=n[1].data),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function pbe(r){let e,t,n,i,l,s,o,a;e=new Ve({props:{noPadding:!0,$$slots:{default:[sbe]},$$scope:{ctx:r}}});let u={$$slots:{default:[ube]},$$scope:{ctx:r}};n=new kt({props:u}),r[25](n);let f={$$slots:{default:[fbe]},$$scope:{ctx:r}};l=new kt({props:f}),r[26](l);let c={$$slots:{default:[cbe]},$$scope:{ctx:r}};return o=new kt({props:c}),r[27](o),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment),s=R(),S(o.$$.fragment)},m(p,d){A(e,p,d),$(p,t,d),A(n,p,d),$(p,i,d),A(l,p,d),$(p,s,d),A(o,p,d),a=!0},p(p,[d]){const g={};d&536872919&&(g.$$scope={dirty:d,ctx:p}),e.$set(g);const h={};d&536870914&&(h.$$scope={dirty:d,ctx:p}),n.$set(h);const v={};d&536870946&&(v.$$scope={dirty:d,ctx:p}),l.$set(v);const y={};d&536870914&&(y.$$scope={dirty:d,ctx:p}),o.$set(y)},i(p){a||(m(e.$$.fragment,p),m(n.$$.fragment,p),m(l.$$.fragment,p),m(o.$$.fragment,p),a=!0)},o(p){_(e.$$.fragment,p),_(n.$$.fragment,p),_(l.$$.fragment,p),_(o.$$.fragment,p),a=!1},d(p){E(e,p),p&&b(t),r[25](null),E(n,p),p&&b(i),r[26](null),E(l,p),p&&b(s),r[27](null),E(o,p)}}}function dbe(r,e,t){let n,i,l,s,o,a,u,f;fe(r,Ut,W=>t(9,a=W)),fe(r,Ft,W=>t(10,f=W));let{userId:c}=e,p,d,g;const h={name:{displayName:"App"},role:{}},v={name:{displayName:"App"}};let y;const k=tv(`/api/global/users/${c}`);fe(r,k,W=>t(1,o=W));const I=tv("/api/global/roles");fe(r,I,W=>t(23,u=W));async function T(){var W;try{await yi.delete(c),we.success(`User ${(W=o==null?void 0:o.data)==null?void 0:W.email} deleted.`),a("./")}catch{we.error("Error deleting user")}}let O=!1;async function L(W){try{await yi.save(lt(ke({},o==null?void 0:o.data),{firstName:W.target.value})),await k.refresh()}catch{we.error("Error updating user")}}async function M(W){try{await yi.save(lt(ke({},o==null?void 0:o.data),{lastName:W.target.value})),await k.refresh()}catch{we.error("Error updating user")}}async function U(W,J){t(6,O=!0);try{await yi.save(lt(ke({},o==null?void 0:o.data),{[W]:{global:J}})),await k.refresh()}catch{we.error("Error updating user")}t(6,O=!1)}async function D({detail:W}){return U("builder",W)}async function B({detail:W}){return U("admin",W)}async function V({detail:W}){t(5,y=W),d.show()}const G=()=>a("./");function Q(W){K[W?"unshift":"push"](()=>{p=W,t(2,p)})}function H(W){K[W?"unshift":"push"](()=>{d=W,t(3,d)})}function q(W){K[W?"unshift":"push"](()=>{g=W,t(4,g)})}return r.$$set=W=>{"userId"in W&&t(0,c=W.userId)},r.$$.update=()=>{var W,J;r.$$.dirty&2&&t(22,n=((J=(W=o==null?void 0:o.data)==null?void 0:W.builder)==null?void 0:J.global)?"ADMIN":""),r.$$.dirty&12582914&&t(21,i=Object.keys(u==null?void 0:u.data).map(pe=>{var Z,$e,Ie,Te;const ne=(($e=(Z=o==null?void 0:o.data)==null?void 0:Z.roles)==null?void 0:$e[pe])||n,re=(Ie=u==null?void 0:u.data)==null?void 0:Ie[pe].roles.find(ce=>ce._id===ne);return lt(ke({},(Te=u==null?void 0:u.data)==null?void 0:Te[pe]),{_id:pe,role:[re]})})),r.$$.dirty&2097152&&t(8,l=i.filter(pe=>!!pe.role[0])),r.$$.dirty&2097152&&t(7,s=i.filter(pe=>!pe.role[0]).map(pe=>(delete pe.role,pe)))},[c,o,p,d,g,y,O,s,l,a,f,h,v,k,I,T,L,M,D,B,V,i,n,u,G,Q,H,q]}class mbe extends se{constructor(e){super();oe(this,e,dbe,pbe,ie,{userId:0})}}function gbe(r){let e;return{c(){e=F(`If you have SMTP configured and an email for the new user, you can use the
1291
1291
  automated email onboarding flow. Otherwise, use our basic onboarding process
1292
1292
  with autogenerated passwords.`)},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function _be(r){let e;return{c(){e=F("Development access")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function hbe(r){let e;return{c(){e=F("Administration access")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function $be(r){let e,t,n,i,l,s,o,a,u,f,c,p,d,g,h,v,y,k,I,T,O;e=new Ye({props:{size:"S",$$slots:{default:[gbe]},$$scope:{ctx:r}}});function L(H){r[12](H)}let M={placeholder:null,options:r[7],label:"Add new user via:"};r[1]!==void 0&&(M.value=r[1]),n=new Qe({props:M}),K.push(()=>de(n,"value",L)),n.$on("change",r[13]);function U(H){r[14](H)}let D={type:"email",error:r[6]&&r[5],placeholder:"john@doe.com",label:"Email"};r[4]!==void 0&&(D.value=r[4]),s=new nt({props:D}),K.push(()=>de(s,"value",U)),c=new Ke({props:{size:"L",$$slots:{default:[_be]},$$scope:{ctx:r}}});function B(H){r[15](H)}let V={text:""};r[2]!==void 0&&(V.value=r[2]),d=new Gn({props:V}),K.push(()=>de(d,"value",B)),y=new Ke({props:{size:"L",$$slots:{default:[hbe]},$$scope:{ctx:r}}});function G(H){r[16](H)}let Q={text:""};return r[3]!==void 0&&(Q.value=r[3]),I=new Gn({props:Q}),K.push(()=>de(I,"value",G)),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),l=R(),S(s.$$.fragment),a=R(),u=j("div"),f=j("div"),S(c.$$.fragment),p=R(),S(d.$$.fragment),h=R(),v=j("div"),S(y.$$.fragment),k=R(),S(I.$$.fragment),w(f,"class","toggle svelte-wbuk9c"),w(v,"class","toggle svelte-wbuk9c")},m(H,q){A(e,H,q),$(H,t,q),A(n,H,q),$(H,l,q),A(s,H,q),$(H,a,q),$(H,u,q),N(u,f),A(c,f,null),N(f,p),A(d,f,null),N(u,h),N(u,v),A(y,v,null),N(v,k),A(I,v,null),O=!0},p(H,q){const W={};q&131072&&(W.$$scope={dirty:q,ctx:H}),e.$set(W);const J={};!i&&q&2&&(i=!0,J.value=H[1],me(()=>i=!1)),n.$set(J);const pe={};q&96&&(pe.error=H[6]&&H[5]),!o&&q&16&&(o=!0,pe.value=H[4],me(()=>o=!1)),s.$set(pe);const ne={};q&131072&&(ne.$$scope={dirty:q,ctx:H}),c.$set(ne);const re={};!g&&q&4&&(g=!0,re.value=H[2],me(()=>g=!1)),d.$set(re);const Z={};q&131072&&(Z.$$scope={dirty:q,ctx:H}),y.$set(Z);const $e={};!T&&q&8&&(T=!0,$e.value=H[3],me(()=>T=!1)),I.$set($e)},i(H){O||(m(e.$$.fragment,H),m(n.$$.fragment,H),m(s.$$.fragment,H),m(c.$$.fragment,H),m(d.$$.fragment,H),m(y.$$.fragment,H),m(I.$$.fragment,H),O=!0)},o(H){_(e.$$.fragment,H),_(n.$$.fragment,H),_(s.$$.fragment,H),_(c.$$.fragment,H),_(d.$$.fragment,H),_(y.$$.fragment,H),_(I.$$.fragment,H),O=!1},d(H){E(e,H),H&&b(t),E(n,H),H&&b(l),E(s,H),H&&b(a),H&&b(u),E(c),E(d),E(y),E(I)}}}function bbe(r){let e,t;return e=new Nt({props:{onConfirm:r[11],size:"M",title:"Add new user",confirmText:"Add user",confirmDisabled:r[0],cancelText:"Cancel",disabled:r[5],showCloseIcon:!1,$$slots:{default:[$be]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,[i]){const l={};i&1&&(l.confirmDisabled=n[0]),i&32&&(l.disabled=n[5]),i&131198&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function vbe(r,e,t){let n,i,l,{disabled:s}=e;const o=["Email onboarding","Basic onboarding"];let a=o[0],u,f;const[c,p,d]=Kf("",G3);fe(r,c,T=>t(4,n=T)),fe(r,p,T=>t(5,i=T)),fe(r,d,T=>t(6,l=T));async function g(){try{const T=await yi.invite({email:n,builder:u,admin:f});we.success(T.message),Ln.captureEvent(Nn.USER.INVITE,{type:a})}catch{we.error("Error inviting user")}}function h(T){a=T,t(1,a)}function v(T){pt.call(this,r,T)}function y(T){n=T,c.set(n)}function k(T){u=T,t(2,u)}function I(T){f=T,t(3,f)}return r.$$set=T=>{"disabled"in T&&t(0,s=T.disabled)},[s,a,u,f,n,i,l,o,c,p,d,g,h,v,y,k,I]}class wbe extends se{constructor(e){super();oe(this,e,vbe,bbe,ie,{disabled:0})}}function ybe(r){let e;return{c(){e=F(`Below you will find the user\u2019s username and password. The password will not
1293
- be accessible from this point. Please save the credentials.`)},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function kbe(r){let e;return{c(){e=F("Development access")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Cbe(r){let e;return{c(){e=F("Administration access")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Sbe(r){let e,t,n,i,l,s,o,a,u,f,c,p,d,g,h,v,y,k,I,T;e=new Ye({props:{size:"S",$$slots:{default:[ybe]},$$scope:{ctx:r}}});function O(V){r[10](V)}let L={type:"email",label:"Username",error:r[4]&&r[3]};r[2]!==void 0&&(L.value=r[2]),n=new nt({props:L}),K.push(()=>de(n,"value",O)),s=new nt({props:{disabled:!0,label:"Password",value:r[8]}}),f=new Ke({props:{size:"L",$$slots:{default:[kbe]},$$scope:{ctx:r}}});function M(V){r[11](V)}let U={text:""};r[0]!==void 0&&(U.value=r[0]),p=new Gn({props:U}),K.push(()=>de(p,"value",M)),v=new Ke({props:{size:"L",$$slots:{default:[Cbe]},$$scope:{ctx:r}}});function D(V){r[12](V)}let B={text:""};return r[1]!==void 0&&(B.value=r[1]),k=new Gn({props:B}),K.push(()=>de(k,"value",D)),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),l=R(),S(s.$$.fragment),o=R(),a=j("div"),u=j("div"),S(f.$$.fragment),c=R(),S(p.$$.fragment),g=R(),h=j("div"),S(v.$$.fragment),y=R(),S(k.$$.fragment),w(u,"class","toggle svelte-wbuk9c"),w(h,"class","toggle svelte-wbuk9c")},m(V,G){A(e,V,G),$(V,t,G),A(n,V,G),$(V,l,G),A(s,V,G),$(V,o,G),$(V,a,G),N(a,u),A(f,u,null),N(u,c),A(p,u,null),N(a,g),N(a,h),A(v,h,null),N(h,y),A(k,h,null),T=!0},p(V,G){const Q={};G&8192&&(Q.$$scope={dirty:G,ctx:V}),e.$set(Q);const H={};G&24&&(H.error=V[4]&&V[3]),!i&&G&4&&(i=!0,H.value=V[2],me(()=>i=!1)),n.$set(H);const q={};G&8192&&(q.$$scope={dirty:G,ctx:V}),f.$set(q);const W={};!d&&G&1&&(d=!0,W.value=V[0],me(()=>d=!1)),p.$set(W);const J={};G&8192&&(J.$$scope={dirty:G,ctx:V}),v.$set(J);const pe={};!I&&G&2&&(I=!0,pe.value=V[1],me(()=>I=!1)),k.$set(pe)},i(V){T||(m(e.$$.fragment,V),m(n.$$.fragment,V),m(s.$$.fragment,V),m(f.$$.fragment,V),m(p.$$.fragment,V),m(v.$$.fragment,V),m(k.$$.fragment,V),T=!0)},o(V){_(e.$$.fragment,V),_(n.$$.fragment,V),_(s.$$.fragment,V),_(f.$$.fragment,V),_(p.$$.fragment,V),_(v.$$.fragment,V),_(k.$$.fragment,V),T=!1},d(V){E(e,V),V&&b(t),E(n,V),V&&b(l),E(s,V),V&&b(o),V&&b(a),E(f),E(p),E(v),E(k)}}}function Abe(r){let e,t;return e=new Nt({props:{onConfirm:r[9],size:"M",title:"Basic user onboarding",confirmText:"Continue",cancelText:"Cancel",disabled:r[3],error:r[4]&&r[3],showCloseIcon:!1,$$slots:{default:[Sbe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,[i]){const l={};i&8&&(l.disabled=n[3]),i&24&&(l.error=n[4]&&n[3]),i&8223&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function Ebe(r,e,t){let n,i,l;const[s,o,a]=Kf("",G3);fe(r,s,v=>t(2,n=v)),fe(r,o,v=>t(3,i=v)),fe(r,a,v=>t(4,l=v));const u=Math.random().toString(36).slice(2,20);let f=!1,c=!1;async function p(){try{await yi.create({email:n,password:u,builder:f,admin:c,forceResetPassword:!0}),we.success("Successfully created user")}catch(v){we.error(v.message)}}function d(v){n=v,s.set(n)}function g(v){f=v,t(0,f)}function h(v){c=v,t(1,c)}return[f,c,n,i,l,s,o,a,u,p,d,g,h]}class Obe extends se{constructor(e){super();oe(this,e,Ebe,Abe,ie,{})}}function Tbe(r){let e;return{c(){e=F("Users")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Ibe(r){let e;return{c(){e=F(`Each user is assigned to a group that contains apps and permissions. In
1293
+ be accessible from this point. Please save the credentials.`)},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function kbe(r){let e;return{c(){e=F("Development access")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Cbe(r){let e;return{c(){e=F("Administration access")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Sbe(r){let e,t,n,i,l,s,o,a,u,f,c,p,d,g,h,v,y,k,I,T;e=new Ye({props:{size:"S",$$slots:{default:[ybe]},$$scope:{ctx:r}}});function O(V){r[10](V)}let L={type:"email",label:"Email",error:r[4]&&r[3]};r[2]!==void 0&&(L.value=r[2]),n=new nt({props:L}),K.push(()=>de(n,"value",O)),s=new nt({props:{disabled:!0,label:"Password",value:r[8]}}),f=new Ke({props:{size:"L",$$slots:{default:[kbe]},$$scope:{ctx:r}}});function M(V){r[11](V)}let U={text:""};r[0]!==void 0&&(U.value=r[0]),p=new Gn({props:U}),K.push(()=>de(p,"value",M)),v=new Ke({props:{size:"L",$$slots:{default:[Cbe]},$$scope:{ctx:r}}});function D(V){r[12](V)}let B={text:""};return r[1]!==void 0&&(B.value=r[1]),k=new Gn({props:B}),K.push(()=>de(k,"value",D)),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),l=R(),S(s.$$.fragment),o=R(),a=j("div"),u=j("div"),S(f.$$.fragment),c=R(),S(p.$$.fragment),g=R(),h=j("div"),S(v.$$.fragment),y=R(),S(k.$$.fragment),w(u,"class","toggle svelte-wbuk9c"),w(h,"class","toggle svelte-wbuk9c")},m(V,G){A(e,V,G),$(V,t,G),A(n,V,G),$(V,l,G),A(s,V,G),$(V,o,G),$(V,a,G),N(a,u),A(f,u,null),N(u,c),A(p,u,null),N(a,g),N(a,h),A(v,h,null),N(h,y),A(k,h,null),T=!0},p(V,G){const Q={};G&8192&&(Q.$$scope={dirty:G,ctx:V}),e.$set(Q);const H={};G&24&&(H.error=V[4]&&V[3]),!i&&G&4&&(i=!0,H.value=V[2],me(()=>i=!1)),n.$set(H);const q={};G&8192&&(q.$$scope={dirty:G,ctx:V}),f.$set(q);const W={};!d&&G&1&&(d=!0,W.value=V[0],me(()=>d=!1)),p.$set(W);const J={};G&8192&&(J.$$scope={dirty:G,ctx:V}),v.$set(J);const pe={};!I&&G&2&&(I=!0,pe.value=V[1],me(()=>I=!1)),k.$set(pe)},i(V){T||(m(e.$$.fragment,V),m(n.$$.fragment,V),m(s.$$.fragment,V),m(f.$$.fragment,V),m(p.$$.fragment,V),m(v.$$.fragment,V),m(k.$$.fragment,V),T=!0)},o(V){_(e.$$.fragment,V),_(n.$$.fragment,V),_(s.$$.fragment,V),_(f.$$.fragment,V),_(p.$$.fragment,V),_(v.$$.fragment,V),_(k.$$.fragment,V),T=!1},d(V){E(e,V),V&&b(t),E(n,V),V&&b(l),E(s,V),V&&b(o),V&&b(a),E(f),E(p),E(v),E(k)}}}function Abe(r){let e,t;return e=new Nt({props:{onConfirm:r[9],size:"M",title:"Basic user onboarding",confirmText:"Continue",cancelText:"Cancel",disabled:r[3],error:r[4]&&r[3],showCloseIcon:!1,$$slots:{default:[Sbe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,[i]){const l={};i&8&&(l.disabled=n[3]),i&24&&(l.error=n[4]&&n[3]),i&8223&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function Ebe(r,e,t){let n,i,l;const[s,o,a]=Kf("",G3);fe(r,s,v=>t(2,n=v)),fe(r,o,v=>t(3,i=v)),fe(r,a,v=>t(4,l=v));const u=Math.random().toString(36).slice(2,20);let f=!1,c=!1;async function p(){try{await yi.create({email:n,password:u,builder:f,admin:c,forceResetPassword:!0}),we.success("Successfully created user")}catch(v){we.error(v.message)}}function d(v){n=v,s.set(n)}function g(v){f=v,t(0,f)}function h(v){c=v,t(1,c)}return[f,c,n,i,l,s,o,a,u,p,d,g,h]}class Obe extends se{constructor(e){super();oe(this,e,Ebe,Abe,ie,{})}}function Tbe(r){let e;return{c(){e=F("Users")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Ibe(r){let e;return{c(){e=F(`Each user is assigned to a group that contains apps and permissions. In
1294
1294
  this section, you can add users, or edit and delete an existing user.`)},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Lbe(r){let e,t,n,i;return e=new gt({props:{$$slots:{default:[Tbe]},$$scope:{ctx:r}}}),n=new Ye({props:{$$slots:{default:[Ibe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(l,s){A(e,l,s),$(l,t,s),A(n,l,s),i=!0},p(l,s){const o={};s&8192&&(o.$$scope={dirty:s,ctx:l}),e.$set(o);const a={};s&8192&&(a.$$scope={dirty:s,ctx:l}),n.$set(a)},i(l){i||(m(e.$$.fragment,l),m(n.$$.fragment,l),i=!0)},o(l){_(e.$$.fragment,l),_(n.$$.fragment,l),i=!1},d(l){E(e,l),l&&b(t),E(n,l)}}}function Pbe(r){let e;return{c(){e=F("Users")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Nbe(r){let e;return{c(){e=F("Import users")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Rbe(r){let e;return{c(){e=F("Add user")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Mbe(r){let e,t,n,i;return e=new ot({props:{disabled:!0,secondary:!0,$$slots:{default:[Nbe]},$$scope:{ctx:r}}}),n=new ot({props:{primary:!0,dataCy:"add-user",$$slots:{default:[Rbe]},$$scope:{ctx:r}}}),n.$on("click",function(){ft(r[2].show)&&r[2].show.apply(this,arguments)}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(l,s){A(e,l,s),$(l,t,s),A(n,l,s),i=!0},p(l,s){r=l;const o={};s&8192&&(o.$$scope={dirty:s,ctx:r}),e.$set(o);const a={};s&8192&&(a.$$scope={dirty:s,ctx:r}),n.$set(a)},i(l){i||(m(e.$$.fragment,l),m(n.$$.fragment,l),i=!0)},o(l){_(e.$$.fragment,l),_(n.$$.fragment,l),i=!1},d(l){E(e,l),l&&b(t),E(n,l)}}}function Dbe(r){let e;return{c(){e=F("Search / filter")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function jbe(r){let e,t,n,i,l,s,o,a,u,f,c,p,d;t=new gt({props:{size:"S",$$slots:{default:[Pbe]},$$scope:{ctx:r}}}),i=new Ih({props:{$$slots:{default:[Mbe]},$$scope:{ctx:r}}}),o=new Ke({props:{size:"L",$$slots:{default:[Dbe]},$$scope:{ctx:r}}});function g(v){r[9](v)}let h={placeholder:""};return r[0]!==void 0&&(h.value=r[0]),u=new Ff({props:h}),K.push(()=>de(u,"value",g)),p=new Bi({props:{schema:r[6],data:r[4]||r[1],allowEditColumns:!1,allowEditRows:!1,allowSelectRows:!1,customRenderers:[{column:"group",component:w9}]}}),p.$on("click",r[10]),{c(){e=j("div"),S(t.$$.fragment),n=R(),S(i.$$.fragment),l=R(),s=j("div"),S(o.$$.fragment),a=R(),S(u.$$.fragment),c=R(),S(p.$$.fragment),w(e,"class","users-heading svelte-o4fhum"),w(s,"class","field svelte-o4fhum")},m(v,y){$(v,e,y),A(t,e,null),N(e,n),A(i,e,null),$(v,l,y),$(v,s,y),A(o,s,null),N(s,a),A(u,s,null),$(v,c,y),A(p,v,y),d=!0},p(v,y){const k={};y&8192&&(k.$$scope={dirty:y,ctx:v}),t.$set(k);const I={};y&8196&&(I.$$scope={dirty:y,ctx:v}),i.$set(I);const T={};y&8192&&(T.$$scope={dirty:y,ctx:v}),o.$set(T);const O={};!f&&y&1&&(f=!0,O.value=v[0],me(()=>f=!1)),u.$set(O);const L={};y&18&&(L.data=v[4]||v[1]),p.$set(L)},i(v){d||(m(t.$$.fragment,v),m(i.$$.fragment,v),m(o.$$.fragment,v),m(u.$$.fragment,v),m(p.$$.fragment,v),d=!0)},o(v){_(t.$$.fragment,v),_(i.$$.fragment,v),_(o.$$.fragment,v),_(u.$$.fragment,v),_(p.$$.fragment,v),d=!1},d(v){v&&b(e),E(t),E(i),v&&b(l),v&&b(s),E(o),E(u),v&&b(c),E(p,v)}}}function Bbe(r){let e,t,n,i,l,s;return e=new Ve({props:{gap:"XS",noPadding:!0,$$slots:{default:[Lbe]},$$scope:{ctx:r}}}),n=new nn({props:{size:"S"}}),l=new Ve({props:{gap:"S",noPadding:!0,$$slots:{default:[jbe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment)},m(o,a){A(e,o,a),$(o,t,a),A(n,o,a),$(o,i,a),A(l,o,a),s=!0},p(o,a){const u={};a&8192&&(u.$$scope={dirty:a,ctx:o}),e.$set(u);const f={};a&8247&&(f.$$scope={dirty:a,ctx:o}),l.$set(f)},i(o){s||(m(e.$$.fragment,o),m(n.$$.fragment,o),m(l.$$.fragment,o),s=!0)},o(o){_(e.$$.fragment,o),_(n.$$.fragment,o),_(l.$$.fragment,o),s=!1},d(o){E(e,o),o&&b(t),E(n,o),o&&b(i),E(l,o)}}}function zbe(r){let e,t;return e=new wbe({}),e.$on("change",r[8]),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p:Se,i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function qbe(r){let e,t;return e=new Obe({props:{email:r[7]}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p:Se,i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function Ube(r){let e,t,n,i,l,s;e=new Ve({props:{noPadding:!0,$$slots:{default:[Bbe]},$$scope:{ctx:r}}});let o={$$slots:{default:[zbe]},$$scope:{ctx:r}};n=new kt({props:o}),r[11](n);let a={$$slots:{default:[qbe]},$$scope:{ctx:r}};return l=new kt({props:a}),r[12](l),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment)},m(u,f){A(e,u,f),$(u,t,f),A(n,u,f),$(u,i,f),A(l,u,f),s=!0},p(u,[f]){const c={};f&8247&&(c.$$scope={dirty:f,ctx:u}),e.$set(c);const p={};f&8192&&(p.$$scope={dirty:f,ctx:u}),n.$set(p);const d={};f&8192&&(d.$$scope={dirty:f,ctx:u}),l.$set(d)},i(u){s||(m(e.$$.fragment,u),m(n.$$.fragment,u),m(l.$$.fragment,u),s=!0)},o(u){_(e.$$.fragment,u),_(n.$$.fragment,u),_(l.$$.fragment,u),s=!1},d(u){E(e,u),u&&b(t),r[11](null),E(n,u),u&&b(i),r[12](null),E(l,u)}}}function Fbe(r,e,t){let n,i,l;fe(r,yi,v=>t(1,i=v)),fe(r,Ut,v=>t(5,l=v));const s={email:{},developmentAccess:{displayName:"Development Access",type:"boolean"},adminAccess:{displayName:"Admin Access",type:"boolean"},group:{}};let o,a,u,f;function c(){u.hide(),f.show()}qt(async()=>{try{await yi.init()}catch{we.error("Error getting user list")}});function p(v){o=v,t(0,o)}const d=({detail:v})=>l(`./${v._id}`);function g(v){K[v?"unshift":"push"](()=>{u=v,t(2,u)})}function h(v){K[v?"unshift":"push"](()=>{f=v,t(3,f)})}return r.$$.update=()=>{r.$$.dirty&3&&t(4,n=i.filter(v=>v.email.includes(o||"")).map(v=>{var y,k;return lt(ke({},v),{group:["All users"],developmentAccess:!!((y=v.builder)==null?void 0:y.global),adminAccess:!!((k=v.admin)==null?void 0:k.global)})}))},[o,i,u,f,n,l,s,a,c,p,d,g,h]}class Vbe extends se{constructor(e){super();oe(this,e,Fbe,Ube,ie,{})}}function C9(r){let e,t;return e=new Ks({props:{wide:r[1].path.includes("email/:template"),$$slots:{default:[Hbe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&2&&(l.wide=n[1].path.includes("email/:template")),i&16&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function Hbe(r){let e;const t=r[3].default,n=bt(t,r,r[4],null);return{c(){n&&n.c()},m(i,l){n&&n.m(i,l),e=!0},p(i,l){n&&n.p&&(!e||l&16)&&vt(n,t,i,i[4],e?yt(t,i[4],l,null):wt(i[4]),null)},i(i){e||(m(n,i),e=!0)},o(i){_(n,i),e=!1},d(i){n&&n.d(i)}}}function Wbe(r){let e,t,n=r[0].isAdmin&&C9(r);return{c(){n&&n.c(),e=Ae()},m(i,l){n&&n.m(i,l),$(i,e,l),t=!0},p(i,[l]){i[0].isAdmin?n?(n.p(i,l),l&1&&m(n,1)):(n=C9(i),n.c(),m(n,1),n.m(e.parentNode,e)):n&&(ee(),_(n,1,1,()=>{n=null}),te())},i(i){t||(m(n),t=!0)},o(i){_(n),t=!1},d(i){n&&n.d(i),i&&b(e)}}}function Gbe(r,e,t){let n,i,l;fe(r,Kr,a=>t(2,n=a)),fe(r,Ft,a=>t(0,i=a)),fe(r,tA,a=>t(1,l=a));let{$$slots:s={},$$scope:o}=e;return r.$$set=a=>{"$$scope"in a&&t(4,o=a.$$scope)},r.$$.update=()=>{r.$$.dirty&5&&(i.isAdmin||n("../"))},[i,l,n,s,o]}class Ybe extends se{constructor(e){super();oe(this,e,Gbe,Wbe,ie,{})}}function Jbe(r,e,t){let n;return fe(r,Ut,i=>t(0,n=i)),n("./organisation"),[]}class Qbe extends se{constructor(e){super();oe(this,e,Jbe,null,ie,{})}}function S9(r){let e,t;return e=new Ve({props:{noPadding:!0,$$slots:{default:[u3e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&4110&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function Xbe(r){let e;return{c(){e=F("Organisation")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Kbe(r){let e;return{c(){e=F(`Organisation settings is where you can edit your organisation name and
1295
1295
  logo. You can also configure your platform URL and enable or disable
1296
1296
  analytics.`)},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function Zbe(r){let e,t,n,i;return e=new gt({props:{size:"M",$$slots:{default:[Xbe]},$$scope:{ctx:r}}}),n=new Ye({props:{$$slots:{default:[Kbe]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(l,s){A(e,l,s),$(l,t,s),A(n,l,s),i=!0},p(l,s){const o={};s&4096&&(o.$$scope={dirty:s,ctx:l}),e.$set(o);const a={};s&4096&&(a.$$scope={dirty:s,ctx:l}),n.$set(a)},i(l){i||(m(e.$$.fragment,l),m(n.$$.fragment,l),i=!0)},o(l){_(e.$$.fragment,l),_(n.$$.fragment,l),i=!1},d(l){E(e,l),l&&b(t),E(n,l)}}}function xbe(r){let e;return{c(){e=F("Information")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function e3e(r){let e;return{c(){e=F("Here you can update your logo and organization name.")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function t3e(r){let e,t,n,i;return e=new gt({props:{size:"S",$$slots:{default:[xbe]},$$scope:{ctx:r}}}),n=new Ye({props:{size:"S",$$slots:{default:[e3e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(l,s){A(e,l,s),$(l,t,s),A(n,l,s),i=!0},p(l,s){const o={};s&4096&&(o.$$scope={dirty:s,ctx:l}),e.$set(o);const a={};s&4096&&(a.$$scope={dirty:s,ctx:l}),n.$set(a)},i(l){i||(m(e.$$.fragment,l),m(n.$$.fragment,l),i=!0)},o(l){_(e.$$.fragment,l),_(n.$$.fragment,l),i=!1},d(l){E(e,l),l&&b(t),E(n,l)}}}function n3e(r){let e;return{c(){e=F("Org. name")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function r3e(r){let e;return{c(){e=F("Logo")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function A9(r){let e,t,n,i,l,s,o,a,u,f,c;e=new nn({props:{size:"S"}}),n=new Ve({props:{gap:"XS",noPadding:!0,$$slots:{default:[s3e]},$$scope:{ctx:r}}}),o=new Ke({props:{size:"L",tooltip:"Update the Platform URL to match your Budibase web URL. This keeps email templates and authentication configs up to date.",$$slots:{default:[o3e]},$$scope:{ctx:r}}});function p(g){r[9](g)}let d={thin:!0};return r[2].platformUrl!==void 0&&(d.value=r[2].platformUrl),u=new nt({props:d}),K.push(()=>de(u,"value",p)),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),l=j("div"),s=j("div"),S(o.$$.fragment),a=R(),S(u.$$.fragment),w(s,"class","field svelte-1aiadff"),w(l,"class","fields svelte-1aiadff")},m(g,h){A(e,g,h),$(g,t,h),A(n,g,h),$(g,i,h),$(g,l,h),N(l,s),A(o,s,null),N(s,a),A(u,s,null),c=!0},p(g,h){const v={};h&4096&&(v.$$scope={dirty:h,ctx:g}),n.$set(v);const y={};h&4096&&(y.$$scope={dirty:h,ctx:g}),o.$set(y);const k={};!f&&h&4&&(f=!0,k.value=g[2].platformUrl,me(()=>f=!1)),u.$set(k)},i(g){c||(m(e.$$.fragment,g),m(n.$$.fragment,g),m(o.$$.fragment,g),m(u.$$.fragment,g),c=!0)},o(g){_(e.$$.fragment,g),_(n.$$.fragment,g),_(o.$$.fragment,g),_(u.$$.fragment,g),c=!1},d(g){E(e,g),g&&b(t),E(n,g),g&&b(i),g&&b(l),E(o),E(u)}}}function i3e(r){let e;return{c(){e=F("Platform")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function l3e(r){let e;return{c(){e=F("Here you can set up general platform settings.")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function s3e(r){let e,t,n,i;return e=new gt({props:{size:"S",$$slots:{default:[i3e]},$$scope:{ctx:r}}}),n=new Ye({props:{size:"S",$$slots:{default:[l3e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(l,s){A(e,l,s),$(l,t,s),A(n,l,s),i=!0},p(l,s){const o={};s&4096&&(o.$$scope={dirty:s,ctx:l}),e.$set(o);const a={};s&4096&&(a.$$scope={dirty:s,ctx:l}),n.$set(a)},i(l){i||(m(e.$$.fragment,l),m(n.$$.fragment,l),i=!0)},o(l){_(e.$$.fragment,l),_(n.$$.fragment,l),i=!1},d(l){E(e,l),l&&b(t),E(n,l)}}}function o3e(r){let e;return{c(){e=F("Platform URL")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function a3e(r){let e;return{c(){e=F("Save")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function u3e(r){let e,t,n,i,l,s,o,a,u,f,c,p,d,g,h,v,y,k,I,T,O,L,M;e=new Ve({props:{gap:"XS",noPadding:!0,$$slots:{default:[Zbe]},$$scope:{ctx:r}}}),n=new nn({props:{size:"S"}}),l=new Ve({props:{gap:"XS",noPadding:!0,$$slots:{default:[t3e]},$$scope:{ctx:r}}}),u=new Ke({props:{size:"L",$$slots:{default:[n3e]},$$scope:{ctx:r}}});function U(V){r[7](V)}let D={thin:!0};r[2].company!==void 0&&(D.value=r[2].company),c=new nt({props:D}),K.push(()=>de(c,"value",U)),h=new Ke({props:{size:"L",$$slots:{default:[r3e]},$$scope:{ctx:r}}}),k=new Xo({props:{value:[r[2].logo]}}),k.$on("change",r[8]);let B=!r[3].cloud&&A9(r);return L=new ot({props:{disabled:r[1],cta:!0,$$slots:{default:[a3e]},$$scope:{ctx:r}}}),L.$on("click",r[5]),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),S(l.$$.fragment),s=R(),o=j("div"),a=j("div"),S(u.$$.fragment),f=R(),S(c.$$.fragment),d=R(),g=j("div"),S(h.$$.fragment),v=R(),y=j("div"),S(k.$$.fragment),I=R(),B&&B.c(),T=R(),O=j("div"),S(L.$$.fragment),w(a,"class","field svelte-1aiadff"),w(y,"class","file svelte-1aiadff"),w(g,"class","field logo svelte-1aiadff"),w(o,"class","fields svelte-1aiadff")},m(V,G){A(e,V,G),$(V,t,G),A(n,V,G),$(V,i,G),A(l,V,G),$(V,s,G),$(V,o,G),N(o,a),A(u,a,null),N(a,f),A(c,a,null),N(o,d),N(o,g),A(h,g,null),N(g,v),N(g,y),A(k,y,null),$(V,I,G),B&&B.m(V,G),$(V,T,G),$(V,O,G),A(L,O,null),M=!0},p(V,G){const Q={};G&4096&&(Q.$$scope={dirty:G,ctx:V}),e.$set(Q);const H={};G&4096&&(H.$$scope={dirty:G,ctx:V}),l.$set(H);const q={};G&4096&&(q.$$scope={dirty:G,ctx:V}),u.$set(q);const W={};!p&&G&4&&(p=!0,W.value=V[2].company,me(()=>p=!1)),c.$set(W);const J={};G&4096&&(J.$$scope={dirty:G,ctx:V}),h.$set(J);const pe={};G&4&&(pe.value=[V[2].logo]),k.$set(pe),V[3].cloud?B&&(ee(),_(B,1,1,()=>{B=null}),te()):B?(B.p(V,G),G&8&&m(B,1)):(B=A9(V),B.c(),m(B,1),B.m(T.parentNode,T));const ne={};G&2&&(ne.disabled=V[1]),G&4096&&(ne.$$scope={dirty:G,ctx:V}),L.$set(ne)},i(V){M||(m(e.$$.fragment,V),m(n.$$.fragment,V),m(l.$$.fragment,V),m(u.$$.fragment,V),m(c.$$.fragment,V),m(h.$$.fragment,V),m(k.$$.fragment,V),m(B),m(L.$$.fragment,V),M=!0)},o(V){_(e.$$.fragment,V),_(n.$$.fragment,V),_(l.$$.fragment,V),_(u.$$.fragment,V),_(c.$$.fragment,V),_(h.$$.fragment,V),_(k.$$.fragment,V),_(B),_(L.$$.fragment,V),M=!1},d(V){E(e,V),V&&b(t),E(n,V),V&&b(i),E(l,V),V&&b(s),V&&b(o),E(u),E(c),E(h),E(k),V&&b(I),B&&B.d(V),V&&b(T),V&&b(O),E(L)}}}function f3e(r){let e,t,n=r[0].isAdmin&&S9(r);return{c(){n&&n.c(),e=Ae()},m(i,l){n&&n.m(i,l),$(i,e,l),t=!0},p(i,[l]){i[0].isAdmin?n?(n.p(i,l),l&1&&m(n,1)):(n=S9(i),n.c(),m(n,1),n.m(e.parentNode,e)):n&&(ee(),_(n,1,1,()=>{n=null}),te())},i(i){t||(m(n),t=!0)},o(i){_(n),t=!1},d(i){n&&n.d(i),i&&b(e)}}}function c3e(r,e,t){let n,i,l,s,o;fe(r,hr,h=>t(10,i=h)),fe(r,Kr,h=>t(6,l=h)),fe(r,Ft,h=>t(0,s=h)),fe(r,Cn,h=>t(3,o=h));const a=mn({company:i.company,platformUrl:i.platformUrl,logo:i.logoUrl?{url:i.logoUrl,type:"image",name:"Logo"}:null});fe(r,a,h=>t(2,n=h));let u=!1;async function f(h){try{let v=new FormData;v.append("file",h),await Ze.uploadLogo(v)}catch{we.error("Error uploading logo")}}async function c(){var h,v;t(1,u=!0);try{n.logo&&!n.logo.url&&(await f(n.logo),await hr.init());const y={company:(h=n.company)!=null?h:"",platformUrl:(v=n.platformUrl)!=null?v:""};n.logo||(y.logoUrl=""),await hr.save(y)}catch{we.error("Error saving org config")}t(1,u=!1)}function p(h){r.$$.not_equal(n.company,h)&&(n.company=h,a.set(n))}const d=h=>{!h.detail||h.detail.length===0?Mn(a,n.logo=null,n):Mn(a,n.logo=h.detail[0],n)};function g(h){r.$$.not_equal(n.platformUrl,h)&&(n.platformUrl=h,a.set(n))}return r.$$.update=()=>{r.$$.dirty&65&&(s.isAdmin||l("../../portal"))},[s,u,n,o,a,c,l,p,d,g]}class p3e extends se{constructor(e){super();oe(this,e,c3e,f3e,ie,{})}}function d3e(r){let e;return{c(){e=F("Theming")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function m3e(r){let e;return{c(){e=F("Customize how Budibase looks and feels.")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function g3e(r){let e,t,n,i;return e=new gt({props:{size:"M",$$slots:{default:[d3e]},$$scope:{ctx:r}}}),n=new Ye({props:{$$slots:{default:[m3e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment)},m(l,s){A(e,l,s),$(l,t,s),A(n,l,s),i=!0},p(l,s){const o={};s&4&&(o.$$scope={dirty:s,ctx:l}),e.$set(o);const a={};s&4&&(a.$$scope={dirty:s,ctx:l}),n.$set(a)},i(l){i||(m(e.$$.fragment,l),m(n.$$.fragment,l),i=!0)},o(l){_(e.$$.fragment,l),_(n.$$.fragment,l),i=!1},d(l){E(e,l),l&&b(t),E(n,l)}}}function _3e(r){let e;return{c(){e=F("Builder theme")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function h3e(r){let e,t,n,i,l,s,o,a,u,f,c;e=new Ve({props:{gap:"XS",noPadding:!0,$$slots:{default:[g3e]},$$scope:{ctx:r}}}),n=new nn({props:{size:"S"}}),o=new Ke({props:{size:"L",$$slots:{default:[_3e]},$$scope:{ctx:r}}});function p(g){r[1](g)}let d={options:r[0].options,placeholder:null,getOptionLabel:Cr};return r[0].theme!==void 0&&(d.value=r[0].theme),u=new Qe({props:d}),K.push(()=>de(u,"value",p)),{c(){S(e.$$.fragment),t=R(),S(n.$$.fragment),i=R(),l=j("div"),s=j("div"),S(o.$$.fragment),a=R(),S(u.$$.fragment),w(s,"class","field svelte-1m1ewvx"),w(l,"class","fields svelte-1m1ewvx")},m(g,h){A(e,g,h),$(g,t,h),A(n,g,h),$(g,i,h),$(g,l,h),N(l,s),A(o,s,null),N(s,a),A(u,s,null),c=!0},p(g,h){const v={};h&4&&(v.$$scope={dirty:h,ctx:g}),e.$set(v);const y={};h&4&&(y.$$scope={dirty:h,ctx:g}),o.$set(y);const k={};h&1&&(k.options=g[0].options),!f&&h&1&&(f=!0,k.value=g[0].theme,me(()=>f=!1)),u.$set(k)},i(g){c||(m(e.$$.fragment,g),m(n.$$.fragment,g),m(o.$$.fragment,g),m(u.$$.fragment,g),c=!0)},o(g){_(e.$$.fragment,g),_(n.$$.fragment,g),_(o.$$.fragment,g),_(u.$$.fragment,g),c=!1},d(g){E(e,g),g&&b(t),E(n,g),g&&b(i),g&&b(l),E(o),E(u)}}}function $3e(r){let e,t;return e=new Ve({props:{noPadding:!0,$$slots:{default:[h3e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,[i]){const l={};i&5&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function b3e(r,e,t){let n;fe(r,Yf,l=>t(0,n=l));function i(l){r.$$.not_equal(n.theme,l)&&(n.theme=l,Yf.set(n))}return[n,i]}class v3e extends se{constructor(e){super();oe(this,e,b3e,$3e,ie,{})}}function E9(r){let e,t;return e=new Ve({props:{noPadding:!0,$$slots:{default:[E3e]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(n,i){A(e,n,i),t=!0},p(n,i){const l={};i&66&&(l.$$scope={dirty:i,ctx:n}),e.$set(l)},i(n){t||(m(e.$$.fragment,n),t=!0)},o(n){_(e.$$.fragment,n),t=!1},d(n){E(e,n)}}}function w3e(r){let e;return{c(){e=F("Updates")},m(t,n){$(t,e,n)},d(t){t&&b(e)}}}function y3e(r){let e;return{c(){e=F(`Keep your budibase installation up to date to take advantage of the
@@ -10,7 +10,7 @@
10
10
  href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
11
11
  rel="stylesheet"
12
12
  />
13
- <script type="module" crossorigin src="/builder/assets/index.6b7d3283.js"></script>
13
+ <script type="module" crossorigin src="/builder/assets/index.63d4b14b.js"></script>
14
14
  <link rel="modulepreload" href="/builder/assets/vendor.5240f480.js">
15
15
  <link rel="stylesheet" href="/builder/assets/vendor.5e1fe644.css">
16
16
  <link rel="stylesheet" href="/builder/assets/index.bb5e3dfd.css">
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1651794520553" clover="3.2.0">
3
- <project timestamp="1651794520554" name="All files">
4
- <metrics statements="4137" coveredstatements="2978" conditionals="1697" coveredconditionals="874" methods="611" coveredmethods="429" elements="6445" coveredelements="4281" complexity="0" loc="4137" ncloc="4137" packages="23" files="131" classes="131"/>
2
+ <coverage generated="1652102595322" clover="3.2.0">
3
+ <project timestamp="1652102595322" name="All files">
4
+ <metrics statements="4130" coveredstatements="2972" conditionals="1694" coveredconditionals="873" methods="609" coveredmethods="427" elements="6433" coveredelements="4272" complexity="0" loc="4130" ncloc="4130" packages="23" files="131" classes="131"/>
5
5
  <package name="api">
6
6
  <metrics statements="33" coveredstatements="31" conditionals="5" coveredconditionals="2" methods="4" coveredmethods="4"/>
7
7
  <file name="index.js" path="/home/runner/work/budibase/budibase/packages/server/src/api/index.js">
@@ -2950,7 +2950,7 @@
2950
2950
  </file>
2951
2951
  </package>
2952
2952
  <package name="db">
2953
- <metrics statements="147" coveredstatements="118" conditionals="61" coveredconditionals="20" methods="38" coveredmethods="29"/>
2953
+ <metrics statements="140" coveredstatements="112" conditionals="58" coveredconditionals="19" methods="36" coveredmethods="27"/>
2954
2954
  <file name="inMemoryView.js" path="/home/runner/work/budibase/budibase/packages/server/src/db/inMemoryView.js">
2955
2955
  <metrics statements="23" coveredstatements="4" conditionals="8" coveredconditionals="0" methods="4" coveredmethods="0"/>
2956
2956
  <line num="1" count="41" type="stmt"/>
@@ -2992,22 +2992,20 @@
2992
2992
  <metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
2993
2993
  <line num="1" count="54" type="stmt"/>
2994
2994
  <line num="3" count="54" type="stmt"/>
2995
- <line num="4" count="996" type="stmt"/>
2995
+ <line num="4" count="797" type="stmt"/>
2996
2996
  </file>
2997
2997
  <file name="utils.js" path="/home/runner/work/budibase/budibase/packages/server/src/db/utils.js">
2998
- <metrics statements="113" coveredstatements="103" conditionals="51" coveredconditionals="19" methods="32" coveredmethods="27"/>
2998
+ <metrics statements="106" coveredstatements="97" conditionals="48" coveredconditionals="18" methods="30" coveredmethods="25"/>
2999
2999
  <line num="1" count="54" type="stmt"/>
3000
- <line num="12" count="54" type="stmt"/>
3001
3000
  <line num="14" count="54" type="stmt"/>
3002
3001
  <line num="16" count="54" type="stmt"/>
3003
- <line num="22" count="54" type="stmt"/>
3004
- <line num="46" count="54" type="stmt"/>
3005
- <line num="51" count="54" type="stmt"/>
3006
- <line num="55" count="54" type="stmt"/>
3007
- <line num="59" count="54" type="stmt"/>
3002
+ <line num="18" count="54" type="stmt"/>
3003
+ <line num="24" count="54" type="stmt"/>
3004
+ <line num="48" count="54" type="stmt"/>
3005
+ <line num="53" count="54" type="stmt"/>
3006
+ <line num="57" count="54" type="stmt"/>
3008
3007
  <line num="61" count="54" type="stmt"/>
3009
- <line num="69" count="54" type="stmt"/>
3010
- <line num="70" count="54" type="stmt"/>
3008
+ <line num="63" count="54" type="stmt"/>
3011
3009
  <line num="71" count="54" type="stmt"/>
3012
3010
  <line num="72" count="54" type="stmt"/>
3013
3011
  <line num="73" count="54" type="stmt"/>
@@ -3020,95 +3018,90 @@
3020
3018
  <line num="80" count="54" type="stmt"/>
3021
3019
  <line num="81" count="54" type="stmt"/>
3022
3020
  <line num="82" count="54" type="stmt"/>
3021
+ <line num="83" count="54" type="stmt"/>
3023
3022
  <line num="84" count="54" type="stmt"/>
3024
3023
  <line num="85" count="54" type="stmt"/>
3025
- <line num="87" count="54" type="stmt"/>
3026
- <line num="88" count="74" type="stmt"/>
3027
- <line num="104" count="908" type="cond" truecount="2" falsecount="0"/>
3028
- <line num="105" count="893" type="stmt"/>
3029
- <line num="107" count="908" type="stmt"/>
3030
- <line num="114" count="54" type="stmt"/>
3031
- <line num="119" count="54" type="cond" truecount="0" falsecount="2"/>
3032
- <line num="120" count="220" type="stmt"/>
3033
- <line num="127" count="54" type="stmt"/>
3034
- <line num="128" count="105" type="stmt"/>
3035
- <line num="139" count="54" type="cond" truecount="0" falsecount="3"/>
3036
- <line num="140" count="27" type="cond" truecount="2" falsecount="0"/>
3037
- <line num="141" count="15" type="stmt"/>
3038
- <line num="144" count="12" type="cond" truecount="1" falsecount="1"/>
3039
- <line num="146" count="12" type="stmt"/>
3040
- <line num="154" count="54" type="stmt"/>
3041
- <line num="155" count="0" type="stmt"/>
3042
- <line num="158" count="0" type="stmt"/>
3043
- <line num="167" count="54" type="cond" truecount="1" falsecount="0"/>
3044
- <line num="168" count="264" type="cond" truecount="2" falsecount="0"/>
3045
- <line num="169" count="264" type="stmt"/>
3046
- <line num="175" count="54" type="cond" truecount="0" falsecount="2"/>
3047
- <line num="176" count="3" type="stmt"/>
3048
- <line num="184" count="54" type="stmt"/>
3049
- <line num="185" count="193" type="stmt"/>
3050
- <line num="191" count="54" type="stmt"/>
3051
- <line num="192" count="2" type="stmt"/>
3052
- <line num="193" count="2" type="cond" truecount="4" falsecount="0"/>
3053
- <line num="194" count="1" type="stmt"/>
3054
- <line num="196" count="1" type="stmt"/>
3055
- <line num="202" count="54" type="cond" truecount="0" falsecount="2"/>
3056
- <line num="203" count="225" type="stmt"/>
3057
- <line num="210" count="54" type="stmt"/>
3058
- <line num="211" count="20" type="stmt"/>
3059
- <line num="225" count="54" type="stmt"/>
3060
- <line num="233" count="9" type="stmt"/>
3061
- <line num="234" count="9" type="stmt"/>
3062
- <line num="235" count="9" type="stmt"/>
3063
- <line num="236" count="9" type="stmt"/>
3064
- <line num="242" count="54" type="cond" truecount="0" falsecount="1"/>
3065
- <line num="243" count="0" type="stmt"/>
3066
- <line num="250" count="54" type="cond" truecount="0" falsecount="1"/>
3067
- <line num="251" count="199" type="stmt"/>
3068
- <line num="252" count="199" type="cond" truecount="1" falsecount="1"/>
3069
- <line num="253" count="0" type="stmt"/>
3070
- <line num="255" count="199" type="stmt"/>
3071
- <line num="262" count="54" type="stmt"/>
3072
- <line num="263" count="199" type="stmt"/>
3073
- <line num="264" count="199" type="stmt"/>
3074
- <line num="265" count="199" type="stmt"/>
3075
- <line num="272" count="54" type="stmt"/>
3076
- <line num="273" count="5" type="cond" truecount="2" falsecount="0"/>
3077
- <line num="279" count="54" type="cond" truecount="0" falsecount="2"/>
3078
- <line num="280" count="212" type="stmt"/>
3079
- <line num="287" count="54" type="stmt"/>
3080
- <line num="288" count="19" type="stmt"/>
3081
- <line num="294" count="54" type="cond" truecount="0" falsecount="2"/>
3082
- <line num="295" count="214" type="stmt"/>
3083
- <line num="302" count="54" type="stmt"/>
3084
- <line num="303" count="10" type="stmt"/>
3085
- <line num="309" count="54" type="cond" truecount="0" falsecount="2"/>
3086
- <line num="310" count="2" type="stmt"/>
3087
- <line num="317" count="54" type="cond" truecount="1" falsecount="1"/>
3088
- <line num="318" count="39" type="stmt"/>
3089
- <line num="326" count="54" type="cond" truecount="0" falsecount="2"/>
3090
- <line num="327" count="4" type="stmt"/>
3091
- <line num="334" count="54" type="stmt"/>
3092
- <line num="335" count="131" type="stmt"/>
3093
- <line num="343" count="54" type="cond" truecount="0" falsecount="2"/>
3094
- <line num="344" count="4" type="cond" truecount="2" falsecount="0"/>
3095
- <line num="345" count="3" type="stmt"/>
3096
- <line num="348" count="1" type="stmt"/>
3097
- <line num="359" count="54" type="stmt"/>
3098
- <line num="360" count="0" type="stmt"/>
3099
- <line num="363" count="54" type="stmt"/>
3100
- <line num="364" count="10" type="stmt"/>
3101
- <line num="367" count="54" type="cond" truecount="0" falsecount="2"/>
3102
- <line num="368" count="0" type="stmt"/>
3103
- <line num="369" count="0" type="cond" truecount="0" falsecount="2"/>
3104
- <line num="370" count="0" type="stmt"/>
3105
- <line num="372" count="0" type="stmt"/>
3106
- <line num="375" count="54" type="stmt"/>
3107
- <line num="376" count="1" type="stmt"/>
3108
- <line num="379" count="54" type="cond" truecount="0" falsecount="1"/>
3109
- <line num="380" count="0" type="stmt"/>
3110
- <line num="386" count="54" type="stmt"/>
3111
- <line num="387" count="60" type="stmt"/>
3024
+ <line num="86" count="54" type="stmt"/>
3025
+ <line num="88" count="54" type="stmt"/>
3026
+ <line num="89" count="54" type="stmt"/>
3027
+ <line num="91" count="54" type="stmt"/>
3028
+ <line num="92" count="74" type="stmt"/>
3029
+ <line num="108" count="908" type="cond" truecount="2" falsecount="0"/>
3030
+ <line num="109" count="893" type="stmt"/>
3031
+ <line num="111" count="908" type="stmt"/>
3032
+ <line num="118" count="54" type="stmt"/>
3033
+ <line num="123" count="54" type="cond" truecount="0" falsecount="2"/>
3034
+ <line num="124" count="220" type="stmt"/>
3035
+ <line num="131" count="54" type="stmt"/>
3036
+ <line num="132" count="105" type="stmt"/>
3037
+ <line num="143" count="54" type="cond" truecount="0" falsecount="3"/>
3038
+ <line num="144" count="27" type="cond" truecount="2" falsecount="0"/>
3039
+ <line num="145" count="15" type="stmt"/>
3040
+ <line num="148" count="12" type="cond" truecount="1" falsecount="1"/>
3041
+ <line num="150" count="12" type="stmt"/>
3042
+ <line num="158" count="54" type="stmt"/>
3043
+ <line num="159" count="0" type="stmt"/>
3044
+ <line num="162" count="0" type="stmt"/>
3045
+ <line num="171" count="54" type="cond" truecount="1" falsecount="0"/>
3046
+ <line num="172" count="264" type="cond" truecount="2" falsecount="0"/>
3047
+ <line num="173" count="264" type="stmt"/>
3048
+ <line num="179" count="54" type="cond" truecount="0" falsecount="2"/>
3049
+ <line num="180" count="3" type="stmt"/>
3050
+ <line num="188" count="54" type="stmt"/>
3051
+ <line num="189" count="193" type="stmt"/>
3052
+ <line num="195" count="54" type="stmt"/>
3053
+ <line num="196" count="2" type="stmt"/>
3054
+ <line num="197" count="2" type="cond" truecount="4" falsecount="0"/>
3055
+ <line num="198" count="1" type="stmt"/>
3056
+ <line num="200" count="1" type="stmt"/>
3057
+ <line num="206" count="54" type="cond" truecount="0" falsecount="2"/>
3058
+ <line num="207" count="225" type="stmt"/>
3059
+ <line num="214" count="54" type="stmt"/>
3060
+ <line num="215" count="20" type="stmt"/>
3061
+ <line num="229" count="54" type="stmt"/>
3062
+ <line num="237" count="9" type="stmt"/>
3063
+ <line num="238" count="9" type="stmt"/>
3064
+ <line num="239" count="9" type="stmt"/>
3065
+ <line num="240" count="9" type="stmt"/>
3066
+ <line num="246" count="54" type="cond" truecount="0" falsecount="1"/>
3067
+ <line num="247" count="0" type="stmt"/>
3068
+ <line num="254" count="54" type="stmt"/>
3069
+ <line num="255" count="5" type="cond" truecount="2" falsecount="0"/>
3070
+ <line num="261" count="54" type="cond" truecount="0" falsecount="2"/>
3071
+ <line num="262" count="212" type="stmt"/>
3072
+ <line num="269" count="54" type="stmt"/>
3073
+ <line num="270" count="19" type="stmt"/>
3074
+ <line num="276" count="54" type="cond" truecount="0" falsecount="2"/>
3075
+ <line num="277" count="214" type="stmt"/>
3076
+ <line num="284" count="54" type="stmt"/>
3077
+ <line num="285" count="10" type="stmt"/>
3078
+ <line num="291" count="54" type="cond" truecount="0" falsecount="2"/>
3079
+ <line num="292" count="2" type="stmt"/>
3080
+ <line num="299" count="54" type="cond" truecount="1" falsecount="1"/>
3081
+ <line num="300" count="39" type="stmt"/>
3082
+ <line num="308" count="54" type="cond" truecount="0" falsecount="2"/>
3083
+ <line num="309" count="4" type="stmt"/>
3084
+ <line num="316" count="54" type="stmt"/>
3085
+ <line num="317" count="131" type="stmt"/>
3086
+ <line num="325" count="54" type="cond" truecount="0" falsecount="2"/>
3087
+ <line num="326" count="4" type="cond" truecount="2" falsecount="0"/>
3088
+ <line num="327" count="3" type="stmt"/>
3089
+ <line num="330" count="1" type="stmt"/>
3090
+ <line num="341" count="54" type="stmt"/>
3091
+ <line num="342" count="0" type="stmt"/>
3092
+ <line num="345" count="54" type="stmt"/>
3093
+ <line num="346" count="10" type="stmt"/>
3094
+ <line num="349" count="54" type="cond" truecount="0" falsecount="2"/>
3095
+ <line num="350" count="0" type="stmt"/>
3096
+ <line num="351" count="0" type="cond" truecount="0" falsecount="2"/>
3097
+ <line num="352" count="0" type="stmt"/>
3098
+ <line num="354" count="0" type="stmt"/>
3099
+ <line num="357" count="54" type="stmt"/>
3100
+ <line num="358" count="1" type="stmt"/>
3101
+ <line num="361" count="54" type="cond" truecount="0" falsecount="1"/>
3102
+ <line num="362" count="0" type="stmt"/>
3103
+ <line num="368" count="54" type="stmt"/>
3104
+ <line num="369" count="60" type="stmt"/>
3112
3105
  </file>
3113
3106
  </package>
3114
3107
  <package name="db.linkedRows">