{"context":{"domain":"people-roger-valim"},"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":"6af347e8eee50b21cc12f02a","name":"Roger Valim","domain":"people-roger-valim","visibility":"private","updatedAt":"2026-11-10T16:35:52.640Z","createdAt":"2026-11-10T16:35:52.640Z"}]}},{"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":"6af36830ac1b596398dcf007","component":"data2-core-types@Component","system":"6af347e8eee50b21cc12f02a","params":{"extends":"data2-core-primitives@Block","component":"lp_boas_vindas","package":"people-roger-valim","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 LEARN = 'https://learn.data2.app/docs/'\nconst BUILDER = 'https://people-roger-valim.data2.qa'\n\nconst PASSOS = [\n  ['seu-primeiro-artboard', 'Seu primeiro artboard', 'Crie o Artboard, desenhe blocos e ligue tudo a uma Application com endereço na web.', [\n    'No primeiro acesso, clique no quadrado e adicione um Artboard: é onde a página é desenhada.',\n    'Navegue pelo canvas: segure Espaço e arraste; use o scroll para dar zoom.',\n    'Tecla B ativa a Block Tool: clique e arraste para desenhar um bloco. Tecla V volta para a seleção.',\n    'Com o bloco selecionado, o Inspector mostra os parâmetros: mude Fill (cor), Text e Text Size (ex.: 32).',\n    'Clique no Artboard para salvar e use Preview para ver como está ficando.',\n    'Duplo clique no fundo cinza → Application. Em Domain escreva app; em Entry Point escolha data2-core-primitives@Artboard e o seu Artboard.',\n    'Dê Play na Application: sua página inicial está no ar.'\n  ]],\n  ['trabalhando-com-tabelas', 'Trabalhando com tabelas', 'Guarde dados numa Data² Table, crie campos de texto e botões que gravam registros e configure um Router.'],\n  ['componentes-e-reference', 'Reutilizando Artboards', 'Duas formas de reaproveitar telas: referenciar um Artboard ou transformá-lo em Componente.'],\n  ['repetidores', 'Repetidores e imagens', 'Monte uma seção de depoimentos que se repete a partir de uma tabela, com foto de cada cliente.'],\n  ['ui-states', 'Estados de interface', 'Use UI States para mudar a tela conforme a situação, como um botão com estado de carregando.'],\n  ['autenticacao', 'Autenticação', 'Proteja páginas com a Data² ID Authentication Strategy: tabela de usuários, tela de login e rota protegida.'],\n  ['arquivos', 'Arquivos e troca de tipo', 'Adicione um banner, ajuste dimensões para cada tamanho de tela e mostre conteúdo condicional.']\n]\n\nconst GUIAS = [\n  ['how-to/porcelain', 'Data2 Porcelain', 'O design system pronto para usar nas suas telas.', '◆'],\n  ['how-to/rush/intro', 'Além da interface (Rush)', 'Lógica no servidor: endpoints, automações e agendamentos.', '⚡'],\n  ['how-to/external-integrations/http-client', 'Integrações externas', 'Conecte APIs de terceiros com HttpClient.', '⇄'],\n  ['how-to/chatbot-tutorial/intro', 'Construindo um ChatBot', 'Um assistente conversacional do zero, em 6 passos.', '💬'],\n  ['how-to/using-domain-assistant', 'Domain Assistant', 'O assistente que ajuda a criar features e tira dúvidas.', '✦'],\n  ['how-to/configure-custom-domain', 'Domínio customizado', 'Aponte sua aplicação para um domínio próprio.', '🌐'],\n  ['how-to/security-best-practices', 'Boas práticas de segurança', 'O que todo projeto precisa seguir para não vazar dados.', '🔒'],\n  ['how-to/a11y', 'Acessibilidade', 'Telas que todo mundo consegue usar.', '♿'],\n  ['how-to/pwa', 'Progressive Web Apps', 'Sua aplicação instalável, como um app nativo.', '📱']\n]\n\nfunction esc(s) { return String(s == null ? '' : s).replace(/[&<>\"']/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c])) }\n\nfunction embedUrl(u) {\n  if (!u) return null\n  let m = u.match(/(?:youtube\\.com\\/watch\\?v=|youtu\\.be\\/|youtube\\.com\\/embed\\/|youtube\\.com\\/shorts\\/)([\\w-]{6,})/)\n  if (m) return { kind: 'iframe', src: 'https://www.youtube.com/embed/' + m[1] + '?rel=0' }\n  m = u.match(/vimeo\\.com\\/(?:video\\/)?(\\d+)/)\n  if (m) return { kind: 'iframe', src: 'https://player.vimeo.com/video/' + m[1] }\n  m = u.match(/loom\\.com\\/(?:share|embed)\\/([\\w]+)/)\n  if (m) return { kind: 'iframe', src: 'https://www.loom.com/embed/' + m[1] }\n  m = u.match(/drive\\.google\\.com\\/file\\/d\\/([\\w-]+)/)\n  if (m) return { kind: 'iframe', src: 'https://drive.google.com/file/d/' + m[1] + '/preview' }\n  if (/\\.(mp4|webm|mov)(\\?|$)/i.test(u) || /data2\\.media\\/file\\//.test(u)) return { kind: 'video', src: u }\n  return { kind: 'iframe', src: u }\n}\n\nconst ARROW = '<svg viewBox=\"0 0 24 24\" class=\"ar\"><path d=\"M5 12h14M13 6l6 6-6 6\"/></svg>'\n\nexport default {\n  css: `\n    :host { all: initial; }\n    * { box-sizing: border-box; margin: 0; padding: 0; }\n    .lp { --navy: #181E4B; --coral: #DF6951; --sun: #F1A501; --peach: #FFF1DA; --txt: #5E6282; --line: #ECEAF3;\n      position: absolute; inset: 0; overflow-y: auto; overflow-x: hidden; background: #fff; color: var(--navy);\n      font-family: 'Poppins', -apple-system, 'Segoe UI', sans-serif; font-size: 16px; scroll-behavior: smooth; }\n    a { color: inherit; text-decoration: none; }\n    .wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; position: relative; }\n    .blob { position: absolute; top: 0; right: 0; width: 49%; height: 920px; background: var(--peach); border-bottom-left-radius: 46% 34%; border-top-left-radius: 14% 22%; z-index: 0; }\n    nav.top { position: relative; z-index: 3; display: flex; align-items: center; gap: 40px; padding: 34px 0; }\n    .logo { font-weight: 700; font-size: 32px; letter-spacing: -.03em; }\n    .logo sup { color: var(--sun); font-size: 20px; }\n    .links { display: flex; gap: 38px; margin-left: auto; font-weight: 500; font-size: 16px; }\n    .links button, .menu-b { background: none; border: 0; font: inherit; color: inherit; cursor: pointer; }\n    .links button:hover { color: var(--coral); }\n    .ghost { border: 1.5px solid var(--navy); border-radius: 6px; padding: 9px 22px; font-weight: 500; }\n    .ghost:hover { background: var(--navy); color: #fff; }\n    .hero { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr 1fr; gap: 20px; align-items: center; min-height: 740px; padding-bottom: 60px; }\n    .eyebrow { color: var(--coral); font-weight: 700; font-size: 18px; letter-spacing: .04em; text-transform: uppercase; }\n    h1 { font-family: 'Volkhov', Georgia, serif; font-weight: 700; font-size: 76px; line-height: 1.12; letter-spacing: -.035em; margin: 22px 0 28px; }\n    h1 .u { position: relative; white-space: nowrap; }\n    h1 .u::after { content: ''; position: absolute; left: -6px; right: -10px; bottom: 8px; height: 12px; background: var(--coral); border-radius: 60% 40% 70% 30% / 60% 50% 50% 40%; transform: rotate(-1.5deg); z-index: -1; opacity: .9; }\n    .lead { color: var(--txt); font-size: 16.5px; line-height: 1.85; max-width: 470px; font-weight: 500; }\n    .cta { display: flex; align-items: center; gap: 44px; margin-top: 38px; flex-wrap: wrap; }\n    .btn { background: var(--sun); color: #fff; border: 0; border-radius: 10px; padding: 19px 34px; font: inherit; font-weight: 500; font-size: 18px; cursor: pointer; box-shadow: 0 20px 35px rgba(241,165,1,.18); }\n    .btn:hover { filter: brightness(1.05); transform: translateY(-1px); }\n    .play { display: flex; align-items: center; gap: 22px; background: none; border: 0; font: inherit; color: var(--txt); font-size: 18px; cursor: pointer; }\n    .play i { width: 52px; height: 52px; border-radius: 50%; background: var(--coral); display: flex; align-items: center; justify-content: center; box-shadow: 0 15px 30px rgba(223,105,81,.35); }\n    .play i::after { content: ''; border-left: 13px solid #fff; border-top: 8px solid transparent; border-bottom: 8px solid transparent; margin-left: 4px; }\n    .visual { position: relative; height: 680px; display: flex; align-items: flex-end; justify-content: center; }\n    .photo { position: relative; z-index: 2; width: 92%; max-width: 520px; height: 96%; object-fit: contain; object-position: bottom center; filter: drop-shadow(0 30px 40px rgba(24,30,75,.18)); }\n    .ph { position: relative; z-index: 2; width: 380px; height: 470px; border-radius: 200px 200px 40px 40px; background: linear-gradient(180deg, #FFE2B5, #F7C98A); display: flex; flex-direction: column; align-items: center; justify-content: flex-end; overflow: hidden; margin-bottom: 40px; }\n    .ph .hd { width: 150px; height: 150px; border-radius: 50%; background: #E9A863; margin-bottom: 18px; }\n    .ph .bd { width: 300px; height: 190px; border-radius: 150px 150px 0 0; background: var(--coral); }\n    .ph span { position: absolute; top: 46%; font-size: 13px; font-weight: 600; color: var(--navy); background: rgba(255,255,255,.8); padding: 6px 12px; border-radius: 999px; }\n    .shadow { position: absolute; bottom: 18px; left: 18%; right: 14%; height: 34px; background: radial-gradient(closest-side, rgba(24,30,75,.18), transparent); z-index: 1; }\n    .chip { position: absolute; z-index: 3; background: #fff; border-radius: 16px; padding: 12px 16px; box-shadow: 0 18px 40px rgba(24,30,75,.12); display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; animation: fl 6s ease-in-out infinite; }\n    .chip em { font-style: normal; width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 17px; }\n    .chip small { display: block; font-weight: 500; color: var(--txt); font-size: 12px; }\n    .c1 { top: 18%; left: -2%; } .c1 em { background: #FDE7E2; color: var(--coral); }\n    .c2 { top: 8%; right: 0; animation-delay: -2s; } .c2 em { background: #FFF3D6; color: var(--sun); }\n    .c3 { bottom: 22%; right: -4%; animation-delay: -4s; } .c3 em { background: #E4E6F7; color: var(--navy); }\n    @keyframes fl { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }\n    section { position: relative; z-index: 2; padding: 90px 0; }\n    .sub { color: var(--txt); font-weight: 600; font-size: 18px; text-align: center; text-transform: uppercase; letter-spacing: .04em; }\n    h2 { font-family: 'Volkhov', Georgia, serif; font-size: 48px; line-height: 1.2; text-align: center; margin: 10px auto 18px; max-width: 760px; letter-spacing: -.02em; }\n    .sec-lead { text-align: center; color: var(--txt); max-width: 640px; margin: 0 auto 50px; line-height: 1.75; }\n    .intro { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; }\n    .card { background: #fff; border-radius: 28px; padding: 34px; box-shadow: 0 30px 60px rgba(24,30,75,.07); border: 1px solid var(--line); }\n    .card h3 { font-size: 21px; margin-bottom: 14px; }\n    .card p { color: var(--txt); line-height: 1.75; }\n    .build { display: grid; gap: 14px; margin-top: 22px; }\n    .build div { display: flex; gap: 14px; align-items: center; color: var(--navy); font-weight: 500; }\n    .build b { width: 42px; height: 42px; flex: none; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 18px; }\n    .req { background: var(--navy); color: #fff; border: 0; }\n    .req p { color: #C9CCE6; }\n    .req li { list-style: none; display: flex; gap: 12px; margin-top: 18px; line-height: 1.55; color: #E8E9F6; }\n    .req li i { font-style: normal; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--sun); color: var(--navy); font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 1px; }\n    .req a.ok { display: inline-flex; gap: 8px; align-items: center; margin-top: 26px; background: var(--sun); color: var(--navy); font-weight: 600; padding: 12px 20px; border-radius: 10px; }\n    .ar { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2; }\n    .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }\n    .step { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 28px 26px 24px; display: flex; flex-direction: column; gap: 10px; transition: transform .2s, box-shadow .2s; }\n    .step:hover { transform: translateY(-4px); box-shadow: 0 26px 50px rgba(24,30,75,.08); }\n    .step .n { font-family: 'Volkhov', Georgia, serif; font-size: 40px; color: var(--coral); line-height: 1; }\n    .step h3 { font-size: 19px; }\n    .step p { color: var(--txt); line-height: 1.65; font-size: 15px; flex: 1; }\n    .step a { display: inline-flex; gap: 6px; align-items: center; color: var(--coral); font-weight: 600; font-size: 14px; margin-top: 6px; }\n    .step.big { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.4fr; gap: 36px; background: var(--peach); border: 0; padding: 38px; }\n    .step.big:hover { transform: none; box-shadow: none; }\n    .step.big ol { list-style: none; counter-reset: k; display: grid; gap: 12px; }\n    .step.big li { counter-increment: k; display: flex; gap: 14px; line-height: 1.6; color: var(--navy); font-size: 15px; }\n    .step.big li::before { content: counter(k); flex: none; width: 28px; height: 28px; border-radius: 8px; background: #fff; color: var(--coral); font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; }\n    .step.big .tag { align-self: flex-start; background: var(--coral); color: #fff; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; letter-spacing: .03em; }\n    kbd { font-family: inherit; background: #fff; border: 1px solid #E6D3B3; border-bottom-width: 2px; border-radius: 5px; padding: 0 6px; font-size: 13px; font-weight: 600; }\n    .guias { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }\n    .guia { display: flex; gap: 16px; align-items: flex-start; padding: 22px; border-radius: 20px; background: #fff; border: 1px solid var(--line); transition: border-color .2s, transform .2s; }\n    .guia:hover { border-color: var(--sun); transform: translateY(-2px); }\n    .guia em { font-style: normal; flex: none; width: 46px; height: 46px; border-radius: 14px; background: var(--peach); display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--coral); }\n    .guia b { display: block; font-size: 16px; margin-bottom: 4px; }\n    .guia span { color: var(--txt); font-size: 14px; line-height: 1.55; }\n    .vid { background: var(--navy); border-radius: 36px; padding: 56px; color: #fff; display: grid; grid-template-columns: 1fr 1.6fr; gap: 44px; align-items: center; }\n    .vid h2 { color: #fff; text-align: left; font-size: 40px; margin: 10px 0 16px; }\n    .vid .sub { text-align: left; color: var(--sun); }\n    .vid p { color: #C9CCE6; line-height: 1.75; }\n    .frame { position: relative; aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: #0F1438; box-shadow: 0 30px 60px rgba(0,0,0,.35); }\n    .frame iframe, .frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }\n    .empty { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: #9EA3CF; font-size: 15px; }\n    .empty i { width: 70px; height: 70px; border-radius: 50%; background: var(--coral); display: flex; align-items: center; justify-content: center; }\n    .empty i::after { content: ''; border-left: 18px solid #fff; border-top: 11px solid transparent; border-bottom: 11px solid transparent; margin-left: 6px; }\n    footer { position: relative; z-index: 2; padding: 70px 0 50px; text-align: center; }\n    footer h2 { margin-bottom: 26px; }\n    footer .small { color: var(--txt); font-size: 14px; margin-top: 40px; }\n    .menu-b { display: none; width: 44px; height: 44px; border-radius: 10px; margin-left: auto; align-items: center; justify-content: center; }\n    .menu-b svg { width: 26px; height: 26px; stroke: var(--navy); fill: none; stroke-width: 2; }\n    @media (max-width: 1080px) {\n      h1 { font-size: 58px; }\n      .hero { grid-template-columns: 1fr 1fr; min-height: 620px; }\n      .visual { height: 560px; }\n      .steps, .guias { grid-template-columns: repeat(2, 1fr); }\n      .links { gap: 24px; }\n    }\n    @media (max-width: 820px) {\n      .wrap { padding: 0 20px; }\n      nav.top { padding: 22px 0; gap: 12px; }\n      .menu-b { display: inline-flex; }\n      .links { display: none; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; gap: 4px; background: #fff; border-radius: 18px; padding: 12px; box-shadow: 0 20px 50px rgba(24,30,75,.15); }\n      .lp.open .links { display: flex; }\n      .links button, .links a { text-align: left; padding: 12px 14px; border-radius: 10px; }\n      .links .ghost { text-align: center; }\n      .blob { width: 100%; height: 640px; top: 520px; border-radius: 50% 50% 0 0 / 18% 18% 0 0; }\n      .hero { grid-template-columns: 1fr; min-height: 0; padding-top: 10px; gap: 10px; }\n      h1 { font-size: 44px; margin: 16px 0 20px; }\n      .eyebrow { font-size: 14px; }\n      .cta { gap: 26px; margin-top: 28px; }\n      .btn { padding: 16px 26px; font-size: 16px; }\n      .visual { height: 480px; }\n      .ph { width: 300px; height: 380px; }\n      .c1 { left: 0; } .c3 { right: 0; }\n      section { padding: 60px 0; }\n      h2 { font-size: 34px; }\n      .intro, .vid, .step.big { grid-template-columns: 1fr; }\n      .steps, .guias { grid-template-columns: 1fr; }\n      .vid { padding: 30px 22px; border-radius: 26px; }\n      .vid h2 { font-size: 30px; }\n      .card, .step.big { padding: 26px 22px; }\n    }\n  `,\n\n  render(d2) {\n    if (typeof document !== 'undefined' && !document.getElementById('lpbv-fonts')) {\n      const l = document.createElement('link')\n      l.id = 'lpbv-fonts'; l.rel = 'stylesheet'\n      l.href = 'https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Volkhov:wght@700&display=swap'\n      document.head.appendChild(l)\n    }\n    const s = d2.state\n    const nome = d2.param('nome') || 'Roger'\n    const foto = d2.param('foto')\n    const ev = embedUrl(d2.param('video'))\n\n    const nav = '<nav class=\"top\"><div class=\"logo\">Data<sup>²</sup></div>' +\n      '<div class=\"links\"><button data-go=\"intro\">Introdução</button><button data-go=\"passos\">Primeiros passos</button><button data-go=\"guias\">Guias</button><button data-go=\"video\">Vídeo</button>' +\n      '<a class=\"ghost\" href=\"' + BUILDER + '\" target=\"_blank\" rel=\"noopener\">Abrir o Builder</a></div>' +\n      '<button class=\"menu-b\" data-menu aria-label=\"Menu\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 7h16M4 12h16M4 17h16\"/></svg></button></nav>'\n\n    const visual = '<div class=\"visual\"><div class=\"shadow\"></div>' +\n      (foto ? '<img class=\"photo\" src=\"' + esc(foto) + '\" alt=\"' + esc(nome) + '\">' : '<div class=\"ph\"><div class=\"hd\"></div><div class=\"bd\"></div><span>Foto do ' + esc(nome) + '</span></div>') +\n      '<div class=\"chip c1\"><em>▦</em><div>Artboards<small>suas telas</small></div></div>' +\n      '<div class=\"chip c2\"><em>⚡</em><div>Rush<small>lógica no servidor</small></div></div>' +\n      '<div class=\"chip c3\"><em>☷</em><div>Tabelas<small>seus dados</small></div></div></div>'\n\n    const hero = '<div class=\"hero\"><div><div class=\"eyebrow\">Bem-vindo ao time, ' + esc(nome) + '</div>' +\n      '<h1>Crie, <span class=\"u\">publique</span> e dê vida às suas ideias</h1>' +\n      '<p class=\"lead\">O Data² é uma plataforma feita para que pessoas se expressem digitalmente. Este é o seu espaço: aqui estão o caminho para dar os primeiros passos, os guias para ir além e um vídeo para começar.</p>' +\n      '<div class=\"cta\"><button class=\"btn\" data-go=\"passos\">Começar agora</button><button class=\"play\" data-go=\"video\"><i></i>Assistir ao vídeo</button></div></div>' + visual + '</div>'\n\n    const intro = '<section id=\"intro\"><div class=\"sub\">Introdução</div><h2>O que você vai construir</h2>' +\n      '<p class=\"sec-lead\">O guia oficial leva você do zero a um site completo, usando só o Builder.</p>' +\n      '<div class=\"intro\"><div class=\"card\"><h3>Um website com três páginas</h3><p>Ao final dos primeiros passos, você terá publicado:</p><div class=\"build\">' +\n      '<div><b style=\"background:#FDE7E2;color:#DF6951\">⌂</b>Uma página inicial</div>' +\n      '<div><b style=\"background:#FFF3D6;color:#F1A501\">☷</b>Uma página para administrar clientes, que exige autenticação</div>' +\n      '<div><b style=\"background:#E4E6F7;color:#181E4B\">⚿</b>Uma página de login</div></div></div>' +\n      '<div class=\"card req\"><h3>Antes de começar</h3><p>Os pré-requisitos são poucos, e o primeiro você já tem.</p><ul>' +\n      '<li><i>✓</i>Acesso ao Builder de um sistema Data². O seu já está criado: people-roger-valim.</li>' +\n      '<li><i>✓</i>Google Chrome, de preferência na versão mais recente.</li></ul>' +\n      '<a class=\"ok\" href=\"' + BUILDER + '\" target=\"_blank\" rel=\"noopener\">Abrir meu Builder ' + ARROW + '</a></div></div></section>'\n\n    const big = PASSOS[0]\n    const passos = '<section id=\"passos\"><div class=\"sub\">Primeiros passos</div><h2>Do primeiro bloco ao site no ar, em 7 etapas</h2>' +\n      '<p class=\"sec-lead\">Siga na ordem. Cada etapa tem um tutorial completo no Data² Learn.</p><div class=\"steps\">' +\n      '<div class=\"step big\"><div style=\"display:flex;flex-direction:column;gap:12px\"><span class=\"tag\">COMECE POR AQUI</span><div class=\"n\">01</div><h3 style=\"font-size:26px\">' + big[1] + '</h3><p>' + big[2] + '</p>' +\n      '<p>Atalhos que você vai usar o tempo todo: <kbd>B</kbd> bloco, <kbd>V</kbd> seleção, <kbd>Espaço</kbd> arrastar o canvas.</p>' +\n      '<a href=\"' + LEARN + 'primeiros-passos/' + big[0] + '\" target=\"_blank\" rel=\"noopener\">Abrir o tutorial completo ' + ARROW + '</a></div>' +\n      '<ol>' + big[3].map((t) => '<li>' + esc(t) + '</li>').join('') + '</ol></div>' +\n      PASSOS.slice(1).map((p, i) => '<div class=\"step\"><div class=\"n\">' + String(i + 2).padStart(2, '0') + '</div><h3>' + p[1] + '</h3><p>' + p[2] + '</p><a href=\"' + LEARN + 'primeiros-passos/' + p[0] + '\" target=\"_blank\" rel=\"noopener\">Ver tutorial ' + ARROW + '</a></div>').join('') +\n      '</div></section>'\n\n    const guias = '<section id=\"guias\"><div class=\"sub\">Guias</div><h2>Quando quiser ir além</h2>' +\n      '<p class=\"sec-lead\">Guias que ensinam a resolver um problema ou usar um serviço específico.</p><div class=\"guias\">' +\n      GUIAS.map((g) => '<a class=\"guia\" href=\"' + LEARN + g[0] + '\" target=\"_blank\" rel=\"noopener\"><em>' + g[3] + '</em><div><b>' + g[1] + '</b><span>' + g[2] + '</span></div></a>').join('') +\n      '</div></section>'\n\n    const frame = ev\n      ? (ev.kind === 'video' ? '<video src=\"' + esc(ev.src) + '\" controls playsinline preload=\"metadata\"></video>'\n        : '<iframe src=\"' + esc(ev.src) + '\" title=\"Vídeo de boas-vindas\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen\" allowfullscreen></iframe>')\n      : '<div class=\"empty\"><i></i>O vídeo de boas-vindas entra aqui</div>'\n    const video = '<section id=\"video\"><div class=\"vid\"><div><div class=\"sub\">Vídeo</div><h2>Comece por aqui</h2><p>Um passeio rápido pelo Data² para você se situar antes de abrir o Builder.</p></div>' +\n      '<div class=\"frame\" data-d2-static>' + frame + '</div></div></section>'\n\n    const footer = '<footer><h2>Pronto para o primeiro Artboard?</h2><a class=\"btn\" href=\"' + BUILDER + '\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block\">Abrir meu Builder</a>' +\n      '<p class=\"small\">Conteúdo baseado no <a href=\"' + LEARN + 'intro\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration:underline\">Data² Learn</a> · Feito com Data²</p></footer>'\n\n    return '<div class=\"lp' + (s.menu ? ' open' : '') + '\"><div class=\"blob\"></div><div class=\"wrap\">' + nav + hero + intro + passos + guias + video + footer + '</div></div>'\n  },\n\n  mounted(d2) {\n    const s = d2.state\n    d2.on('[data-menu]', 'click', () => { s.menu = !s.menu })\n    d2.on('[data-go]', 'click', (e) => {\n      const id = e.target.closest('[data-go]').dataset.go\n      s.menu = false\n      const el = d2.$('#' + id), lp = d2.$('.lp')\n      if (el && lp) lp.scrollTo({ top: el.getBoundingClientRect().top - lp.getBoundingClientRect().top + lp.scrollTop - 10, behavior: 'smooth' })\n    })\n  }\n}"}},"foto":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"foto"}}}},"video":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"video"}}}},"nome":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"nome"}}}}}}}}}}]}},{"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":{"component":"data2-core-types@Getter","displayName":"isData2User","params":{"module":{"component":"data2-core-functions@Match","params":{"pattern":{"component":"data2-core-types@Regex","params":{"pattern":"@data2\\.app$","flags":"i"}},"text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.email"}}}}}},"prop":{"component":"data2-core-primitives@String","params":{"content":"0"}}}},"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":{"component":"data2-core-flow@If","displayName":"management exception never picks the system","params":{"compare":{"component":"data2-core-logical-operators@Or","params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}}},{"component":"data2-core-logical-operators@Not","params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}}}}}]}},"then":{"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"else":{"d2_app":"management"}}},"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-10-29T19:05:43.007Z","updateMetadata":{"updatedBy":{"user":"5f1609be1ca96def427e1559"}}},{"_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"},{"component":"data2-core@DataSet","reference":"SessionsDataSet","params":{"requiresConfirmation":false,"pk":"key","datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"data2sessionsdatasource"}}}},{"component":"data2-core@ServerSessionsDataSource","reference":"data2sessionsdatasource","params":{}},{"reference":"UsersTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"_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}},"policies":[{"component":"data2-core-auth@PublicPolicy","params":{"reason":"Explicit so data2 can go private, 2026-11-05. Access is decided by the drive/file gate (applyFileTableGates, docs/drive-file-access.md), which runs after this policy; same behavior as today."}}]},"reference":"FileComponentInstancesDataSet","updatedAt":"2026-11-05T17:23:34.217Z","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"},"policies":[{"component":"data2-core-auth@PublicPolicy","params":{"reason":"Explicit so data2 can go private, 2026-11-05. Access is decided by the drive/file gate (applyFileTableGates, docs/drive-file-access.md), which runs after this policy; same behavior as today."}}]},"reference":"OneFileComponentInstancesDataSet","updatedAt":"2026-11-05T17:23:34.254Z","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}},"policies":[{"component":"data2-core-auth@PublicPolicy","params":{"reason":"Explicit so data2 can go private, 2026-11-05. Access is decided by the drive/file gate (applyFileTableGates, docs/drive-file-access.md), which runs after this policy; same behavior as today."}}]},"reference":"DriveFileComponentInstancesDataSet","updatedAt":"2026-11-05T17:23:34.347Z","createdAt":"2023-02-16T14:27:07.797Z"},{"reference":"ServiceComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6af367daaf4afc0f77a22420","component":"data2-core-primitives@Artboard","system":"6af347e8eee50b21cc12f02a","displayName":"Boas-vindas","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Boas-vindas"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}}},"reference":"zoouph3veT0HwrXBrDvgU"},{"_id":"e2df5b863c0128ca116228b9","parent":"6af367daaf4afc0f77a22420","component":"people-roger-valim@lp_boas_vindas","system":"6af347e8eee50b21cc12f02a","displayName":"LP Boas-vindas","params":{"nome":"Roger","super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}}}},"reference":"v8_r25AqYGJoNh5BVQlDn"}]}},{"_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":"6af368432fc5a88981203a08","displayName":"Boas-vindas","reference":"F5PRsIUZDiNUP2JXE5jPD","params":{"domain":{"component":"data2-core-primitives@String","params":{"content":"boas-vindas"}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"zoouph3veT0HwrXBrDvgU"}}},"system":"6af347e8eee50b21cc12f02a","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}