{"context":{"domain":"les-app"},"layers":{"ApplicationLayer":{"reference":"ApplicationLayer","availableInstances":[{"reference":"ComponentsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"SystemsDataSet","params":{"filter":{"domain":"data2"},"pagination":{"size":1},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSource"}}}},{"reference":"ExternalComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"SystemsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5e3b796d6228227ca637d0f4","name":"data2","domain":"data2","organization":"62292184611f480b3191c37c","visibility":"public","updatedAt":"2026-07-27T14:19:36.810Z"}]}},{"reference":"OrganizationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"DataComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"OneFileComponentInstancesDataSet","params":{"pagination":{"size":1},"master":{"dataset":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSet"}},"localField":"system","masterField":"_id"},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"FileComponentInstancesDataSource"}}}},{"reference":"ApplicationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ServiceComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@Data2TableDataSource","reference":"FileComponentInstancesDataSource","params":{"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}}]}},{"component":"data2-core@MemoryDataSource","reference":"EmptyDataSource","params":{"initialData":[]}},{"reference":"ComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"UserComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"DataComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ServiceComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ExternalComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ApplicationsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}}],"processesParams":{}},"HostApplicationLayer":{"reference":"HostApplicationLayer","availableInstances":[{"_id":"5f15ff190528b92601890f71","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"SystemsTableDataSource"}},"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"domain"}}},"pk":"_id","fields":[{"component":"data2-core-types@FieldReference","params":{"key":"_id"}},{"component":"data2-core-types@FieldReference","params":{"key":"name"}},{"component":"data2-core-types@FieldReference","params":{"key":"domain"}},{"component":"data2-core-types@FieldReference","params":{"key":"visibility"}},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization._id"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.name"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.billingStatus"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.publicTrial.active"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"settings.defaultAccessPolicy"}}},"break":true}],"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"staticPagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"policies":[{"component":"data2-core-auth@Policy","params":{"allow":{"params":{"actions":[{"params":{"components":[{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"_id"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"domain"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"}]},"component":"data2-core-logical-operators@Or"}]},"component":"data2-core-flow@Series"}}}]},"reference":"SystemsDataSet","updatedAt":"2026-08-07T21:51:24.037Z","createdAt":"2020-07-20T20:31:21.838Z"},{"_id":"5f1601ce0528b92601890f7c","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":1000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"sort":{"params.package":1,"params.component":1},"pk":"_id","autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"staticFilter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"filter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}}},"reference":"ComponentsDataSet","updatedAt":"2025-11-05T19:37:01.935Z","createdAt":"2020-07-20T20:42:54.898Z"},{"_id":"5f9041dbc8da12be8b94aea4","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":2000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"UserComponentsDataSet","updatedAt":"2025-11-06T21:06:58.095Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"65d8c4fabc9dbb8f94de8d53","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ExternalComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ExternalComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:23.742Z","createdAt":"2024-02-23T16:17:01.816Z"},{"reference":"SystemsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6ac87c99e24c1a4680e68e1f","name":"app","domain":"les-app","visibility":"private","updatedAt":"2026-10-09T05:33:13.581Z","createdAt":"2026-10-09T05:33:13.581Z"}]}},{"reference":"ComponentsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5f52a278a575399a45d239b4","component":"data2-core-types@Component","params":{"package":"data2-core-primitives","component":"Router","interactions":{"component":"data2-core-types@FieldSet","params":{"fields":{"goBack":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.goBack","args":[]}}}},"icon":{"component":"data2-core-primitives@String","params":{"content":"arrow-left"}},"visibility":"public"}},"goTo":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"component":"data2-core-types@Reference","params":{"reference":"url"}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}}}]}},"parameters":[{"component":"data2-core-primitives@String","params":{"content":"url"}},{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}]},"break":true},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Path to route"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Path to redirect user"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Boolean"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Preserve Query"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Preserve query string parameters  preserve query parameters on navigating."}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"}]}},"open":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"pathname":{"component":"data2-core-types@Reference","params":{"reference":"value"}}}]}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}]}},"close":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":"close"}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"times"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}],"description":{"component":"data2-core-primitives@String","params":{"content":"Closes a window that was opened via router.open."}}}}}}}}},{"_id":"620d28658271aa4129919d89","component":"data2-core-types@Component","params":{"package":"data2-interface-services","component":"DeviceController","interactions":{"params":{"fields":{"postMessage":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@String","title":{"component":"data2-core-primitives@String","params":{"content":"data"}}}}]},"component":"data2-core-types@ComponentParameter"},"print":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"zoom":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Number"}},"title":{"component":"data2-core-primitives@String","params":{"content":"zoom"}},"visibility":"public"}}},"visibility":"public"},"component":"data2-core-types@ComponentParameter"}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"share":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}}},"component":"data2-core-types@ComponentParameter"},"clipboard.copy":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"clipboard.paste":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"download":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}]},"component":"data2-core-types@ComponentParameter"},"downloadUrl":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Url"}}}}]},"component":"data2-core-types@ComponentParameter"},"promptFiles":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"params":{"fields":{"multiple":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Multiple"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Whether or not to allow selecting multiple files"}},"component":"data2-core-primitives@Boolean"}},"acceptedFormats":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Accepted Formats"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Accepted file formats"}},"component":"data2-core-primitives@String","list":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},"timeout":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Timeout"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Max milliseconds to wait for file upload"}},"component":"data2-core-primitives@Number"}}}},"component":"data2-core-types@FieldSet"}}}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"meetingRecord":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","definition":{"params":{"actions":[{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"meeting"}},"script":{"component":"data2-core-primitives@String","params":{"content":"(function() {\n  let mediaRecorder;\n  let audioChunks = [];\n  let combinedStream;\n  let audioContext;\n  \n  window.meetingCapture = async function() {\n    try {\n      // Solicitar acesso ao áudio da guia (e vídeo, que será ignorado depois)\n      const tabStream = await navigator.mediaDevices.getDisplayMedia({ \n        video: true, // Necessário para alguns navegadores\n        audio: true\n      });\n      \n      // Remover a trilha de vídeo\n      const tabAudioTrack = tabStream.getAudioTracks()[0];\n      \n      // Solicitar acesso ao microfone\n      const micStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n      const micAudioTrack = micStream.getAudioTracks()[0];\n      \n      // Criar um novo MediaStream com ambas as trilhas de áudio\n      combinedStream = new MediaStream([tabAudioTrack, micAudioTrack]);\n      \n      // Criar um contexto de áudio para misturar os streams\n      audioContext = new AudioContext();\n      const destination = audioContext.createMediaStreamDestination();\n      \n      // Conectar a trilha de áudio da guia\n      const tabSource = audioContext.createMediaStreamSource(new MediaStream([tabAudioTrack]));\n      tabSource.connect(destination);\n      \n      // Conectar a trilha de áudio do microfone\n      const micSource = audioContext.createMediaStreamSource(new MediaStream([micAudioTrack]));\n      micSource.connect(destination);\n      \n      // Iniciar gravação com o stream misturado\n      mediaRecorder = new MediaRecorder(destination.stream);\n      audioChunks = [];\n      mediaRecorder.ondataavailable = (e) => audioChunks.push(e.data);\n      mediaRecorder.start();\n      \n      console.log('Gravação iniciada. Chame meetingCaptureStop() para finalizar.');\n    } catch (error) {\n      console.error('Erro ao iniciar a captura:', error);\n    }\n  };\n  \n  window.meetingCaptureStop = function() {\n    return new Promise((resolve, reject) => {\n      if (!mediaRecorder) {\n        reject('Nenhuma gravação em andamento.');\n        return;\n      }\n      \n      mediaRecorder.onstop = () => {\n        const audioBlob = new Blob(audioChunks, { type: 'audio/webm' });\n        combinedStream.getTracks().forEach(track => track.stop());\n        audioContext.close();\n        \n        resolve(audioBlob);\n        console.log('Gravação finalizada. O arquivo de áudio está pronto para upload.');\n      };\n      \n      mediaRecorder.stop();\n    });\n  };\n})();"}}},"component":"data2-core-web@Script"},{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCapture"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"meetingRecordStop":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}],"definition":{"params":{"actions":[{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCaptureStop"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"notify":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"private","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","parameters":{"title":{"params":{"component":"data2-core-primitives@String","index":{"component":"data2-core-primitives@Number","params":{"content":0}},"title":{"component":"data2-core-primitives@String","params":{"content":"title"}}},"component":"data2-core-types@ComponentParameter"},"sound":{"params":{"component":"data2-core-types@FileComponentUrlReference","index":{"component":"data2-core-primitives@Number","params":{"content":1}},"title":{"component":"data2-core-primitives@String","params":{"content":"sound"}}},"component":"data2-core-types@ComponentParameter"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}]},"component":"data2-core-types@ComponentParameter"}}},"component":"data2-core-types@FieldSet"}}},{"_id":"6ac88df4de3ccdc8d1916ee8","component":"data2-core-types@Component","system":"6ac87c99e24c1a4680e68e1f","params":{"extends":"data2-core-primitives@Block","component":"lesFamilyHub","package":"les-app","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"const SRC={isams:{label:'iSAMS',tone:'blue'},sb:{label:'SchoolsBuddy',tone:'coral'},cal:{label:'School calendar',tone:'gold'},canteen:{label:'Canteen',tone:'green'}};\nconst NAV=[{id:'today',label:'Today',icon:'home'},{id:'timetable',label:'Timetable',icon:'grid'},{id:'subjects',label:'Subjects',icon:'book'},{id:'activities',label:'Activities',icon:'star'},{id:'calendar',label:'Calendar',icon:'cal'},{id:'wellbeing',label:'Wellbeing',icon:'heart'},{id:'messages',label:'Messages',icon:'mail'},{id:'payments',label:'Payments',icon:'card'}];\nconst ICONS={home:'<path d=\"M3 10.5 12 3l9 7.5\"/><path d=\"M5 9.5V21h14V9.5\"/>',grid:'<rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"/>',book:'<path d=\"M5 4h11a2 2 0 0 1 2 2v14H6a2 2 0 0 1-2-2z\"/><path d=\"M8 4v15\"/>',star:'<path d=\"M12 3.5l2.6 5.3 5.9.9-4.2 4.1 1 5.8-5.3-2.8-5.3 2.8 1-5.8L3.5 9.7l5.9-.9z\"/>',heart:'<path d=\"M12 20s-7-4.6-9.3-9C1 7.7 2.9 4.8 6 4.8c2 0 3.2 1.2 4 2.3.8-1.1 2-2.3 4-2.3 3.1 0 5 2.9 3.3 6.2C19 15.4 12 20 12 20z\"/>',cal:'<rect x=\"3.5\" y=\"5\" width=\"17\" height=\"16\" rx=\"2\"/><path d=\"M3.5 9.5h17M8 3v4M16 3v4\"/>',mail:'<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"/><path d=\"m3.5 6.5 8.5 6 8.5-6\"/>',card:'<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"/><path d=\"M3 9.5h18M7 15h4\"/>',clock:'<circle cx=\"12\" cy=\"12\" r=\"8.5\"/><path d=\"M12 7.5V12l3 2\"/>',pin:'<path d=\"M12 21s7-5.6 7-11a7 7 0 1 0-14 0c0 5.4 7 11 7 11z\"/><circle cx=\"12\" cy=\"10\" r=\"2.5\"/>',check:'<path d=\"M4 12.5l5 5 11-11\"/>',arrow:'<path d=\"M5 12h14M13 6l6 6-6 6\"/>',spark:'<path d=\"M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18\"/>',bell:'<path d=\"M6 9a6 6 0 1 1 12 0c0 5 2 6 2 6H4s2-1 2-6z\"/><path d=\"M10 19a2 2 0 0 0 4 0\"/>',plug:'<path d=\"M9 2v6M15 2v6M7 8h10v3a5 5 0 0 1-10 0z M12 16v6\"/>',user:'<circle cx=\"12\" cy=\"8\" r=\"4\"/><path d=\"M4 20c0-4 4-6 8-6s8 2 8 6\"/>'};\nconst esc=(s)=>String(s==null?'':s).replace(/[&<>\"]/g,(c)=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c]));\nconst eur=(n)=>'€'+Number(n||0).toLocaleString('en-IE',{minimumFractionDigits:2,maximumFractionDigits:2});\nconst icon=(n,c)=>`<svg class=\"ic ${c||''}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">${ICONS[n]||''}</svg>`;\nconst srcChip=(k)=>{const s=SRC[k];return s?`<span class=\"src src-${s.tone}\">${esc(s.label)}</span>`:'';};\nconst liveChip=(on)=>on?`<span class=\"prov prov-live\"><i></i>Live</span>`:`<span class=\"prov prov-wait\">Connecting</span>`;\nconst initials=(n)=>String(n||'?').trim().split(/\\s+/).map((w)=>w[0]).slice(0,2).join('').toUpperCase();\nconst DAYS=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];const MON=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\nconst stripHtml=(s)=>String(s||'').replace(/<[^>]*>/g,' ').replace(/&nbsp;/g,' ').replace(/&amp;/g,'&').replace(/\\s+/g,' ').trim();\nconst cleanTitle=(t)=>String(t||'').replace(/term\\s*1\\s*[:.\\-]?/ig,'').replace(/plus club/ig,'').replace(/\\s+/g,' ').trim().replace(/^[:.\\-\\s]+/,'');\nconst dayFromIso=(iso)=>{const m=String(iso||'').match(/^(\\d{4})-(\\d{2})-(\\d{2})/);if(!m)return'';return DAYS[new Date(+m[1],+m[2]-1,+m[3]).getDay()];};\nconst timeFromIso=(iso)=>{const m=String(iso||'').match(/T(\\d{2}:\\d{2})/);return m?m[1]:'';};\nconst dateShort=(iso)=>{const m=String(iso||'').match(/^(\\d{4})-(\\d{2})-(\\d{2})/);return m?`${+m[3]} ${MON[+m[2]-1]}`:'';};\nconst category=(t)=>{t=(t||'').toLowerCase();if(/karate|swim|shark|badminton|football|multisport|dance/.test(t))return'Sport';if(/music|art|showstopper|diorama|drama/.test(t))return'Arts';if(/cook/.test(t))return'Life skills';if(/lamda|speaking|debate/.test(t))return'Academic';return'Club';};\n\nfunction ds(d2,name){try{const d=d2.data(name);if(!d)return{loading:false,rows:[]};const r=(d.records&&d.records())||[];return{loading:!!d.loading,rows:Array.isArray(r)?r:[]};}catch(e){return{loading:false,rows:[]};}}\n\nfunction model(d2){\n  const C=ds(d2,'clubs'),S=ds(d2,'students'),SUB=ds(d2,'subjects'),P=ds(d2,'periods'),W=ds(d2,'weeks');\n  const st=S.rows[0]||null;\n  const sbp=(C.rows[0]&&C.rows[0].pupils&&C.rows[0].pupils[0])||null;\n  const child={\n    name: st?(st.fullName||`${st.forename||''} ${st.surname||''}`.trim()):(sbp?`${sbp.firstName} ${sbp.lastName}`.trim():'Laura Martin Vallim'),\n    first: st?(st.preferredName||st.forename||'Laura'):(sbp?sbp.firstName:'Laura'),\n    year: st&&st.yearGroup!=null?('Year '+st.yearGroup):null,\n    form: st?st.formGroup:null,\n    boarding: st?st.boardingStatus:null,\n    house: st?(st.academicHouse||st.boardingHouse):null,\n    nationality: st&&st.nationalities&&st.nationalities[0]?st.nationalities[0]:null,\n    schoolId: st?st.schoolId:null,\n    email: st?st.schoolEmailAddress:null,\n    personId: sbp?sbp.personId:1575363\n  };\n  const clubs=C.rows.map((e)=>({id:e.calendarEventId,title:cleanTitle(e.title)||cleanTitle(e.teamTitle),category:category((e.title||'')+' '+(e.teamTitle||'')),day:dayFromIso(e.fromUtc),time:timeFromIso(e.fromUtc),from:dateShort(e.fromUtc),to:dateShort(e.toUtc),cost:e.costPerPerson,spaces:e.spacesLeft,location:e.teamLocation||'',desc:stripHtml(e.teamDescription).slice(0,170),sessions:(e.remainingSessionEvents||[]).length}));\n  const subjects=SUB.rows.map((g)=>({subject:g.subjectName,set:g.setCode||g.name,block:g.block,teacher:g.teacher?(g.teacher.salutation||`${g.teacher.title||''} ${g.teacher.surname||''}`.trim()):'',email:g.teacher?g.teacher.schoolEmailAddress:'',code:g.subjectCode})).filter((s)=>s.subject).sort((a,b)=>a.subject.localeCompare(b.subject));\n  const activeWeekId=(W.rows.find((w)=>w.weekActive)||W.rows[0]||{}).currentActiveWeekId;\n  const slots=W.rows.filter((w)=>(activeWeekId==null||w.weekId===activeWeekId)&&w.dayActive!==0);\n  const slotBy={};slots.forEach((w)=>{if(slotBy[w.periodId]==null)slotBy[w.periodId]=w;});\n  const lessons=P.rows.map((p)=>{const s=slotBy[p.period];if(!s)return null;return{dayOrder:s.dayOrder,dayName:s.dayName,order:s.periodOrder,start:timeFromIso(s.periodStartTime),end:timeFromIso(s.periodEndTime),slot:s.perdiodName,subject:p.subject,staff:p.staffFullname,room:p.buildingName,roomCode:p.buildingInitials,set:p.setName,code:p.subjectCode};}).filter(Boolean).sort((a,b)=>(a.dayOrder-b.dayOrder)||(a.order-b.order));\n  const activeWk=W.rows.find((w)=>w.weekId===activeWeekId)||W.rows[0]||null;\n  return {\n    clubs:{loading:C.loading,live:C.rows.length>0,list:clubs},\n    isamsLive:S.rows.length>0,\n    subjLive:SUB.rows.length>0, subjLoading:SUB.loading,\n    ttLive:lessons.length>0, ttLoading:P.loading||W.loading,\n    weekName: activeWk?activeWk.weekName:'',\n    child, subjects, lessons\n  };\n}\n\nfunction header(M){\n  const sub=M.isamsLive?[M.child.year,M.child.form].filter(Boolean).join(' · '):'SchoolsBuddy ID '+M.child.personId;\n  return `<header class=\"top\"><div class=\"brand\"><div class=\"mark\">LES</div><div class=\"brandtxt\"><div class=\"bt1\">Lady Elizabeth School</div><div class=\"bt2\">Family Hub</div></div></div>\n  <div class=\"childpill\" data-go=\"today\"><span class=\"avatar h-green\">${esc(initials(M.child.name))}</span><span class=\"cp-txt\"><b>${esc(M.child.name)}</b><small>${esc(sub)}</small></span></div>\n  <div class=\"top-right\"><button class=\"iconbtn\" data-go=\"messages\">${icon('bell')}</button><div class=\"me\"><span class=\"me-av\">RV</span><span class=\"me-txt\"><b>Roger Vallim</b><small>Parent</small></span></div></div></header>`;\n}\nfunction sidebar(M,tab){\n  const items=NAV.map((n)=>{let b='';if(n.id==='activities'&&M.clubs.list.length)b=`<span class=\"nbadge nbadge-gold\">${M.clubs.list.length}</span>`;if(n.id==='subjects'&&M.subjects.length)b=`<span class=\"nbadge\">${M.subjects.length}</span>`;return `<button class=\"navi ${tab===n.id?'on':''}\" data-tab=\"${n.id}\">${icon(n.icon)}<span>${esc(n.label)}</span>${b}</button>`;}).join('');\n  return `<nav class=\"side\">${items}<div class=\"side-foot\"><div class=\"connected\"><div class=\"conn-h\">${icon('spark')} Connected sources</div>\n  <div class=\"conn-row\"><span class=\"tick ${M.clubs.live?'':'off'}\">${icon('check')}</span>SchoolsBuddy${M.clubs.live?'':' <small>· token</small>'}</div>\n  <div class=\"conn-row\"><span class=\"tick ${M.isamsLive?'':'off'}\">${icon('check')}</span>iSAMS${M.isamsLive?'':' <small>· token</small>'}</div></div></div></nav>`;\n}\nfunction connecting(src,what,note){\n  return `<div class=\"page\"><div class=\"page-h\"><div><div class=\"eyebrow\">${srcChip(src)} ${liveChip(false)}</div><h1 class=\"h1\">${esc(what)}</h1></div></div>\n  <div class=\"card connect-card\"><div class=\"connect-ic\">${icon('plug')}</div><h2>Connecting to ${esc(SRC[src].label)}</h2><p class=\"lead\">${esc(note||(what+' binds live to '+SRC[src].label+' the moment its endpoint is wired — no data is copied or stored.'))}</p></div></div>`;\n}\n\nfunction secToday(M){\n  const now=new Date();\n  const todayName=now.toLocaleDateString('en-GB',{weekday:'long'});\n  const dateStr=now.toLocaleDateString('en-GB',{day:'numeric',month:'long'});\n  const hr=now.getHours();const greet=hr<12?'Good morning':(hr<18?'Good afternoon':'Good evening');\n  const todayLessons=M.lessons.filter((l)=>l.dayName===todayName);\n  const todayClubs=M.clubs.list.filter((c)=>c.day===DAYS[now.getDay()]);\n  const ttBody=!M.ttLive?`<div class=\"connect-inline\">${icon('plug')}<div><b>Connecting to iSAMS</b><p>The live timetable renders here when the iSAMS token is active.</p></div></div>`\n    :(todayLessons.length?`<div class=\"tt-today\">${todayLessons.map((l)=>`<div class=\"ttr\"><span class=\"ttr-time\">${esc(l.start||'')}</span><span class=\"ttr-body\"><b>${esc(l.subject)}</b><small>${esc(l.staff||'')}${l.room?' · '+esc(l.room):''}</small></span></div>`).join('')}</div>`\n      :`<p class=\"empty\">No timetabled lessons today (${esc(todayName)}).</p>`);\n  const clubBody=!M.clubs.live?`<p class=\"empty\">Connecting to SchoolsBuddy — today’s clubs appear here when the token is active.</p>`\n    :(todayClubs.length?`<div class=\"chips-row\">${todayClubs.map((c)=>`<div class=\"mini\"><b>${esc(c.title)}</b><small>${icon('clock','ic-sm')} ${esc(c.time)} · ${esc(c.category)}</small></div>`).join('')}</div>`\n      :`<div class=\"chips-row\"><div class=\"mini mini-ghost\" data-tab=\"activities\"><b>No clubs booked for today</b><small>Browse ${M.clubs.list.length} available this term</small></div></div>`);\n  const glance=M.isamsLive?`<div class=\"glance\">\n    <div class=\"g-row\"><span>Year group</span><b>${esc(M.child.year||'—')}</b></div>\n    <div class=\"g-row\"><span>Form</span><b>${esc(M.child.form||'—')}</b></div>\n    <div class=\"g-row\"><span>Attendance</span><b>${esc(M.child.boarding||'—')}</b></div>\n    <div class=\"g-row\"><span>Nationality</span><b>${esc(M.child.nationality||'—')}</b></div>\n    <div class=\"g-row\"><span>School email</span><b>${esc(M.child.email||'—')}</b></div></div>`\n    :`<p class=\"empty\">Connecting to iSAMS for ${esc(M.child.first)}’s record.</p>`;\n  return `<div class=\"page\"><div class=\"hello\"><div class=\"eyebrow\">${esc(todayName)}, ${esc(dateStr)}${M.weekName?' · '+esc(M.weekName):''}</div><h1 class=\"h1\">${esc(greet)}, Roger.</h1><p class=\"lead\">${esc(M.child.first)}’s school life — iSAMS academics and SchoolsBuddy activities, brought together in one place.</p></div>\n  <div class=\"grid-3\"><div class=\"stat\"><div class=\"stat-k ${M.ttLive?'':'t-wait'}\">${M.ttLive?todayLessons.length:'—'}</div><div class=\"stat-l\">${icon('clock','ic-sm')} Lessons today${M.ttLive?'':' · connecting'}</div></div>\n  <div class=\"stat\"><div class=\"stat-k ${M.subjLive?'':'t-wait'}\">${M.subjLive?M.subjects.length:'—'}</div><div class=\"stat-l\">${icon('book','ic-sm')} Subjects${M.subjLive?'':' · connecting'}</div></div>\n  <div class=\"stat\"><div class=\"stat-k ${M.clubs.live?'':'t-wait'}\">${M.clubs.live?M.clubs.list.length:'—'}</div><div class=\"stat-l\">${icon('star','ic-sm')} Clubs · Term 1${M.clubs.live?'':' · connecting'}</div></div></div>\n  <div class=\"cols\"><div class=\"col-main\">\n    <section class=\"card\"><div class=\"card-h\"><h2>${esc(M.child.first)}’s timetable today</h2>${liveChip(M.ttLive)}${srcChip('isams')}</div>${ttBody}</section>\n    <section class=\"card\"><div class=\"card-h\"><h2>After school today</h2>${liveChip(M.clubs.live)}${srcChip('sb')}</div>${clubBody}</section>\n  </div><div class=\"col-side\">\n    <section class=\"card card-accent\"><div class=\"card-h\"><h2>This term’s sign-ups</h2>${srcChip('sb')}</div><p class=\"side-note\">Term 1 Plus Clubs 2026/27 sign-up is open. ${M.clubs.live?M.clubs.list.length+' clubs available — book '+esc(M.child.first)+'’s place from Activities.':'Connect SchoolsBuddy to browse and book clubs.'}</p><button class=\"btn btn-full\" data-tab=\"activities\">Browse activities${icon('arrow','ic-sm')}</button></section>\n    <section class=\"card\"><div class=\"card-h\"><h2>${esc(M.child.first)} at a glance</h2>${liveChip(M.isamsLive)}${srcChip('isams')}</div>${glance}</section>\n  </div></div></div>`;\n}\n\nfunction secTimetable(M){\n  if(M.ttLoading&&!M.ttLive)return `<div class=\"page\">${skelPage('Timetable','isams')}</div>`;\n  if(!M.ttLive)return connecting('isams','Timetable','Laura’s weekly timetable binds live to iSAMS when the token is active — set schedule, teachers and rooms, no data copied.');\n  const order=[];const byDay={};\n  M.lessons.forEach((l)=>{if(!byDay[l.dayName]){byDay[l.dayName]=[];order.push({name:l.dayName,o:l.dayOrder});}byDay[l.dayName].push(l);});\n  order.sort((a,b)=>a.o-b.o);\n  const todayName=new Date().toLocaleDateString('en-GB',{weekday:'long'});\n  const days=order.map((d)=>`<section class=\"daycard ${d.name===todayName?'is-today':''}\"><div class=\"dayhead\">${esc(d.name)}${d.name===todayName?'<span class=\"todaytag\">Today</span>':''}</div><div class=\"daybody\">${byDay[d.name].map((l)=>`<div class=\"lesson\"><span class=\"l-time\">${esc(l.start||'')}<i>${esc(l.end||'')}</i></span><span class=\"l-main\"><b>${esc(l.subject)}</b><small>${esc(l.set||'')}${l.roomCode?' · '+esc(l.roomCode):(l.room?' · '+esc(l.room):'')}</small><small class=\"l-tr\">${esc(l.staff||'')}</small></span></div>`).join('')}</div></section>`).join('');\n  return `<div class=\"page\"><div class=\"page-h\"><div><div class=\"eyebrow\">${srcChip('isams')} ${liveChip(true)}</div><h1 class=\"h1\">Timetable</h1><p class=\"lead\">${esc(M.child.name)} · ${esc(M.child.form||'')} · ${esc(M.weekName||'current week')} — live from iSAMS.</p></div></div><div class=\"ttgrid\">${days}</div></div>`;\n}\n\nfunction secSubjects(M){\n  if(M.subjLoading&&!M.subjLive)return `<div class=\"page\">${skelPage('Subjects & teachers','isams')}</div>`;\n  if(!M.subjLive)return connecting('isams','Subjects & teachers','Laura’s classes and teachers bind live to iSAMS when the token is active.');\n  const card=(s)=>`<div class=\"subj\"><div class=\"subj-top\"><span class=\"subj-ic\">${icon('book')}</span>${s.block&&s.block!=='-'?`<span class=\"subj-block\">Block ${esc(s.block)}</span>`:''}</div><h3>${esc(s.subject)}</h3><div class=\"subj-set\">${esc(s.set||'')}</div><div class=\"subj-teacher\"><span class=\"t-av\">${esc(initials(s.teacher||'?'))}</span><span class=\"t-txt\"><b>${esc(s.teacher||'—')}</b>${s.email?`<small>${esc(s.email)}</small>`:''}</span></div></div>`;\n  return `<div class=\"page\"><div class=\"page-h\"><div><div class=\"eyebrow\">${srcChip('isams')} ${liveChip(true)}</div><h1 class=\"h1\">Subjects &amp; teachers</h1><p class=\"lead\">${esc(M.child.name)}’s ${M.subjects.length} classes this year — live from iSAMS.</p></div></div><div class=\"subjgrid\">${M.subjects.map(card).join('')}</div></div>`;\n}\n\nfunction secActivities(M){\n  if(M.clubs.loading&&!M.clubs.live)return `<div class=\"page\">${skelPage('Activities','sb')}</div>`;\n  if(!M.clubs.live)return connecting('sb','Activities','Laura’s Term 1 Plus Clubs bind live to SchoolsBuddy when the token is active — no data copied or stored.');\n  const card=(c)=>{const spaces=c.spaces>=999?'Spaces available':(c.spaces>0?`${c.spaces} spaces left`:'Full');const low=c.spaces>0&&c.spaces<=6;return `<div class=\"aclub\"><div class=\"ac-top\"><span class=\"cat\">${esc(c.category)}</span><span class=\"spaces ${low?'low':''}\">${esc(spaces)}</span></div><h3>${esc(c.title)}</h3>${c.desc?`<p class=\"ac-desc\">${esc(c.desc)}…</p>`:''}<div class=\"ac-meta\">${icon('clock','ic-sm')} ${esc(c.day)} · ${esc(c.time)} · ${c.sessions} sessions</div>${c.location?`<div class=\"ac-meta\">${icon('pin','ic-sm')} ${esc(c.location)}</div>`:''}<div class=\"ac-meta\">${icon('cal','ic-sm')} ${esc(c.from)} – ${esc(c.to)}</div><div class=\"ac-foot\"><span class=\"price\">${eur(c.cost)}</span><button class=\"btn btn-sm\" data-book=\"${esc(c.title)}\">Book</button></div></div>`;};\n  return `<div class=\"page\"><div class=\"page-h\"><div><div class=\"eyebrow\">${srcChip('sb')} ${liveChip(true)}</div><h1 class=\"h1\">Activities</h1><p class=\"lead\">Term 1 Plus Clubs 2026/27 — live from SchoolsBuddy for ${esc(M.child.name)}.</p></div></div>\n  <div class=\"aclubs\">${M.clubs.list.map(card).join('')||'<p class=\"empty\">No clubs returned.</p>'}</div></div>`;\n}\nfunction skelPage(title,src){return `<div class=\"page-h\"><div><div class=\"eyebrow\">${srcChip(src)} ${liveChip(false)}</div><h1 class=\"h1\">${esc(title)}</h1></div></div><div class=\"aclubs\">${Array(6).fill(0).map(()=>'<div class=\"aclub sk\"><div class=\"sk-l\"></div><div class=\"sk-l sk-s\"></div><div class=\"sk-l sk-s\"></div></div>').join('')}</div>`;}\n\nexport default {\n  css:`:host{all:initial;display:block;width:100%;height:100%}*{box-sizing:border-box;margin:0;padding:0}\n  .app{--ink:#132E47;--ink2:#415668;--muted:#6B7A89;--paper:#FAF8F3;--paper2:#F2ECE1;--card:#FFF;--line:#ECE6DA;--line2:#E3DBCC;--green:#2F7D5B;--green-bg:#E7F0EA;--coral:#D9673F;--coral-bg:#FAEBE2;--gold:#B88A2B;--gold-bg:#F6EFD9;--blue:#3A6EA5;--blue-bg:#E7EEF6;font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--paper);width:100%;height:100%;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;container-type:inline-size}\n  .ic{width:18px;height:18px;flex:none}.ic-sm{width:14px;height:14px}\n  h1,h2,h3{font-family:'Fraunces','Georgia',serif;font-weight:600;letter-spacing:-.01em}\n  .top{display:flex;align-items:center;gap:18px;height:64px;padding:0 22px;background:var(--card);border-bottom:1px solid var(--line);flex:none}\n  .brand{display:flex;align-items:center;gap:11px}.mark{width:38px;height:38px;border-radius:10px;background:var(--ink);color:#fff;font-family:'Fraunces',serif;font-weight:600;font-size:15px;display:flex;align-items:center;justify-content:center}\n  .bt1{font-family:'Fraunces',serif;font-size:15px;font-weight:600;line-height:1.1}.bt2{font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}\n  .childpill{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border:1px solid var(--line2);border-radius:100px;background:var(--paper);cursor:pointer;margin-left:6px}.childpill:hover{border-color:var(--ink)}\n  .avatar{width:30px;height:30px;border-radius:100px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}.h-green{background:var(--green)}\n  .cp-txt{display:flex;flex-direction:column;line-height:1.15}.cp-txt b{font-size:13px}.cp-txt small{font-size:11px;color:var(--muted)}\n  .top-right{margin-left:auto;display:flex;align-items:center;gap:12px}.iconbtn{width:40px;height:40px;border-radius:10px;border:1px solid var(--line2);background:var(--card);color:var(--ink2);display:flex;align-items:center;justify-content:center;cursor:pointer}.iconbtn:hover{border-color:var(--ink);color:var(--ink)}\n  .me{display:flex;align-items:center;gap:9px}.me-av{width:34px;height:34px;border-radius:100px;background:var(--ink);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.me-txt{display:flex;flex-direction:column;line-height:1.15}.me-txt b{font-size:13px}.me-txt small{font-size:11px;color:var(--muted)}\n  .shell{flex:1;display:flex;min-height:0}\n  .side{width:232px;flex:none;background:var(--card);border-right:1px solid var(--line);padding:16px 14px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}\n  .navi{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;border:none;background:none;color:var(--ink2);font-size:14px;font-weight:500;cursor:pointer;text-align:left;width:100%}.navi .ic{color:var(--muted)}.navi:hover{background:var(--paper);color:var(--ink)}.navi.on{background:var(--ink);color:#fff}.navi.on .ic{color:#fff}\n  .nbadge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:100px;background:var(--paper2);color:var(--ink2);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.nbadge-gold{background:var(--gold-bg);color:var(--gold)}.navi.on .nbadge{background:rgba(255,255,255,.2);color:#fff}\n  .side-foot{margin-top:auto;padding-top:14px}.connected{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:13px}.conn-h{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}.conn-h .ic{width:14px;height:14px;color:var(--gold)}\n  .conn-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink2);padding:3px 0}.conn-row small{color:var(--muted)}.tick{display:flex;width:16px;height:16px;border-radius:100px;background:var(--green-bg);color:var(--green);align-items:center;justify-content:center}.tick.off{background:var(--paper2);color:var(--muted)}.tick .ic{width:11px;height:11px}\n  .main{flex:1;overflow-y:auto;min-width:0}.page{max-width:1200px;margin:0 auto;padding:30px 40px 48px}\n  .eyebrow{font-size:12px;color:var(--muted);margin-bottom:9px;display:flex;gap:6px;align-items:center}.h1{font-size:32px;line-height:1.08;margin-bottom:6px}.lead{font-size:15px;color:var(--ink2);line-height:1.5;max-width:64ch}.empty{font-size:13.5px;color:var(--muted);padding:8px 2px;line-height:1.5}\n  .hello{margin-bottom:22px}.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}\n  .src{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:100px;white-space:nowrap}.src-blue{background:var(--blue-bg);color:var(--blue)}.src-coral{background:var(--coral-bg);color:var(--coral)}.src-gold{background:var(--gold-bg);color:var(--gold)}.src-green{background:var(--green-bg);color:var(--green)}\n  .prov{font-size:10px;font-weight:700;padding:3px 8px 3px 7px;border-radius:100px;display:inline-flex;align-items:center;gap:5px}.prov-live{background:var(--green-bg);color:var(--green)}.prov-live i{width:6px;height:6px;border-radius:100px;background:var(--green);box-shadow:0 0 0 3px rgba(47,125,91,.15)}.prov-wait{background:var(--blue-bg);color:var(--blue)}\n  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}@container(max-width:720px){.grid-3{grid-template-columns:1fr}}\n  .stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px}.stat-k{font-family:'Fraunces',serif;font-size:25px;font-weight:600;line-height:1.1}.stat-l{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);margin-top:7px}.t-blue{color:var(--blue)}.t-wait{color:var(--muted)}\n  .card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 22px;box-shadow:0 2px 10px rgba(19,46,71,.03);margin-bottom:16px}.card-accent{border-color:var(--coral);box-shadow:0 4px 18px rgba(217,103,63,.08)}\n  .card-h{display:flex;align-items:center;gap:8px;margin-bottom:16px}.card-h h2{font-size:16px;margin-right:auto}\n  .cols{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start}@container(max-width:900px){.cols{grid-template-columns:1fr}}\n  .chips-row{display:flex;flex-wrap:wrap;gap:10px}.mini{flex:1 1 180px;border:1px solid var(--line);border-radius:13px;padding:13px 15px;background:var(--paper)}.mini b{font-size:14px;display:block}.mini small{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-top:5px}.mini-ghost{border-style:dashed;cursor:pointer}.mini-ghost:hover{border-color:var(--ink)}\n  .tt-today{display:flex;flex-direction:column}.ttr{display:flex;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.ttr:last-child{border:none}.ttr-time{font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;color:var(--ink);width:46px;flex:none}.ttr-body b{font-size:14px;display:block}.ttr-body small{font-size:12px;color:var(--muted)}\n  .side-note{font-size:13px;color:var(--ink2);line-height:1.5;margin-bottom:14px}\n  .glance .g-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.glance .g-row:last-child{border:none}.glance .g-row span{color:var(--muted)}.glance .g-row b{text-align:right;word-break:break-word}\n  .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 15px;border-radius:100px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.btn:hover{opacity:.9}.btn-sm{padding:7px 13px;font-size:12.5px}.btn-full{width:100%}\n  .ttgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;align-items:start}\n  .daycard{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.daycard.is-today{border-color:var(--blue);box-shadow:0 4px 16px rgba(58,110,165,.1)}\n  .dayhead{font-family:'Fraunces',serif;font-weight:600;font-size:15px;padding:13px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.todaytag{font-family:'Inter',sans-serif;font-size:10px;font-weight:700;color:var(--blue);background:var(--blue-bg);padding:2px 7px;border-radius:100px}\n  .daybody{padding:6px 16px 12px}.lesson{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}.lesson:last-child{border:none}.l-time{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;color:var(--ink);width:42px;flex:none;line-height:1.3}.l-time i{display:block;font-style:normal;font-weight:400;color:var(--muted);font-size:11px}.l-main{flex:1;min-width:0}.l-main b{font-size:13.5px;display:block;line-height:1.25}.l-main small{font-size:11.5px;color:var(--muted);display:block}.l-main .l-tr{color:var(--ink2);font-weight:600;margin-top:3px}\n  .subjgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}\n  .subj{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px 18px}.subj-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.subj-ic{width:34px;height:34px;border-radius:10px;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center}.subj-block{font-size:10.5px;font-weight:700;color:var(--ink2);background:var(--paper2);padding:3px 9px;border-radius:100px}\n  .subj h3{font-size:15.5px;line-height:1.2;margin-bottom:3px}.subj-set{font-size:11.5px;color:var(--muted);margin-bottom:14px;font-variant-numeric:tabular-nums}\n  .subj-teacher{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.t-av{width:30px;height:30px;border-radius:100px;background:var(--ink);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}.t-txt{min-width:0}.t-txt b{font-size:13px;display:block}.t-txt small{font-size:11px;color:var(--muted);word-break:break-all}\n  .aclubs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}@container(max-width:860px){.aclubs{grid-template-columns:repeat(2,1fr)}}@container(max-width:560px){.aclubs{grid-template-columns:1fr}}\n  .aclub{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px 18px;display:flex;flex-direction:column}.ac-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.cat{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:100px;background:var(--paper2);color:var(--ink2)}.spaces{font-size:11px;color:var(--muted)}.spaces.low{color:var(--coral);font-weight:700}\n  .aclub h3{font-size:15.5px;margin-bottom:8px;line-height:1.18}.ac-desc{font-size:12.5px;color:var(--ink2);line-height:1.5;margin-bottom:11px}.ac-meta{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-bottom:5px}.ac-foot{display:flex;align-items:center;justify-content:space-between;margin-top:13px}.price{font-family:'Fraunces',serif;font-size:16px;font-weight:600}\n  .connect-card{text-align:center;padding:48px 30px}.connect-ic{width:52px;height:52px;border-radius:14px;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.connect-ic .ic{width:26px;height:26px}.connect-card h2{font-size:19px;margin-bottom:8px}.connect-card .lead{margin:0 auto}\n  .connect-inline{display:flex;gap:14px;align-items:flex-start;padding:6px 2px}.connect-inline .ic{width:22px;height:22px;color:var(--blue);flex:none;margin-top:2px}.connect-inline b{font-size:14px}.connect-inline p{font-size:13px;color:var(--muted);margin-top:3px;line-height:1.5}\n  .sk{pointer-events:none}.sk-l{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--paper2),var(--line),var(--paper2));background-size:200% 100%;animation:sh 1.2s infinite;margin-bottom:10px}.sk-s{width:60%}@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}\n  .toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:100px;font-size:13.5px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:50;box-shadow:0 10px 30px rgba(19,46,71,.25)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}\n  @container(max-width:980px){.cols{grid-template-columns:1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.page{padding:28px 24px 40px}}@container(max-width:640px){.top{height:54px;padding:0 14px;gap:10px}.mark{width:32px;height:32px}.bt1{font-size:14px}.brandtxt,.me-txt,.childpill .cp-txt{display:none}.top-right{gap:8px}.childpill{padding:4px 8px}.shell{flex-direction:column}.main{padding-bottom:74px;-webkit-overflow-scrolling:touch}.page{max-width:none;padding:18px 15px 26px}h1,.h1{font-size:24px;line-height:1.14}.lead{font-size:14px}.hello{margin-bottom:16px}.page-h{margin-bottom:16px}.grid-3{grid-template-columns:1fr;gap:10px}.cols{grid-template-columns:1fr;gap:12px}.aclubs{grid-template-columns:1fr}.ttgrid{grid-template-columns:1fr;gap:12px}.side{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:auto;flex-direction:row;gap:0;border-right:none;border-top:1px solid var(--line2);background:var(--card);padding:6px 4px calc(6px + env(safe-area-inset-bottom));overflow:visible;z-index:60;box-shadow:0 -3px 16px rgba(19,46,71,.07)}.side .navi:nth-child(5),.side .navi:nth-child(6),.side .navi:nth-child(7){display:none}.navi{flex:1 1 0;min-width:0;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-size:10px;font-weight:600;border-radius:12px;text-align:center}.navi .ic{width:21px;height:21px}.nbadge{display:none}.side-foot{display:none}}`,\n  render(d2){\n    const M=model(d2);\n    const tab=(d2.state&&d2.state.tab)||'today';\n    let body='';\n    if(tab==='today')body=secToday(M);\n    else if(tab==='timetable')body=secTimetable(M);\n    else if(tab==='subjects')body=secSubjects(M);\n    else if(tab==='activities')body=secActivities(M);\n    else if(tab==='calendar')body=connecting('isams','Calendar','The school calendar binds live to iSAMS when its endpoint is wired.');\n    else if(tab==='wellbeing')body=connecting('isams','Wellbeing & pastoral','Pastoral notes and wellbeing bind live to iSAMS when wired.');\n    else if(tab==='messages')body=connecting('isams','Messages','School messages bind live to iSAMS when wired.');\n    else if(tab==='payments')body=connecting('sb','Payments','Balances and payments bind live to SchoolsBuddy finance when wired.');\n    return `<div class=\"app\">${header(M)}<div class=\"shell\">${sidebar(M,tab)}<main class=\"main\">${body}</main></div><div class=\"toast\" id=\"toast\"></div></div>`;\n  },\n  mounted(d2){\n    try{if(!document.getElementById('les-fonts')){const l=document.createElement('link');l.id='les-fonts';l.rel='stylesheet';l.href='https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&display=swap';document.head.appendChild(l);}}catch(e){}\n    const toast=(m)=>{const t=d2.$('#toast');if(!t)return;t.textContent=m;t.classList.add('show');clearTimeout(this._t);this._t=setTimeout(()=>t.classList.remove('show'),2400);};\n    d2.on('[data-tab]','click',(e,el)=>{d2.state.tab=el.getAttribute('data-tab');const m=d2.$('.main');if(m)m.scrollTop=0;});\n    d2.on('[data-go]','click',(e,el)=>{d2.state.tab=el.getAttribute('data-go');});\n    d2.on('[data-book]','click',(e,el)=>{toast('“'+el.getAttribute('data-book')+'” — booking opens in SchoolsBuddy.');});\n  },\n};"}},"clubs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"clubs"}}}},"students":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"students"}}}},"subjects":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"subjects"}}}},"periods":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"periods"}}}},"weeks":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"weeks"}}}}}}}}}},{"_id":"5ed9bed7b9e0891ce913e884","component":"data2-core-types@Component","params":{"package":"data2-core","component":"DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}},{"_id":"614df5ca33fad3ebebb9879b","component":"data2-core-types@Component","params":{"package":"http","component":"CustomHTTPDataSource","extends":"data2-core@DataSource","definition":{"params":{},"component":"data2-core-types@Definition"},"renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}}]}},{"reference":"ExternalComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"_id":"5f060d9b1ca96def42f3c40a","displayName":"Builder AuthStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"credentials":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"verifier":{"component":"data2-core-types@DataSetReference","params":{"reference":"UsersDataSet"}},"sessionShared":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},"email":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"nR6Q9d7qdaPtZhJ28Q8Dy"},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"yPCJBTKo8q1Mw0B_3Kpwl"},"component":"data2-core-types@ArtboardReference"}}},"session":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"name"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"sessionMetadata":{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},{"params":{"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"active"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.status"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is active user"}]},"component":"data2-core-logical-operators@And","displayName":"is active and has _id"}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $user"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-primitives@String","params":{"content":"@data2.app"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.email"}}}}},"component":"data2-core-functions@Includes","displayName":"isData2User"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}},"component":"data2-core-flow@Step"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.d2_app"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"management"}}]},"component":"data2-core-functions@Includes","displayName":"isData2App Exception"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}},"component":"data2-core-flow@Step"},{"params":{"resultName":{"component":"data2-core-primitives@String","params":{"content":"has_access"}},"action":{"params":{"compare":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}}}]},"component":"data2-core-logical-operators@Or"},"else":{"params":{"actions":[{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $metadata.system"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":"filter","args":[{"_id":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records.length"}}}}},"component":"data2-core-logical-operators@Not","displayName":"systems not found"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check system found"},{"params":{"actions":[{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"organization":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"cursor.current.organization._id"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"}]},"component":"data2-core-flow@Parallel"}]},"component":"data2-core-flow@Series","displayName":"common setup"},{"params":{"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"compare":{"params":{"components":{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"mapper":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"system"}}],"body":{"params":{"expression":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.visibility"}}}},"defaultCase":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"public"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"billing-owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}},{"component":"data2-core-primitives@String","params":{"content":"member"}}]},"component":"data2-core-functions@Includes","displayName":"has role with access"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"collaborator"}}},"component":"data2-core-comparison-operators@Equal","displayName":"is collaborator"}]},"component":"data2-core-logical-operators@And","displayName":"is org member and collaborator"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is collaborator"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is collaborator and has system access"}]},"component":"data2-core-logical-operators@Or"}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"private"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}}]},"component":"data2-core-functions@Includes","displayName":"is owner/admin"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is owner/admin"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is member and has system access"}]},"component":"data2-core-logical-operators@Or","displayName":"is owner/admin or has system access"}}}]},"component":"data2-core-flow@Switch"}}}},"component":"data2-core-functions@ArrayMap"}},"component":"data2-core-logical-operators@And","displayName":"has org member for all systems in request"}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-flow@If"}},"component":"data2-core-flow@Step"},{"params":{"then":{"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"else":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"},"compare":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"has_access"}}}}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"sessionExpiresIn":{"component":"data2-core-primitives@Number","params":{"content":604800}},"sessionRenewal":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"identityProviders":[{"provider":{"component":"data2-core-primitives@String","params":{"content":"GOOGLE"}},"clientId":{"component":"data2-core-primitives@String","params":{"content":"55470861603-22pvfc1t49lp8cjnbfk71s5ct9hp1q1v.apps.googleusercontent.com"}}}]},"reference":"Data2BuilderAuthentication","updatedAt":"2026-08-06T19:31:23.557Z"},{"_id":"5f060ee51ca96def42f3fbd1","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"UsersTableDataSource"}},"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}}},"reference":"UsersDataSet","updatedAt":"2026-03-04T21:16:40.291Z"},{"_id":"68f938cf5fb002e33752a43d","displayName":"InternalApplicationsAuthenticationStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}}},"verifier":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"InternalApplicationsVerifierDataSet"}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"secret"}},"credentials":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}],"session":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}]},"reference":"InternalApplicationsAuthenticationStrategy","updatedAt":"2025-10-22T20:08:54.442Z","createdAt":"2025-10-22T20:04:31.198Z"},{"component":"data2-core@DataSet","reference":"SessionsDataSet","params":{"requiresConfirmation":false,"pk":"key","datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"data2sessionsdatasource"}}}},{"reference":"UsersTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@ServerSessionsDataSource","reference":"data2sessionsdatasource","params":{}},{"_id":"5f1600b70528b92601890f75","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ServiceComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ServiceComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:20.208Z","createdAt":"2020-07-20T20:38:15.436Z"},{"_id":"5f1602190528b92601890f7d","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":40000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentInstancesTableDataSource"}},"sort":{"_id":1},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:07.089Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"5f16017f0528b92601890f7a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"FileComponentInstancesDataSet","updatedAt":"2023-08-03T16:08:18.193Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"5f1601990528b92601890f7b","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ApplicationsTableDataSource"}},"pk":"_id","autoEdit":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"params":{"column":"_id"},"component":"data2-core-types@DataSetColumnReference"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"ApplicationsDataSet","updatedAt":"2022-12-13T21:51:13.995Z","createdAt":"2020-07-20T20:42:01.657Z"},{"_id":"5f16172a0528b92601890f85","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":10000}}},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"DataComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"DataComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:12.831Z","createdAt":"2020-07-20T22:14:02.097Z"},{"_id":"60ddc1bbda3861ca65407c5a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"pagination":{"size":1},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"}},"reference":"OneFileComponentInstancesDataSet","updatedAt":"2022-02-09T19:44:38.036Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"63ee3d38b8c9838c62fb05fb","displayName":"DriveFileComponentInstancesDataSet","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core@Drive"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"DriveFileComponentInstancesDataSet","updatedAt":"2025-12-04T21:58:32.367Z","createdAt":"2023-02-16T14:27:07.797Z"},{"reference":"ServiceComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6ac884b9de3ccdc8d19169a5","component":"data2-core-connect@HttpClient","reference":"isams","system":"6ac87c99e24c1a4680e68e1f","params":{}},{"_id":"6ac8b31436daaf883819bae0","component":"data2-core-connect@HttpRequest","reference":"isams_weeks","system":"6ac87c99e24c1a4680e68e1f","params":{"parent":{"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpClient","reference":"isams"}},"method":{"component":"data2-core-primitives@String","params":{"content":"GET"}},"requestParameters":[],"useProxy":true}},{"_id":"6ac8b3087f8bdfd900d28c8c","component":"data2-core-connect@HttpRequest","reference":"isams_periods","system":"6ac87c99e24c1a4680e68e1f","params":{"parent":{"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpClient","reference":"isams"}},"method":{"component":"data2-core-primitives@String","params":{"content":"GET"}},"requestParameters":[],"useProxy":true}},{"_id":"6ac8b2fb342eee24937608ff","component":"data2-core-connect@HttpRequest","reference":"isams_subjects","system":"6ac87c99e24c1a4680e68e1f","params":{"parent":{"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpClient","reference":"isams"}},"method":{"component":"data2-core-primitives@String","params":{"content":"GET"}},"requestParameters":[],"useProxy":true}},{"_id":"6ac8b2ee36daaf883819baa8","component":"data2-core-connect@HttpRequest","reference":"isams_students","system":"6ac87c99e24c1a4680e68e1f","params":{"parent":{"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpClient","reference":"isams"}},"method":{"component":"data2-core-primitives@String","params":{"content":"GET"}},"requestParameters":[],"useProxy":true}},{"_id":"6ac88bcb6253c4f91545fedf","component":"data2-core-connect@HttpRequest","reference":"sb_clubs","system":"6ac87c99e24c1a4680e68e1f","params":{"parent":{"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpClient","reference":"sb_legacy"}},"method":{"component":"data2-core-primitives@String","params":{"content":"GET"}},"requestParameters":[],"useProxy":true}},{"_id":"6ac88b8578f3730f24d397fb","component":"data2-core-connect@HttpClient","reference":"sb_legacy","system":"6ac87c99e24c1a4680e68e1f","params":{}}]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6ac88e39e8d9a3133c7b700a","component":"data2-core-primitives@Artboard","system":"6ac87c99e24c1a4680e68e1f","displayName":"Home","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Home"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}},"alternativeArtboards":{"component":"data2-core-types@ResponsiveArtboards","params":{"mobile":{"component":"data2-core-types@ArtboardReference","params":{"reference":"B4XryBz5Dj_4X55j3Xuji"}}}}},"reference":"T-_5lnnuG2vdvsGgagl_o"},{"_id":"0d1418d53e48435cabcbf334","parent":"6ac88e39e8d9a3133c7b700a","component":"les-app@lesFamilyHub","system":"6ac87c99e24c1a4680e68e1f","displayName":"Family Hub","params":{"clubs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"clubsLiveDataSet"}},"pin":"stretch","super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true},"students":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsStudentsDataSet"}},"subjects":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsSubjectsDataSet"}},"periods":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsPeriodsDataSet"}},"weeks":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsWeeksDataSet"}}},"index":0,"reference":"U9t2CPLJ63sw6eSBrK_EP"},{"_id":"6ac8d0c6e09f13ca92db3548","component":"data2-core-primitives@Artboard","system":"6ac87c99e24c1a4680e68e1f","displayName":"Home — Mobile","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Home — Mobile"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":390,"height":844}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}}},"reference":"B4XryBz5Dj_4X55j3Xuji"},{"_id":"0913971a644f00d71a18bece","parent":"6ac8d0c6e09f13ca92db3548","component":"les-app@lesFamilyHub","system":"6ac87c99e24c1a4680e68e1f","displayName":"Family Hub (Mobile)","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":390,"height":844}}},"clubs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"clubsLiveDataSet"}},"students":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsStudentsDataSet"}},"subjects":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsSubjectsDataSet"}},"periods":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsPeriodsDataSet"}},"weeks":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isamsWeeksDataSet"}}},"reference":"HaGO6mR0cC6EdQqj1Cq6X"}]}},{"_id":"5fc4faeec8da12be8bf3d08a","component":"data2-core@Data2TableDataSource","system":"5e3b796d6228227ca637d0f4","params":{"paginate":{"default":1000},"super":{},"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"fileId"}},"title":"File ID","component":"data2-core-primitives@ObjectId"},"break":true}],"hooks":{"before":{"all":[{"hook":"softDelete"}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"timestamp","options":{"fields":["createdAt","updatedAt"]}}],"update":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}],"patch":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}]},"after":{"all":[{"hook":"fileUrl","options":{"downloadField":"params.fileUrl","uploadField":"params.uploadFileUrl","enhanceSchema":false}}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"update":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"patch":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"remove":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}]}},"multi":["create"],"useEstimatedDocumentCount":true},"reference":"FileComponentInstancesTableDataSource","updatedAt":"2022-12-19T20:42:51.837Z","createdAt":"2020-11-30T13:59:52.294Z"},{"reference":"ApplicationsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6ac8d32eedc6767b321bc2d3","displayName":"LES Family Hub","reference":"ty0cTR8CRUiz2eiXNh0xW","params":{"domain":{"component":"data2-core-primitives@String","params":{"content":"family-hub"}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"T-_5lnnuG2vdvsGgagl_o"}}},"system":"6ac87c99e24c1a4680e68e1f","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6ac8b33b74abf47a4460607c","component":"data2-core@DataSet","system":"6ac87c99e24c1a4680e68e1f","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"isamsWeeks"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":500}},"reference":"isamsWeeksDataSet"},{"_id":"6ac8b33a78f3730f24d3b61d","component":"data2-core@DataSet","system":"6ac87c99e24c1a4680e68e1f","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"isamsPeriods"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":500}},"reference":"isamsPeriodsDataSet"},{"_id":"6ac8b339e24c1a4680e6b504","component":"data2-core@DataSet","system":"6ac87c99e24c1a4680e68e1f","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"isamsSubjects"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":100}},"reference":"isamsSubjectsDataSet"},{"_id":"6ac8b338e24c1a4680e6b4fb","component":"data2-core@DataSet","system":"6ac87c99e24c1a4680e68e1f","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"isamsStudents"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":10}},"reference":"isamsStudentsDataSet"},{"_id":"6ac88bfe7f8bdfd900d27033","component":"data2-core@DataSet","system":"6ac87c99e24c1a4680e68e1f","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"clubsLive"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":20}},"reference":"clubsLiveDataSet"},{"_id":"6ac8b33b342eee2493760949","component":"http@CustomHTTPDataSource","system":"6ac87c99e24c1a4680e68e1f","params":{"super":{},"find":{"component":"data2-core-flow@Series","params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isams"}},"prop":"sendRequest","args":[{"request":{"disabled":false,"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpRequest","reference":"isams_weeks"}}}]}}]}},"countKey":{"component":"data2-core-primitives@String","params":{"content":"count"}},"recordsKey":{"component":"data2-core-primitives@String","params":{"content":"timetableWeeks"}}},"reference":"isamsWeeks"},{"_id":"6ac8b33ae24c1a4680e6b509","component":"http@CustomHTTPDataSource","system":"6ac87c99e24c1a4680e68e1f","params":{"super":{},"find":{"component":"data2-core-flow@Series","params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isams"}},"prop":"sendRequest","args":[{"request":{"disabled":false,"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpRequest","reference":"isams_periods"}}}]}}]}},"countKey":{"component":"data2-core-primitives@String","params":{"content":"count"}},"recordsKey":{"component":"data2-core-primitives@String","params":{"content":"timetablePeriods"}}},"reference":"isamsPeriods"},{"_id":"6ac8b339edc6767b321b9c93","component":"http@CustomHTTPDataSource","system":"6ac87c99e24c1a4680e68e1f","params":{"super":{},"find":{"component":"data2-core-flow@Series","params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isams"}},"prop":"sendRequest","args":[{"request":{"disabled":false,"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpRequest","reference":"isams_subjects"}}}]}}]}},"countKey":{"component":"data2-core-primitives@String","params":{"content":"count"}},"recordsKey":{"component":"data2-core-primitives@String","params":{"content":"teachingGroups"}}},"reference":"isamsSubjects"},{"_id":"6ac8b33878f3730f24d3b614","component":"http@CustomHTTPDataSource","system":"6ac87c99e24c1a4680e68e1f","params":{"super":{},"find":{"component":"data2-core-flow@Series","params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"isams"}},"prop":"sendRequest","args":[{"request":{"disabled":false,"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpRequest","reference":"isams_students"}}}]}}]}},"countKey":{"component":"data2-core-primitives@String","params":{"content":"count"}},"recordsKey":{"component":"data2-core-primitives@String","params":{"content":"students"}}},"reference":"isamsStudents"},{"_id":"6ac88bfe78f3730f24d39867","component":"http@CustomHTTPDataSource","system":"6ac87c99e24c1a4680e68e1f","params":{"super":{},"find":{"component":"data2-core-flow@Series","params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"sb_legacy"}},"prop":"sendRequest","args":[{"request":{"disabled":false,"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpRequest","reference":"sb_clubs"}}}]}}]}},"countKey":{"component":"data2-core-primitives@String","params":{"content":"count"}},"recordsKey":{"component":"data2-core-primitives@String","params":{"content":"availableEvents"}}},"reference":"clubsLive"}]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}