{"context":{"domain":"memoria-viva"},"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":"2022-03-09T02:01:26.213Z"}]}},{"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}],"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":"2025-11-05T19:23:47.135Z","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":"6a3a6d227659bc47f38e1ff2","name":"memoria-viva","domain":"memoria-viva","visibility":"public","updatedAt":"2026-06-23T11:25:27.558Z","createdAt":"2026-06-23T11:25:22.264Z"}]}},{"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":"6a3a71ed2dc0259f84331fbb","component":"data2-core-types@Component","system":"6a3a6d227659bc47f38e1ff2","params":{"extends":"data2-core-primitives@Block","component":"kmemoriaviva","package":"memoria-viva","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    :host, .root { font-family: -apple-system, 'Segoe UI', Roboto, sans-serif; }\n    .root{height:100%;overflow:auto;background:#faf6ef;color:#2b2b27;box-sizing:border-box}\n    .topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;\n      padding:18px 40px;background:rgba(250,246,239,.92);backdrop-filter:blur(8px);border-bottom:1px solid #e7ded0}\n    .brand{display:flex;flex-direction:column;line-height:1}\n    .brand .b1{font-size:20px;font-weight:800;letter-spacing:.01em;color:#1f4d33}\n    .brand .b2{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#9c8e76;margin-top:4px}\n    .navspace{flex:1}\n    .navlink{font-size:13px;color:#6b6256;cursor:pointer;padding:8px 4px;border-bottom:2px solid transparent}\n    .navlink[data-active]{color:#1f4d33;border-bottom-color:#b5683b;font-weight:600}\n\n    /* HERO */\n    .hero{padding:64px 40px 36px;max-width:1120px;margin:0 auto}\n    .kicker{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#b5683b;font-weight:600}\n    .h1{font-size:44px;line-height:1.08;font-weight:800;color:#1f4d33;margin:14px 0 10px;max-width:760px}\n    .lede{font-size:16px;line-height:1.6;color:#6b6256;max-width:560px}\n    .searchwrap{margin-top:30px;display:flex;gap:10px;align-items:center;max-width:760px}\n    .searchbox{flex:1;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e3d8c6;\n      border-radius:16px;padding:0 18px;height:60px;box-shadow:0 6px 22px rgba(31,77,51,.06)}\n    .searchbox input{flex:1;border:0;outline:0;background:transparent;font-size:16px;color:#2b2b27}\n    .searchbox input::placeholder{color:#b3a892}\n    .gicon{font-size:18px;color:#1f4d33;opacity:.8}\n    .modetoggle{display:flex;background:#efe7d8;border-radius:14px;padding:4px;height:60px;align-items:center}\n    .modebtn{font-size:13px;font-weight:600;padding:10px 16px;border-radius:11px;cursor:pointer;color:#6b6256;white-space:nowrap}\n    .modebtn[data-active]{background:#1f4d33;color:#fff}\n    .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;max-width:900px}\n    .chiplabel{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9c8e76;align-self:center;margin-right:4px}\n    .chip{font-size:13px;padding:7px 14px;border-radius:999px;border:1px solid #e3d8c6;background:#fff;color:#6b6256;cursor:pointer}\n    .chip[data-active]{background:#2d6a47;border-color:#2d6a47;color:#fff}\n\n    /* GRID */\n    .results{max-width:1120px;margin:0 auto;padding:8px 40px 80px}\n    .resmeta{font-size:13px;color:#9c8e76;margin:18px 0 18px}\n    .resmeta b{color:#1f4d33}\n    .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:22px}\n    .card{background:#fff;border-radius:18px;overflow:hidden;border:1px solid #ece3d4;cursor:pointer;\n      transition:transform .16s ease, box-shadow .16s ease;display:flex;flex-direction:column}\n    .card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(31,77,51,.12)}\n    .thumb{height:172px;background-size:cover;background-position:center;position:relative;background-color:#e7ded0}\n    .badge{position:absolute;top:12px;left:12px;font-size:11px;font-weight:600;padding:5px 11px;border-radius:999px;\n      background:rgba(31,77,51,.92);color:#fff;letter-spacing:.02em}\n    .restr{position:absolute;top:12px;right:12px;font-size:10px;font-weight:700;padding:4px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.08em}\n    .r-publico{background:#dff0e4;color:#1f4d33}.r-restrito{background:#f6e7d6;color:#a9622f}.r-sigiloso{background:#f3d9d4;color:#9b3b2c}\n    .cbody{padding:16px 16px 18px}\n    .ctomb{font-size:11px;letter-spacing:.1em;color:#b5683b;font-weight:600}\n    .ctitle{font-size:15px;font-weight:700;line-height:1.32;color:#2b2b27;margin:6px 0 0;\n      display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n    .cscore{margin-top:10px;font-size:11px;color:#9c8e76}\n    .empty{padding:60px 0;text-align:center;color:#9c8e76;font-size:15px}\n    .spin{padding:60px 0;text-align:center;color:#1f4d33;font-size:14px}\n\n    /* DETAIL */\n    .detail{max-width:1120px;margin:0 auto;padding:28px 40px 90px}\n    .back{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#6b6256;cursor:pointer;margin-bottom:22px}\n    .back:hover{color:#1f4d33}\n    .dhead{display:flex;gap:34px;align-items:flex-start;flex-wrap:wrap}\n    .gallery{flex:1 1 480px;min-width:300px}\n    .gmain{width:100%;height:380px;border-radius:20px;background-size:cover;background-position:center;background-color:#e7ded0;border:1px solid #ece3d4}\n    .gthumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}\n    .gth{width:74px;height:56px;border-radius:10px;background-size:cover;background-position:center;cursor:pointer;border:2px solid transparent;background-color:#e7ded0}\n    .gth[data-active]{border-color:#b5683b}\n    .gcount{font-size:11px;color:#9c8e76;margin-top:10px}\n    .dmeta{flex:1 1 360px;min-width:300px}\n    .dtomb{font-size:12px;letter-spacing:.12em;color:#b5683b;font-weight:700}\n    .dtitle{font-size:30px;line-height:1.15;font-weight:800;color:#1f4d33;margin:10px 0 14px}\n    .dtags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}\n    .dtag{font-size:12px;padding:5px 11px;border-radius:999px;background:#efe7d8;color:#6b6256}\n    .ficha{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:14px 30px}\n    .block{background:#fff;border:1px solid #ece3d4;border-radius:16px;padding:18px 20px}\n    .block.full{grid-column:1/-1}\n    .bh{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#b5683b;font-weight:700;margin-bottom:12px}\n    .frow{display:flex;justify-content:space-between;gap:18px;padding:7px 0;border-bottom:1px solid #f4ecdf;font-size:14px}\n    .frow:last-child{border-bottom:0}\n    .fk{color:#9c8e76}.fv{color:#2b2b27;font-weight:600;text-align:right}\n    .desc{font-size:15px;line-height:1.65;color:#48433a}\n    .locdecode{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}\n    .locpart{background:#f4ecdf;border-radius:10px;padding:8px 12px;font-size:13px}\n    .locpart b{color:#1f4d33;display:block;font-size:16px}\n    .locpart span{color:#9c8e76;font-size:11px;text-transform:uppercase;letter-spacing:.08em}\n    .relsec{margin-top:40px}\n    .relh{font-size:18px;font-weight:800;color:#1f4d33;margin-bottom:4px}\n    .relsub{font-size:13px;color:#9c8e76;margin-bottom:18px}\n    .relrail{display:flex;gap:18px;overflow-x:auto;padding-bottom:8px}\n    .relcard{flex:0 0 230px;background:#fff;border:1px solid #ece3d4;border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .16s ease}\n    .relcard:hover{transform:translateY(-3px)}\n    .relthumb{height:130px;background-size:cover;background-position:center;background-color:#e7ded0;position:relative}\n    .relrel{position:absolute;bottom:8px;left:8px;font-size:10px;font-weight:600;background:rgba(181,104,59,.95);color:#fff;padding:3px 9px;border-radius:999px}\n    .relbody{padding:12px 14px}\n    .reltitle{font-size:13px;font-weight:700;line-height:1.3;color:#2b2b27;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n\n    /* COLECOES */\n    .colwrap{max-width:1200px;margin:0 auto;padding:30px 40px 90px}\n    .colhead{margin-bottom:6px}\n    .colh1{font-size:30px;font-weight:800;color:#1f4d33}\n    .colsub{font-size:15px;color:#6b6256;margin:8px 0 14px;line-height:1.55;max-width:620px}\n    .rail{margin-top:36px}\n    .railhead{display:flex;align-items:baseline;gap:12px;padding:0 40px;margin-bottom:14px}\n    .railtitle{font-size:20px;font-weight:800;color:#1f4d33}\n    .railtype{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#b5683b;font-weight:700}\n    .raildesc{font-size:13px;color:#9c8e76;padding:0 40px;margin-bottom:14px;max-width:760px;line-height:1.5}\n    .railscroll{display:flex;gap:18px;overflow-x:auto;padding:4px 40px 16px;scroll-snap-type:x proximity}\n    .railcard{flex:0 0 260px;scroll-snap-align:start;background:#fff;border:1px solid #ece3d4;border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}\n    .railcard:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(31,77,51,.12)}\n    .railthumb{height:150px;background-size:cover;background-position:center;background-color:#e7ded0;position:relative}\n    .railbadge{position:absolute;top:10px;left:10px;font-size:10px;font-weight:600;padding:4px 9px;border-radius:999px;background:rgba(31,77,51,.92);color:#fff}\n    .railbody{padding:13px 15px 16px}\n    .railtomb{font-size:10px;letter-spacing:.1em;color:#b5683b;font-weight:600}\n    .railct{font-size:14px;font-weight:700;line-height:1.3;color:#2b2b27;margin:5px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n    .railnota{font-size:11px;color:#9c8e76;margin-top:7px;font-style:italic;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n\n    /* CADASTRO */\n    .cad{max-width:760px;margin:0 auto;padding:40px 40px 90px}\n    .cadtitle{font-size:30px;font-weight:800;color:#1f4d33}\n    .cadsub{font-size:15px;color:#6b6256;margin:8px 0 8px;line-height:1.55}\n    .aibox{background:linear-gradient(135deg,#1f4d33,#2d6a47);color:#fff;border-radius:18px;padding:20px 22px;margin:22px 0 28px}\n    .aibox .ait{font-size:13px;font-weight:700;letter-spacing:.04em;display:flex;align-items:center;gap:8px}\n    .aibox .ad{font-size:13px;opacity:.85;margin-top:7px;line-height:1.5}\n    .aibtn{margin-top:14px;background:#b5683b;color:#fff;border:0;border-radius:11px;padding:11px 18px;font-size:13px;font-weight:600;cursor:pointer}\n    .field{margin-bottom:18px}\n    .flabel{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#9c8e76;font-weight:600;margin-bottom:7px;display:block}\n    .field input,.field textarea,.field select{width:100%;box-sizing:border-box;border:1px solid #e3d8c6;background:#fff;border-radius:12px;padding:13px 15px;font-size:15px;color:#2b2b27;outline:0;font-family:inherit}\n    .field textarea{min-height:96px;resize:vertical}\n    .savebtn{background:#1f4d33;color:#fff;border:0;border-radius:13px;padding:15px 26px;font-size:15px;font-weight:600;cursor:pointer}\n    .savemsg{margin-top:14px;font-size:14px;color:#2d6a47;font-weight:600}\n  `,\n  render(d2) {\n    const esc = (s) => (s == null ? '' : String(s)).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;');\n    const store = d2.store('navStore');\n    const view = store.get('view', 'busca');\n    const tipologias = ['Museológico','Iconografia','Documento de Biblioteca','Documento de Arquivo','Depoimento','Cosmetoteca','Audiovisual'];\n\n    const topbar = `<div class=\"topbar\">\n      <div class=\"brand\"><span class=\"b1\">Memória Viva</span><span class=\"b2\">Acervo Natura</span></div>\n      <div class=\"navspace\"></div>\n      <span class=\"navlink nav-busca\" ${view==='busca'?'data-active':''}>Acervo</span>\n      <span class=\"navlink nav-col\" ${view==='colecoes'?'data-active':''}>Coleções</span>\n      <span class=\"navlink nav-cad\" ${view==='cadastro'?'data-active':''}>Cadastrar item</span>\n    </div>`;\n\n    if (view === 'detalhe') return `<div class=\"root\">${topbar}${this.renderDetail(d2, esc)}</div>`;\n    if (view === 'colecoes') return `<div class=\"root\">${topbar}${this.renderColecoes(d2, esc)}</div>`;\n    if (view === 'cadastro') return `<div class=\"root\">${topbar}${this.renderCadastro(d2, esc)}</div>`;\n\n    // BUSCA\n    const mode = d2.state.mode || 'semantic';\n    const tipo = d2.state.tipo || '';\n    const restr = d2.state.restr || '';\n    const loading = d2.state.loading;\n    const items = d2.state.items || [];\n    const searched = d2.state.searched;\n    const q = d2.state.q || '';\n\n    const chips = `<div class=\"chips\">\n      <span class=\"chiplabel\">Tipologia</span>\n      ${tipologias.map(t => `<span class=\"chip chip-tipo\" data-val=\"${esc(t)}\" ${tipo===t?'data-active':''}>${esc(t)}</span>`).join('')}\n    </div>\n    <div class=\"chips\">\n      <span class=\"chiplabel\">Acesso</span>\n      ${['publico','restrito','sigiloso'].map(r => `<span class=\"chip chip-restr\" data-val=\"${r}\" ${restr===r?'data-active':''}>${r}</span>`).join('')}\n    </div>`;\n\n    let resultsHtml = '';\n    if (loading) resultsHtml = `<div class=\"spin\">Buscando na memória do acervo…</div>`;\n    else if (searched && !items.length) resultsHtml = `<div class=\"empty\">Nenhum item encontrado. Tente outras palavras ou remova um filtro.</div>`;\n    else if (items.length) {\n      resultsHtml = `<div class=\"resmeta\"><b>${items.length}</b> ${items.length===1?'item':'itens'} ${mode==='semantic'&&q?'· busca por significado':mode==='keyword'&&q?'· busca por palavra':''}</div>\n      <div class=\"grid\">${items.map(it => this.card(it, esc)).join('')}</div>`;\n    } else {\n      resultsHtml = `<div class=\"resmeta\">Explorando o acervo</div><div class=\"grid\">${(d2.state.initial||[]).map(it => this.card(it, esc)).join('')}</div>`;\n    }\n\n    return `<div class=\"root\">\n      ${topbar}\n      <div class=\"hero\">\n        <div class=\"kicker\">Centro de Memória Natura</div>\n        <div class=\"h1\">Cada objeto guarda uma história. Encontre a sua.</div>\n        <div class=\"lede\">Mais de 53 mil itens — produtos, fotografias, depoimentos e documentos — reunidos e buscáveis por significado.</div>\n        <div class=\"searchwrap\">\n          <div class=\"searchbox\"><span class=\"gicon\">⌕</span>\n            <input class=\"qinput\" placeholder=\"${mode==='semantic'?'Descreva o que procura… ex.: perfume masculino dos anos 90':'Busca por título…'}\" value=\"${esc(q)}\"/>\n          </div>\n          <div class=\"modetoggle\">\n            <span class=\"modebtn mode-sem\" ${mode==='semantic'?'data-active':''}>Significado</span>\n            <span class=\"modebtn mode-kw\" ${mode==='keyword'?'data-active':''}>Palavra</span>\n          </div>\n        </div>\n        ${chips}\n      </div>\n      <div class=\"results\">${resultsHtml}</div>\n    </div>`;\n  },\n\n  card(it, esc) {\n    const img = it.imagem_preferencial_url || '';\n    const rc = 'r-' + (it.restricao_acesso || 'restrito');\n    const score = (typeof it._score === 'number') ? `<div class=\"cscore\">relevância ${(it._score*100).toFixed(0)}%</div>` : '';\n    return `<div class=\"card card-open\" data-key=\"${it._id}\" data-id=\"${it._id}\">\n      <div class=\"thumb\" style=\"background-image:url('${esc(img)}')\">\n        <span class=\"badge\">${esc(it.tipologia)}</span>\n        <span class=\"restr ${rc}\">${esc(it.restricao_acesso||'restrito')}</span>\n      </div>\n      <div class=\"cbody\">\n        <div class=\"ctomb\">${esc(it.tombo)}</div>\n        <div class=\"ctitle\">${esc(it.titulo)}</div>\n        ${score}\n      </div>\n    </div>`;\n  },\n\n  renderDetail(d2, esc) {\n    const det = d2.state.detail;\n    if (d2.state.detailLoading || !det) return `<div class=\"detail\"><div class=\"back back-btn\">‹ voltar ao acervo</div><div class=\"spin\">Carregando a ficha completa…</div></div>`;\n    const it = det.item || {};\n    const ativos = det.ativos || [];\n    const relacionados = det.relacionados || [];\n    const relacoes = det.relacoes || [];\n    const relMap = {}; relacoes.forEach(r => relMap[r.item_destino] = r.tipo_relacao);\n    const imgs = ativos.filter(a => a.tipo === 'imagem' || a.tipo === 'video').map(a => a.storage_url).filter(Boolean);\n    const heroImg = (imgs.length ? imgs[d2.state.activeImg || 0] : it.imagem_preferencial_url) || it.imagem_preferencial_url || '';\n\n    // decode localizacao F21 P07 CX 0012 V.02\n    const loc = it.localizacao_fisica || '';\n    const m = loc.match(/F(\\d+)\\s*P(\\d+)\\s*CX\\s*(\\d+)\\s*V\\.?(\\d+)/i);\n    let locDecode = '';\n    if (m) locDecode = `<div class=\"locdecode\">\n      <div class=\"locpart\"><b>${m[1]}</b><span>Fileira</span></div>\n      <div class=\"locpart\"><b>${m[2]}</b><span>Prateleira</span></div>\n      <div class=\"locpart\"><b>${m[3]}</b><span>Caixa</span></div>\n      <div class=\"locpart\"><b>${m[4]}</b><span>Volume</span></div>\n    </div>`;\n\n    const frow = (k, v) => v ? `<div class=\"frow\"><span class=\"fk\">${esc(k)}</span><span class=\"fv\">${esc(v)}</span></div>` : '';\n    const dateFmt = (dv) => { if(!dv) return ''; try { return d2.fmt.date(dv, {dateStyle:'medium'}); } catch(e){ return String(dv); } };\n\n    const tags = (it.tags || []).map(t => `<span class=\"dtag\">${esc(t)}</span>`).join('');\n\n    const thumbs = imgs.length > 1 ? `<div class=\"gthumbs\">${imgs.map((u,i)=>`<div class=\"gth gth-pick\" data-i=\"${i}\" ${i===(d2.state.activeImg||0)?'data-active':''} style=\"background-image:url('${esc(u)}')\"></div>`).join('')}</div>` : '';\n\n    const railHtml = relacionados.length ? `<div class=\"relsec\">\n      <div class=\"relh\">Relacionados</div>\n      <div class=\"relsub\">Esta memória não está sozinha — siga os fios que a conectam ao acervo.</div>\n      <div class=\"relrail\">${relacionados.map(r => {\n        const tr = (relMap[r._id]||'').replace(/_/g,' ');\n        return `<div class=\"relcard relcard-open\" data-key=\"${r._id}\" data-id=\"${r._id}\">\n          <div class=\"relthumb\" style=\"background-image:url('${esc(r.imagem_preferencial_url)}')\">${tr?`<span class=\"relrel\">${esc(tr)}</span>`:''}</div>\n          <div class=\"relbody\"><div class=\"reltitle\">${esc(r.titulo)}</div></div>\n        </div>`;\n      }).join('')}</div>\n    </div>` : '';\n\n    return `<div class=\"detail\">\n      <div class=\"back back-btn\">‹ voltar ao acervo</div>\n      <div class=\"dhead\">\n        <div class=\"gallery\">\n          <div class=\"gmain\" style=\"background-image:url('${esc(heroImg)}')\"></div>\n          ${thumbs}\n          <div class=\"gcount\">${ativos.length} ${ativos.length===1?'ativo digital':'ativos digitais'} vinculados</div>\n        </div>\n        <div class=\"dmeta\">\n          <div class=\"dtomb\">${esc(it.tombo)} · ${esc(it.tipologia)}</div>\n          <div class=\"dtitle\">${esc(it.titulo)}</div>\n          <div class=\"dtags\">${tags}</div>\n        </div>\n      </div>\n      <div class=\"ficha\">\n        <div class=\"block full\"><div class=\"bh\">Contextualização</div><div class=\"desc\">${esc(it.descricao)}</div></div>\n        <div class=\"block\"><div class=\"bh\">Informações básicas</div>\n          ${frow('Tombo', it.tombo)}${frow('Tipologia', it.tipologia)}${frow('Fundo', it.fundo)}${frow('Data do item', it.data_item)}${frow('Quantidade', it.quantidade)}\n        </div>\n        <div class=\"block\"><div class=\"bh\">Identificação</div>\n          ${frow('Notação', it.notacao)}${frow('Notação anterior', it.notacao_anterior)}${frow('Cód. Sophia', it.codigo_item_sophia)}${frow('Origem', it.origem_aquisicao)}\n        </div>\n        <div class=\"block\"><div class=\"bh\">Estado de conservação</div>\n          ${frow('Estado', it.estado_conservacao)}${frow('Acesso', it.restricao_acesso)}${frow('Status', (it.status_catalogacao||'').replace(/_/g,' '))}${frow('Cadastrado por', it.responsavel_cadastro)}${frow('Cadastro', dateFmt(it.data_cadastro))}\n        </div>\n        <div class=\"block\"><div class=\"bh\">Localização</div>\n          ${frow('Lógica', it.localizacao_logica)}\n          <div class=\"frow\"><span class=\"fk\">Física</span><span class=\"fv\">${esc(loc)}</span></div>\n          ${locDecode}\n        </div>\n      </div>\n      ${railHtml}\n    </div>`;\n  },\n\n  renderColecoes(d2, esc) {\n    const rails = d2.state.rails;\n    if (d2.state.railsLoading && !rails) return `<div class=\"colwrap\"><div class=\"spin\">Reunindo as trilhas do acervo…</div></div>`;\n    if (!rails || !rails.length) return `<div class=\"colwrap\"><div class=\"empty\">Nenhuma coleção disponível ainda.</div></div>`;\n    const railsHtml = rails.map(rail => {\n      const itens = rail.itens || [];\n      const cards = itens.map(it => `<div class=\"railcard railcard-open\" data-key=\"${it._id}\" data-id=\"${it._id}\">\n        <div class=\"railthumb\" style=\"background-image:url('${esc(it.imagem_preferencial_url)}')\">\n          <span class=\"railbadge\">${esc(it.tipologia)}</span>\n        </div>\n        <div class=\"railbody\">\n          <div class=\"railtomb\">${esc(it.tombo)}</div>\n          <div class=\"railct\">${esc(it.titulo)}</div>\n          ${it.nota_curatorial?`<div class=\"railnota\">${esc(it.nota_curatorial)}</div>`:''}\n        </div>\n      </div>`).join('');\n      const tipo = (rail.tipo||'').replace(/_/g,' ');\n      return `<div class=\"rail\">\n        <div class=\"railhead\"><span class=\"railtitle\">${esc(rail.titulo)}</span><span class=\"railtype\">${esc(tipo)}</span></div>\n        ${rail.descricao?`<div class=\"raildesc\">${esc(rail.descricao)}</div>`:''}\n        <div class=\"railscroll\">${cards}</div>\n      </div>`;\n    }).join('');\n    return `<div class=\"colwrap\">\n      <div class=\"colhead\"><div class=\"colh1\">Coleções & Linhas do tempo</div>\n      <div class=\"colsub\">Trilhas curadas que conectam o acervo em narrativas — linhas de produto, efemérides e cronologias da memória Natura.</div></div>\n    </div>${railsHtml}`;\n  },\n\n  renderCadastro(d2, esc) {\n    const tipologias = ['Museológico','Iconografia','Documento de Biblioteca','Documento de Arquivo','Depoimento','Cosmetoteca','Audiovisual'];\n    const msg = d2.state.cadMsg;\n    return `<div class=\"cad\">\n      <div class=\"cadtitle\">Cadastrar novo item</div>\n      <div class=\"cadsub\">Registre uma nova memória no acervo. Comece pela tipologia — os campos se ajustam ao tipo do item.</div>\n      <div class=\"aibox\">\n        <div class=\"ait\">✦ Pré-preenchimento por IA</div>\n        <div class=\"ad\">Anexe um documento, áudio ou vídeo e a IA sugere título, descrição e tags — você revisa em vez de digitar do zero. Reduz o cadastro de horas para minutos.</div>\n        <button class=\"aibtn ai-prefill\">Pré-preencher com IA</button>\n      </div>\n      <div class=\"field\"><label class=\"flabel\">Tipologia</label>\n        <select class=\"cad-tipo\">${tipologias.map(t=>`<option ${d2.state.cadTipo===t?'selected':''}>${esc(t)}</option>`).join('')}</select></div>\n      <div class=\"field\"><label class=\"flabel\">Título</label><input class=\"cad-titulo\" value=\"${esc(d2.state.cadTitulo||'')}\" placeholder=\"Ex.: Frasco original Ekos Castanha\"/></div>\n      <div class=\"field\"><label class=\"flabel\">Tombo</label><input class=\"cad-tombo\" value=\"${esc(d2.state.cadTombo||'')}\" placeholder=\"Ex.: MV-CO-00999\"/></div>\n      <div class=\"field\"><label class=\"flabel\">Descrição</label><textarea class=\"cad-desc\" placeholder=\"Descreva o item, sua procedência e contexto…\">${esc(d2.state.cadDesc||'')}</textarea></div>\n      <div class=\"field\"><label class=\"flabel\">Restrição de acesso</label>\n        <select class=\"cad-restr\">${['restrito','publico','sigiloso'].map(r=>`<option ${d2.state.cadRestr===r?'selected':''}>${r}</option>`).join('')}</select></div>\n      <button class=\"savebtn cad-save\">Salvar no acervo</button>\n      ${msg?`<div class=\"savemsg\">${esc(msg)}</div>`:''}\n    </div>`;\n  },\n\n  async runSearch(d2) {\n    d2.state.loading = true; d2.state.searched = true;\n    try {\n      const raw = await d2.rush(d2.params.searchRush).invoke({\n        q: d2.state.q || '', mode: d2.state.mode || 'semantic',\n        tipologia: d2.state.tipo || '', restricao_acesso: d2.state.restr || ''\n      });\n      const res = (raw && raw.data) ? raw.data : raw;\n      d2.state.items = (res && res.items) || [];\n    } catch(e) { d2.state.items = []; d2.log('search error', e); }\n    d2.state.loading = false;\n  },\n\n  async loadRails(d2) {\n    if (d2.state.rails || d2.state.railsLoading) return;\n    d2.state.railsLoading = true;\n    try {\n      const raw = await d2.rush('colecoes-feed').invoke({});\n      const res = (raw && raw.data) ? raw.data : raw;\n      d2.state.rails = (res && res.rails) || [];\n    } catch(e) { d2.state.rails = []; d2.log('rails error', e); }\n    d2.state.railsLoading = false;\n  },\n\n  async openItem(d2, id) {\n    const store = d2.store('navStore');\n    store.set('selectedId', id); store.set('view', 'detalhe');\n    d2.state.detailLoading = true; d2.state.detail = null; d2.state.activeImg = 0;\n    try {\n      const raw = await d2.rush(d2.params.detailRush).invoke({ id });\n      d2.state.detail = (raw && raw.data) ? raw.data : raw;\n    } catch(e) { d2.log('detail error', e); }\n    d2.state.detailLoading = false;\n  },\n\n  mounted(d2) {\n    const store = d2.store('navStore');\n    // initial browse\n    (async () => {\n      try {\n        const raw = await d2.rush(d2.params.searchRush).invoke({ q: '', mode: 'browse' });\n        const res = (raw && raw.data) ? raw.data : raw;\n        d2.state.initial = (res && res.items) || [];\n      } catch(e) {}\n    })();\n\n    d2.on('.nav-busca', 'click', () => { store.set('view','busca'); });\n    d2.on('.nav-col', 'click', () => { store.set('view','colecoes'); this.loadRails(d2); });\n    d2.on('.nav-cad', 'click', () => { store.set('view','cadastro'); });\n    d2.on('.back-btn', 'click', () => { store.set('view','busca'); });\n\n    d2.on('.mode-sem', 'click', () => { d2.state.mode='semantic'; if(d2.state.searched) this.runSearch(d2); });\n    d2.on('.mode-kw', 'click', () => { d2.state.mode='keyword'; if(d2.state.searched) this.runSearch(d2); });\n\n    d2.on('.qinput', 'input', (e,el) => { d2.state.q = el.value; });\n    d2.on('.qinput', 'keydown', (e) => { if (e.key === 'Enter') this.runSearch(d2); });\n\n    d2.on('.chip-tipo', 'click', (e,el) => { d2.state.tipo = (d2.state.tipo===el.dataset.val)?'':el.dataset.val; this.runSearch(d2); });\n    d2.on('.chip-restr', 'click', (e,el) => { d2.state.restr = (d2.state.restr===el.dataset.val)?'':el.dataset.val; this.runSearch(d2); });\n\n    d2.on('.card-open', 'click', (e,el) => { this.openItem(d2, el.dataset.id); });\n    d2.on('.relcard-open', 'click', (e,el) => { this.openItem(d2, el.dataset.id); });\n    d2.on('.gth-pick', 'click', (e,el) => { d2.state.activeImg = Number(el.dataset.i)||0; });\n\n    // cadastro field capture\n    d2.on('.cad-tipo','change',(e,el)=>{d2.state.cadTipo=el.value;});\n    d2.on('.cad-titulo','input',(e,el)=>{d2.state.cadTitulo=el.value;});\n    d2.on('.cad-tombo','input',(e,el)=>{d2.state.cadTombo=el.value;});\n    d2.on('.cad-desc','input',(e,el)=>{d2.state.cadDesc=el.value;});\n    d2.on('.cad-restr','change',(e,el)=>{d2.state.cadRestr=el.value;});\n    d2.on('.ai-prefill','click',()=>{\n      d2.state.cadTitulo = d2.state.cadTitulo || 'Sugestão IA: revisar título';\n      d2.state.cadDesc = d2.state.cadDesc || 'Descrição sugerida automaticamente (stub) — a equipe Perfil Cultural revisa e valida antes de publicar. Integração de OCR/transcrição prevista na evolução.';\n    });\n    d2.on('.cad-save','click',()=>{\n      d2.state.cadMsg = 'Item registrado como submissão pendente (demonstração — gravação real liga ao endpoint de escrita).';\n    });\n  },\n\n  updated(d2) {\n    const root = d2.$('.root'); if (root && d2.store('navStore').get('view') !== d2.state._lastView) { root.scrollTop = 0; d2.state._lastView = d2.store('navStore').get('view'); }\n  }\n};"}},"navStore":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"navStore"}}}},"searchRush":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"searchRush"}}}},"detailRush":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"detailRush"}}}}}}}}}}]}},{"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}}},"reference":"Data2BuilderAuthentication","updatedAt":"2025-10-28T02:48:49.233Z"},{"_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":[]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a3a717f803be63949da6b2f","component":"data2-core-primitives@Artboard","system":"6a3a6d227659bc47f38e1ff2","displayName":"Memoria Viva","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Memoria Viva"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":1024}},"position":{"component":"data2-core-types@Position","params":{"x":1169,"y":2836,"exactX":1168.78,"exactY":2836.19}}},"reference":"KFw4LwxFfGpVWt5SePWq8"},{"_id":"429c4fdaf4e57f289b296731","parent":"6a3a717f803be63949da6b2f","component":"memoria-viva@kmemoriaviva","system":"6a3a6d227659bc47f38e1ff2","displayName":"App","params":{"navStore":{"component":"data2-core-types@ProcessReference","params":{"reference":"nav"}},"searchRush":{"component":"data2-core-types@ProcessReference","params":{"reference":"acervo-search"}},"detailRush":{"component":"data2-core-types@ProcessReference","params":{"reference":"item-detail"}},"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":1024}}}},"index":0,"reference":"SbiFtrhL4OvQt8k7FonG7"}]}},{"_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":"6a3a72147659bc47f38e2976","displayName":"Memória Viva","reference":"N6ubvWsBBWDqVpVbuCR3k","params":{"name":{"component":"data2-core-primitives@String","params":{"content":"Memória Viva"}},"shortName":{"component":"data2-core-primitives@String","params":{"content":"Memória Viva"}},"domain":{"component":"data2-core-primitives@String","params":{"content":"acervo"}},"serverSideRendering":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"KFw4LwxFfGpVWt5SePWq8"}},"responseHeaders":{"X-Frame-Options":{"component":"data2-core-primitives@String","params":{"content":""}},"Content-Security-Policy":{"component":"data2-core-primitives@String","params":{"content":""}},"X-XSS-Protection":{"component":"data2-core-primitives@String","params":{"content":""}}}},"system":"6a3a6d227659bc47f38e1ff2","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}