{"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)); -webkit-mask-image: linear-gradient(to bottom, #000 82%, transparent 100%); mask-image: linear-gradient(to bottom, #000 82%, transparent 100%); }\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"}}}}}}}}}},{"_id":"6af4818df39dff5a456fca62","component":"data2-core-types@Component","system":"6af347e8eee50b21cc12f02a","params":{"extends":"data2-core-primitives@Block","component":"video_esteve_backoffice","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 e=function(){const e=e=>Math.max(0,Math.min(1,e)),t=(t,a,i)=>e((t-a)/(i-a)),a=t=>1-Math.pow(1-e(t),3),i=e=>String(e).replace(/[&<>\"']/g,e=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"}[e])),s={fadeFromRight(e,s,o,r={}){const n=r.stagger||.11,l=r.dur||.5,c=r.dx||30;if(!e._words){const t=e.textContent.split(\" \");e.innerHTML=t.map(e=>'<span style=\"display:inline-block\">'+i(e)+\"</span>\").join(\" \"),e._words=Array.from(e.children)}e._words.forEach((e,i)=>{const r=a(t(s,o+i*n,o+i*n+l));e.style.opacity=r,e.style.transform=\"translateX(\"+((1-r)*c).toFixed(1)+\"px)\"})}},o={clamp01:e,lerp:(e,t,a)=>e+(t-e)*a,seg:t,eo:a,ei:t=>Math.pow(e(t),3),eio:t=>(t=e(t))<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,eob:(t,a=1.4)=>{t=e(t);return 1+(a+1)*Math.pow(t-1,3)+a*Math.pow(t-1,2)},rng:e=>{let t=2654435761*e>>>0||1;return()=>(t^=t<<13,t>>>=0,t^=t>>>17,t^=t<<5,t>>>=0,t/4294967296)},breathe:(e,t=.02,a=3)=>1+t*Math.sin(2*Math.PI*e/a),esc:i,streamed:(e,t,a,i)=>e.slice(0,Math.max(0,Math.floor((t-a)*i))),TextFx:s,h:e=>{const t=document.createElement(\"template\");if(t.innerHTML=e.trim(),1===t.content.children.length)return t.content.firstElementChild;const a=document.createElement(\"div\");return a.style.display=\"contents\",a.append(t.content),a},W:1920,H:1080},r={};let n=null;const l={kitFor:()=>Object.assign({},o,{scene(e,t){r[e]=t},scenes(){},score(e){n=e}}),async start(t){const a=l.root.querySelector(\"#stage\");let i=0;const s=t.scenes.map(e=>{const t=Object.assign({},e,{start:i});return i+=e.dur,t}),c=i;for(const e of s){const t=document.createElement(\"div\");t.className=\"scene\",t.style.display=\"none\",a.appendChild(t);const i=Object.assign({},o,{stage:t,dur:e.dur,start:e.start});e.kit=i,e.div=t,e.def=r[e.id];try{e.def&&e.def.init&&await e.def.init.call(e.def,i)}catch(t){console.error(\"init\",e.id,t)}}let d=null;const p=l.root.querySelector(\"#corner\");function h(e){e=Math.max(0,Math.min(c-.001,e));const a=s.find(t=>e>=t.start&&e<t.start+t.dur)||s[s.length-1];d!==a&&(d&&(d.div.style.display=\"none\"),a.div.style.display=\"block\",d=a);try{a.def.render.call(a.def,e-a.start,a.kit)}catch(e){console.error(\"render\",a.id,e)}p&&(p.style.opacity=(t.hideCornerIn||[]).includes(a.id)?0:1)}l.seek=h,l.END=c,l.root.__film=l;const u={END:c};s.forEach(e=>{u[e.id]=e.start});const m=[];let x=96,f=0;const g={};let v={gain:-6,fadeOut:1};const b=e=>null!=e.t?e.t:f+60*e.beat/x,y=e=>null!=e.dur?e.dur:60*(e.beats||1)/x,k={tempo(e,t={}){x=e,f=t.t0||0},beat:e=>f+60*e/x,program(e,t,a={}){g[e]=Object.assign({patch:t},a)},note(e,t,a){m.push({k:\"n\",tr:e,p:t,t:b(a),d:y(a),v:(a.vel||64)/127})},chord(e,t,a){t.forEach(t=>k.note(e,t,a))},drum(e,t){m.push({k:\"d\",name:e,t:b(t),v:(t.vel||80)/127})},drums(e,t){for(let a=0;a<(t.repeat||1);a++)for(const i in e)[...e[i]].forEach((s,o)=>{\".\"!==s&&k.drum(i,{beat:t.from+a*e[i].length*.5+.5*o,vel:\"X\"===s?110:\"o\"===s?40:75})})},fx(e,t,a={}){m.push({k:\"f\",name:e,t:t,d:a.dur||.5,v:(a.vel||70)/127})},master(e){v=Object.assign(v,e)}};if(n)try{n(k,u)}catch(e){console.error(\"score\",e)}m.sort((e,t)=>e.t-t.t);let w=null,F=null,M=null,S=[];function A(e,t,a,i,s){e.gain.setValueAtTime(1e-4,t),e.gain.linearRampToValueAtTime(i,t+a),e.gain.exponentialRampToValueAtTime(1e-4,t+a+s)}function E(e,t,a,i,s,o=.01,r=F,n=0){const l=w.createOscillator(),c=w.createGain();l.type=e,l.frequency.setValueAtTime(t,a);let d=c;if(n&&w.createStereoPanner){const e=w.createStereoPanner();e.pan.value=n,c.connect(e),d=e}return l.connect(c),d.connect(r),A(c,a,o,s,i),l.start(a),l.stop(a+o+i+.05),S.push(l),l}function T(e,t,a,i,s,o=1,r){const n=w.createBufferSource();n.buffer=M,n.loop=!0;const l=w.createBiquadFilter();l.type=i,l.frequency.setValueAtTime(s,e),l.Q.value=o,r&&l.frequency.exponentialRampToValueAtTime(r,e+t);const c=w.createGain();n.connect(l),l.connect(c),c.connect(F),A(c,e,Math.min(.01,t/3),a,t),n.start(e),n.stop(e+t+.05),S.push(n)}function q(e,t){if(\"n\"===e.k){const a=g[e.tr]||{patch:\"keys\"},i=(e=>{const t=/^([A-G])(#|b)?(-?\\d)$/.exec(e),a={C:0,D:2,E:4,F:5,G:7,A:9,B:11}[t[1]]+(\"#\"===t[2]?1:\"b\"===t[2]?-1:0);return 440*Math.pow(2,(a+12*(+t[3]+1)-69)/12)})(e.p),s=.35*e.v,o=a.pan||0;\"pad\"===a.patch?(E(\"sawtooth\",i,t,e.d+.6,.12*s,.4,F,o),E(\"triangle\",1.003*i,t,e.d+.6,.3*s,.4,F,o)):\"bass\"===a.patch?E(\"triangle\",i,t,Math.min(e.d,.8),.9*s,.005,F,o):\"marimba\"===a.patch?(E(\"sine\",i,t,.35,.6*s,.003,F,o),E(\"sine\",4*i,t,.08,.15*s,.002,F,o)):\"pluck\"===a.patch?E(\"triangle\",i,t,.3,.55*s,.003,F,o):\"ep\"===a.patch?(E(\"sine\",i,t,e.d,.5*s,.01,F,o),E(\"sine\",2*i,t,.6,.12*s,.01,F,o)):E(\"triangle\",i,t,e.d,.4*s,.01,F,o)}else if(\"d\"===e.k){const a=.5*e.v;if(\"kick\"===e.name){E(\"sine\",120,t,.25,1.2*a,.002).frequency.exponentialRampToValueAtTime(42,t+.2)}else\"hat\"===e.name?T(t,.05,.25*a,\"highpass\",8e3):\"shaker\"===e.name?T(t,.06,.15*a,\"bandpass\",6e3,1.5):\"crash\"===e.name?T(t,1.8,.35*a,\"highpass\",4e3):\"snare\"!==e.name&&\"clap\"!==e.name||T(t,.15,.4*a,\"bandpass\",1800,.8)}else{const a=.35*e.v;if(\"pop\"===e.name){E(\"sine\",500,t,.08,a,.003).frequency.exponentialRampToValueAtTime(950,t+.06)}else if(\"tick\"===e.name)E(\"square\",2400,t,.025,.2*a,.001);else if(\"click\"===e.name)E(\"square\",1600,t,.02,.2*a,.001);else if(\"ding\"===e.name)E(\"sine\",1320,t,.7,.5*a,.003),E(\"sine\",2640,t,.3,.12*a,.003);else if(\"chime\"===e.name)[1046,1318,1568,2093].forEach((e,i)=>E(\"sine\",e,t+.07*i,1.4,.35*a,.003));else if(\"sparkle\"===e.name)[2093,2637,3136,3951].forEach((e,i)=>E(\"sine\",e,t+.05*i,.25,.2*a,.002));else if(\"whoosh\"===e.name)T(t,e.d,.5*a,\"bandpass\",400,1.2,3e3);else if(\"revswell\"===e.name){const i=w.createBufferSource();i.buffer=M,i.loop=!0;const s=w.createBiquadFilter();s.type=\"bandpass\",s.frequency.value=1500;const o=w.createGain();i.connect(s),s.connect(o),o.connect(F),o.gain.setValueAtTime(1e-4,t-e.d),o.gain.exponentialRampToValueAtTime(.3*a,t),o.gain.exponentialRampToValueAtTime(1e-4,t+.05),i.start(Math.max(w.currentTime,t-e.d)),i.stop(t+.1),S.push(i)}}}let C=null;function V(){S.forEach(e=>{try{e.stop()}catch(e){}}),S=[],C&&clearInterval(C),C=null}function z(e){!function(){if(w)return;w=new(window.AudioContext||window.webkitAudioContext),F=w.createGain(),F.gain.value=Math.pow(10,v.gain/20),F.connect(w.destination),M=w.createBuffer(1,w.sampleRate,w.sampleRate);const e=M.getChannelData(0);for(let t=0;t<e.length;t++)e[t]=2*Math.random()-1}(),w.resume(),V();const t=w.currentTime+.05-e;let a=m.findIndex(t=>t.t>=e-.05);a<0&&(a=m.length),F.gain.cancelScheduledValues(w.currentTime),F.gain.setValueAtTime(Math.pow(10,v.gain/20),w.currentTime),F.gain.setValueAtTime(Math.pow(10,v.gain/20),t+c-v.fadeOut),F.gain.linearRampToValueAtTime(1e-4,t+c);const i=()=>{const e=w.currentTime+.4;for(;a<m.length&&t+m[a].t<e;){const e=t+m[a].t;e>=w.currentTime-.02&&q(m[a],Math.max(e,w.currentTime)),a++}};i(),C=setInterval(i,100)}let H=!1,j=0,R=0,L=!0;const O=l.root.querySelector(\"#play\"),D=l.root.querySelector(\"#bar\"),G=l.root.querySelector(\"#fill\"),P=l.root.querySelector(\"#time\"),B=l.root.querySelector(\"#big\"),I=l.root.querySelector(\"#snd\"),_=e=>Math.floor(e/60)+\":\"+String(Math.floor(e%60)).padStart(2,\"0\");function Y(){G.style.width=100*j/c+\"%\",P.textContent=_(j)+\" / \"+_(c),O.innerHTML=H?\"&#10073;&#10073;\":\"&#9654;\",B.style.display=H?\"none\":\"flex\",I.textContent=L?\"Sonido: sí\":\"Sonido: no\"}function N(e){H&&(j+=(e-R)/1e3,R=e,j>=c&&(j=c-.001,H=!1,V()),h(j),Y(),requestAnimationFrame(N))}function X(e){H=e,e?(j>=c-.05&&(j=0),R=performance.now(),L&&z(j),requestAnimationFrame(N)):V(),Y()}O.onclick=()=>X(!H),B.onclick=()=>X(!0),I.onclick=()=>{L=!L,H&&(L?z(j):V()),Y()},l.root.querySelector(\"#fs\").onclick=()=>{const e=l.root.host||document.documentElement;document.fullscreenElement?document.exitFullscreen():e.requestFullscreen&&e.requestFullscreen()};const Z=t=>{const a=D.getBoundingClientRect();j=e((t.clientX-a.left)/a.width)*c,h(j),Y(),H&&L&&z(j)};function W(){const e=l.root.querySelector(\".vp\"),t=e.clientWidth||1280,i=(e.clientHeight||776)-56,s=Math.min(t/1920,i/1080);a.style.transform=\"translate(\"+(t-1920*s)/2+\"px,\"+(i-1080*s)/2+\"px) scale(\"+s+\")\"}D.onpointerdown=e=>{Z(e),D.onpointermove=Z},window.addEventListener(\"pointerup\",()=>{D.onpointermove=null}),l.root.host&&l.root.host.addEventListener(\"keydown\",e=>{\"Space\"===e.code&&(e.preventDefault(),X(!H))}),window.ResizeObserver&&new ResizeObserver(W).observe(l.root.querySelector(\".vp\")),window.addEventListener(\"resize\",W),W(),h(0),Y()}};return l}();e.boot=function(t){let a;e.root=t,e.kitFor(),a={ST:[{id:\"chat\",x:500,name:\"WhatsApp\"},{id:\"erp\",x:1500,name:\"ERP\"},{id:\"fin\",x:2500,name:\"Finanzas\"},{id:\"alm\",x:3500,name:\"Almacén\"},{id:\"log\",x:4500,name:\"Logística\"},{id:\"far\",x:5500,name:\"Farmacia\"}],icon(e){const t=\"stroke:var(--second);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;fill:none\",a=\"fill:var(--rim)\",i=\"fill:var(--main)\";if(\"chat\"===e)return'<rect x=\"-52\" y=\"-90\" width=\"104\" height=\"180\" rx=\"20\" style=\"'+a+'\"/><rect x=\"-52\" y=\"-90\" width=\"104\" height=\"180\" rx=\"20\" style=\"'+t+'\"/><path d=\"M-30 -40 h52 a10 10 0 0 1 10 10 v24 a10 10 0 0 1 -10 10 h-36 l-14 12 z\" style=\"'+i+'\"/><path d=\"M-26 26 h48\" style=\"'+t+'\"/>';if(\"erp\"===e)return[-60,-10,40].map(e=>'<ellipse cx=\"0\" cy=\"'+(e+40)+'\" rx=\"80\" ry=\"22\" style=\"'+a+'\"/><rect x=\"-80\" y=\"'+e+'\" width=\"160\" height=\"40\" style=\"'+a+'\"/><ellipse cx=\"0\" cy=\"'+e+'\" rx=\"80\" ry=\"22\" style=\"fill:color-mix(in srgb, var(--main) 45%, var(--rim));stroke:var(--second);stroke-width:4\"/>').join(\"\")+'<path d=\"M-80 -60 V80 M80 -60 V80\" style=\"'+t+'\"/>';if(\"fin\"===e)return'<path d=\"M-70 -90 H40 L70 -60 V90 H-70 Z\" style=\"'+a+'\"/><path d=\"M-70 -90 H40 L70 -60 V90 H-70 Z\" style=\"'+t+'\"/><path d=\"M-44 -46 H20 M-44 -14 H40 M-44 18 H10\" style=\"'+t+'\"/><circle cx=\"52\" cy=\"62\" r=\"42\" style=\"fill:var(--accent)\"/><path d=\"M66 44 a20 20 0 1 0 0 36 M28 56 H58 M28 68 H58\" style=\"fill:none;stroke:var(--ground);stroke-width:6;stroke-linecap:round\"/>';if(\"alm\"===e){let e='<path d=\"M-100 -90 V90 M100 -90 V90 M-100 -20 H100 M-100 50 H100\" style=\"'+t+'\"/>';return[[-90,-74],[-30,-66],[32,-78],[-84,-6],[-10,0],[50,-8]].forEach(([t,s],o)=>{e+='<rect x=\"'+t+'\" y=\"'+s+'\" width=\"'+(o%2?54:46)+'\" height=\"'+((s>-20?50:-20)-s)+'\" rx=\"4\" style=\"'+(o%3?a:i)+';stroke:var(--second);stroke-width:3\"/>'}),e}return\"log\"===e?'<path d=\"M-110 40 V-60 H30 V40 Z\" style=\"'+a+'\"/><path d=\"M30 -30 H80 L110 10 V40 H30 Z\" style=\"fill:color-mix(in srgb, var(--main) 45%, var(--rim))\"/><path d=\"M-110 40 V-60 H30 V40 M30 -30 H80 L110 10 V40 H-110\" style=\"'+t+'\"/><circle cx=\"-66\" cy=\"52\" r=\"22\" style=\"fill:var(--ground);stroke:var(--second);stroke-width:6\"/><circle cx=\"70\" cy=\"52\" r=\"22\" style=\"fill:var(--ground);stroke:var(--second);stroke-width:6\"/>':'<path d=\"M-100 90 V-30 H100 V90 Z\" style=\"'+a+'\"/><path d=\"M-110 -30 L-90 -80 H90 L110 -30 Z\" style=\"'+i+'\"/><path d=\"M-100 90 V-30 H100 V90 M-30 90 V20 H30 V90\" style=\"'+t+'\"/><path d=\"M52 -6 h16 v18 h18 v16 h-18 v18 h-16 v-18 h-18 v-16 h18 z\" style=\"'+i+'\"/>'},world(e,t){const i=e.rng(11);let s='<defs><pattern id=\"'+t+'-dots\" width=\"40\" height=\"40\" patternUnits=\"userSpaceOnUse\"><circle cx=\"2\" cy=\"2\" r=\"2\" style=\"fill:var(--rim)\"/></pattern></defs><rect width=\"6000\" height=\"1080\" fill=\"url(#'+t+'-dots)\"/>',o=\"\";for(let e=0;e<26;e++){const e=6e3*i(),t=200+700*i(),a=120+300*i();o+='<path d=\"M'+e.toFixed(0)+\" \"+t.toFixed(0)+\" h\"+a.toFixed(0)+\" v\"+(i()<.5?-40:40)+\" h\"+(a/2).toFixed(0)+'\" style=\"fill:none;stroke:var(--rim);stroke-width:3\"/>'}let r=\"\",n=\"\";return a.ST.forEach(e=>{r+='<g class=\"'+t+\"-st \"+t+\"-st-\"+e.id+'\" transform=\"translate('+e.x+' 540)\"><circle class=\"'+t+'-glow\" r=\"170\" style=\"fill:var(--glow);opacity:0\"/><circle r=\"140\" style=\"fill:var(--deep);stroke:var(--line);stroke-width:4\"/>'+a.icon(e.id)+'<path d=\"M0 140 V170\" style=\"stroke:var(--line);stroke-width:6\"/><circle cx=\"0\" cy=\"200\" r=\"16\" style=\"fill:var(--ground);stroke:var(--line);stroke-width:6\"/><circle class=\"'+t+'-node\" cx=\"0\" cy=\"200\" r=\"0\" style=\"fill:var(--main)\"/></g>',n+='<div class=\"wld-lab '+t+'-lab\" style=\"left:'+e.x+'px;top:768px\">'+e.name+\"</div>\"}),{markup:'<div class=\"wld '+t+'\"><svg width=\"6000\" height=\"1080\" viewBox=\"0 0 6000 1080\" style=\"position:absolute;left:0;top:0;overflow:visible\">'+s+o+'<path d=\"M300 740 H5700\" style=\"stroke:var(--line);stroke-width:8;stroke-linecap:round\"/><path class=\"'+t+'-lit\" d=\"M300 740 H5700\" style=\"stroke:var(--main);stroke-width:8;stroke-linecap:round;stroke-dasharray:0 6000\"/>'+r+'<g class=\"'+t+'-box\"><g class=\"'+t+'-boxin\"><rect x=\"-36\" y=\"-62\" width=\"72\" height=\"60\" rx=\"6\" style=\"fill:var(--accent);stroke:var(--ground);stroke-width:4\"/><path d=\"M-36 -42 H36 M0 -62 V-2\" style=\"stroke:color-mix(in srgb, var(--ground) 55%, var(--accent));stroke-width:6\"/></g></g></svg>'+n+\"</div>\",bind(e){this.el=e.querySelector(\".\"+t),this.box=e.querySelector(\".\"+t+\"-box\"),this.boxin=e.querySelector(\".\"+t+\"-boxin\"),this.lit=e.querySelector(\".\"+t+\"-lit\"),this.glows=e.querySelectorAll(\".\"+t+\"-glow\"),this.nodes=e.querySelectorAll(\".\"+t+\"-node\"),this.labs=e.querySelectorAll(\".\"+t+\"-lab\")},cam(e,t,a,i){this.el.style.transform=\"translate(\"+(i-e*a).toFixed(1)+\"px,\"+(540-t*a).toFixed(1)+\"px) scale(\"+a.toFixed(4)+\")\"},boxAt(e,t,a){this.box.setAttribute(\"transform\",\"translate(\"+e.toFixed(1)+\" 740)\"),this.box.style.opacity=a,this.boxin.setAttribute(\"transform\",\"translate(0 \"+(-3*Math.abs(Math.sin(6*t))).toFixed(1)+\")\")},litTo(e){this.lit.style.strokeDasharray=Math.max(0,e-300).toFixed(1)+\" 6000\"},state(e,t,a){this.glows[e].style.opacity=t,this.nodes[e].setAttribute(\"r\",(16*a).toFixed(2)),this.labs[e].style.color=t>.5?\"var(--second)\":\"var(--dim)\"}}},panel:(e,t,a,i)=>'<div class=\"pnl '+e+'\" style=\"'+i+'\"><div class=\"pnl-h\"><span>'+t+'</span><span class=\"pnl-auto\">AUTOMÁTICO</span></div>'+a.map(t=>'<div class=\"ck '+e+'-row\"><svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\"><circle cx=\"24\" cy=\"24\" r=\"22\" style=\"fill:none;stroke:var(--line);stroke-width:3\"/><circle class=\"'+e+'-dot\" cx=\"24\" cy=\"24\" r=\"22\" style=\"fill:'+(t.warn?\"var(--accent)\":\"var(--main)\")+'\"/><path d=\"'+(t.warn?\"M24 13 V27 M24 34 V35\":\"M14 25 L21 32 L34 17\")+'\" pathLength=\"1\" style=\"fill:none;stroke:var(--ground);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1\"/></svg><div>'+t.text+(t.sub?\"<small>\"+t.sub+\"</small>\":\"\")+\"</div></div>\").join(\"\")+\"</div>\",panelRender(e,t,a,i,s,o){const r=e.eo(e.seg(s,o,o+.6)),n=t.querySelector(\".\"+a);n.style.opacity=r,n.style.transform=\"translateY(\"+e.lerp(40,0,r).toFixed(1)+\"px)\",t.querySelectorAll(\".\"+a+\"-row\").forEach((t,o)=>{const r=i[o].at,n=e.eo(e.seg(s,r,r+.4));t.style.opacity=e.lerp(.28,1,n),t.querySelector(\".\"+a+\"-dot\").setAttribute(\"r\",(22*e.eob(e.clamp01(e.seg(s,r,r+.45)),1.7)).toFixed(2)),t.querySelector(\"path\").style.strokeDashoffset=(1-e.eo(e.seg(s,r+.15,r+.55))).toFixed(3)})}},function(e){const{seg:t,eo:i,eio:s,eob:o,lerp:r,clamp01:n,TextFx:l}=e;e.scene(\"mensaje\",{init(e){this.w=a.world(e,\"men-w\"),e.stage.append(e.h('<div class=\"ground\">'+this.w.markup+'<div class=\"men-bub\" style=\"position:absolute;left:770px;top:430px;width:640px;padding:26px 30px;border-radius:28px 28px 28px 8px;background:var(--second);color:var(--ground);box-shadow:0 24px 50px rgba(0,0,0,.4);transform-origin:0 100%\"><div style=\"font-size:22px;font-weight:700;color:color-mix(in srgb, var(--main) 55%, var(--ground));margin-bottom:8px\">Farmacia Sol · 09:02</div><div style=\"font-size:32px;line-height:1.3\">Necesito 24 cajas de Analgésico 1 g y 12 de Colirio Hidratante 10 ml</div></div><div class=\"words\" style=\"left:120px;top:90px;width:1100px\"><p class=\"kicker\">Visión Esteve · back-office</p><h2 class=\"line\">Un mensaje de WhatsApp.</h2><p class=\"sub men-sub\">Todo un proceso interno, de principio a fin, automático.</p></div></div>')),this.w.bind(e.stage);const t=t=>e.stage.querySelector(t);Object.assign(this,{bub:t(\".men-bub\"),line:t(\".line\"),sub:t(\".men-sub\"),kick:t(\".kicker\")})},render(e){const c=s(t(e,2.6,5.4));this.w.cam(r(3e3,500,c),r(560,600,c),r(.31,.8,c)*(1+.004*e),r(960,600,c)),a.ST.forEach((a,s)=>this.w.state(s,0===s?i(t(e,3.8,4.4))*(.8+.2*Math.sin(3*e)):.15*i(t(e,.4+.15*s,.9+.15*s)),0)),this.w.boxAt(500,e,0),this.w.litTo(300),this.kick.style.opacity=i(t(e,-.4,.2)),l.fadeFromRight(this.line,e,-.3),this.sub.style.opacity=i(t(e,1,1.6)),this.sub.style.transform=\"translateY(\"+r(24,0,i(t(e,1,1.6))).toFixed(1)+\"px)\";const d=o(n(t(e,4.3,4.9)),1.6);this.bub.style.opacity=n(d),this.bub.style.transform=\"scale(\"+r(.6,1,d).toFixed(3)+\") translateY(\"+(-2*Math.max(0,e-4.9)).toFixed(1)+\"px)\"}})}(e.kitFor()),function(e){const{seg:t,eo:i,eio:s,eob:o,lerp:r,clamp01:n,TextFx:l}=e;Object.assign(a,{stationScene(e,o){const n=a.world(e,o.cls+\"-w\");e.stage.append(e.h('<div class=\"ground\">'+n.markup+a.panel(o.cls+\"-p\",o.title,o.rows,\"left:1160px;top:\"+(o.panelTop||290)+\"px\")+(o.extra||\"\")+'<div class=\"words\" style=\"left:120px;top:80px;width:960px\"><p class=\"kicker\">'+o.kicker+'</p><h2 class=\"line\">'+o.line+\"</h2></div></div>\")),n.bind(e.stage);const c=e.stage.querySelector(\".line\"),d=e.stage.querySelector(\".kicker\");return p=>{const h=a.ST[o.from],u=a.ST[o.to],m=s(t(p,o.travel[0],o.travel[1])),x=r(h.x,u.x,m);n.cam(x,430,.85*(1+.003*p),560);const f=r(h.x,u.x,s(t(p,o.travel[0]-.1,o.travel[1]-.1)));n.boxAt(f,p,o.hideBox?0:1),n.litTo(o.reverse?Math.max(h.x,u.x):f),a.ST.forEach((e,a)=>{const s=o.reverse?a>=o.to&&a<=o.from?1:0:e.x<=f+1?1:0,r=a===o.to?i(t(p,o.travel[1]-.2,o.travel[1]+.4))*(.85+.15*Math.sin(3*p)):a===o.from?1-i(t(p,o.travel[0],o.travel[0]+.5)):0;n.state(a,r,s)}),d.style.opacity=i(t(p,-.4,.2)),l.fadeFromRight(c,p,-.2),a.panelRender(e,e.stage,o.cls+\"-p\",o.rows,p,o.panelAt)}}}),e.scene(\"interpreta\",{init(e){this.r=a.stationScene(e,{cls:\"int\",from:0,to:1,travel:[.3,2.4],panelAt:2.2,kicker:\"1 · Del chat al pedido\",line:\"La IA entiende el mensaje\",title:\"Pedido en el ERP\",rows:[{text:\"Cliente identificado\",sub:\"Farmacia Sol · Valencia\",at:2.9},{text:\"2 productos reconocidos en el texto\",sub:\"Analgésico 1 g × 24 · Colirio Hidratante × 12\",at:3.8},{text:\"Precios y descuentos de su contrato\",sub:\"Total 149,90 €\",at:4.8},{text:\"Pedido #48213 creado\",sub:\"Sin tecleo manual\",at:5.8}]})},render(e){this.r(e)}})}(e.kitFor()),e.kitFor().scene(\"finanzas\",{init(e){this.r=a.stationScene(e,{cls:\"fin\",from:1,to:2,travel:[.3,2.4],panelAt:2.2,kicker:\"2 · Finanzas\",line:\"Crédito y factura, al instante\",title:\"Validación financiera\",rows:[{text:\"Riesgo de crédito validado\",sub:\"Límite disponible correcto\",at:2.9},{text:\"Condiciones comerciales aplicadas\",sub:\"Descuento por volumen −7,90 €\",at:3.9},{text:\"Factura emitida\",sub:\"Vencimiento según contrato\",at:4.9},{text:\"Contabilidad actualizada\",sub:\"Sin intervención del equipo\",at:5.9}]})},render(e){this.r(e)}}),e.kitFor().scene(\"almacen\",{init(e){this.r=a.stationScene(e,{cls:\"alm\",from:2,to:3,travel:[.3,2.4],panelAt:2.2,kicker:\"3 · Almacén\",line:\"Stock reservado y descontado\",title:\"Gestión de stock\",rows:[{text:\"Analgésico 1 g × 24 reservado\",sub:\"Baja de stock automática\",at:2.9},{text:\"Colirio Hidratante × 12 reservado\",sub:\"Lote y caducidad asignados\",at:3.9},{text:\"Si falta un producto: pedido pendiente\",sub:\"Y aviso al cliente cuando llegue\",at:4.9,warn:!0},{text:\"Previsión de compras actualizada\",sub:\"Con la demanda real de las farmacias\",at:5.9}]})},render(e){this.r(e)}}),e.kitFor().scene(\"logistica\",{init(e){this.r=a.stationScene(e,{cls:\"log\",from:3,to:4,travel:[.3,2.4],panelAt:2.2,kicker:\"4 · Logística\",line:\"Preparado, asignado y en ruta\",title:\"Conexión logística\",rows:[{text:\"Orden de preparación enviada\",sub:\"Picking priorizado por ruta\",at:2.9},{text:\"Operador logístico asignado\",sub:\"Integración directa, sin correos\",at:3.9},{text:\"Fecha de entrega calculada\",sub:\"Jueves 13/11, antes de las 12:00\",at:4.9},{text:\"Seguimiento activado\",sub:\"Cada cambio de estado, registrado\",at:5.9}]})},render(e){this.r(e)}}),e.kitFor().scene(\"aviso\",{init(e){this.r=a.stationScene(e,{cls:\"avi\",from:4,to:5,travel:[.3,2.4],panelAt:2,kicker:\"5 · Aviso al cliente\",line:\"La farmacia siempre sabe dónde está su pedido\",title:\"WhatsApp a Farmacia Sol\",rows:[{text:\"Pedido confirmado\",sub:\"Entrega prevista: jueves 13/11\",at:2.6},{text:\"Pedido en camino\",sub:\"Llega hoy entre las 10:00 y las 12:00\",at:3.8},{text:\"Pedido entregado\",sub:\"Con encuesta NPS en el mismo chat\",at:5},{text:\"Respuesta registrada: 10\",sub:\"La satisfacción se mide en cada entrega\",at:6.2}]})},render(e){this.r(e)}}),e.kitFor().scene(\"cancelacion\",{init(e){this.r=a.stationScene(e,{cls:\"can\",from:4,to:2,travel:[.4,3],panelAt:2.8,reverse:!0,kicker:\"6 · Cancelaciones\",line:\"Y si cancelan, todo se deshace solo\",title:\"Cancelación del pedido #48377\",rows:[{text:\"Envío anulado con el operador\",sub:\"Antes de salir del almacén\",at:3.4},{text:\"Stock devuelto al almacén\",sub:\"Disponible para otras farmacias\",at:4.4},{text:\"Factura anulada\",sub:\"Abono emitido automáticamente\",at:5.4},{text:\"Farmacia informada en el chat\",sub:\"Sin llamadas ni correos\",at:6.4}]})},render(e){this.r(e)}}),function(e){const{seg:t,eo:i,eio:s,eob:o,lerp:r,clamp01:n,TextFx:l}=e;e.scene(\"reposicion\",{init(e){this.w=a.world(e,\"rep-w\");const t=[150,165,150,158,150,162],i=[60,160,260,360,460,560].map((e,a)=>'<rect class=\"rep-bar\" x=\"'+e+'\" y=\"'+(300-t[a])+'\" width=\"64\" height=\"'+t[a]+'\" rx=\"8\" style=\"fill:var(--main)\"/>').join(\"\")+'<rect class=\"rep-bar\" x=\"680\" y=\"150\" width=\"64\" height=\"150\" rx=\"8\" style=\"fill:color-mix(in srgb, var(--accent) 25%, var(--panel));stroke:var(--accent);stroke-width:4;stroke-dasharray:12 8\"/>';e.stage.append(e.h('<div class=\"ground\">'+this.w.markup+'<div style=\"position:absolute;inset:0;background:color-mix(in srgb, var(--ground) 72%, transparent)\"></div><div class=\"words\" style=\"left:120px;top:80px;width:1500px\"><p class=\"kicker\">7 · Motor proactivo</p><h2 class=\"line\">Vender antes de que falte</h2></div><div class=\"pnl rep-card\" style=\"left:120px;top:330px;width:860px\"><div class=\"pnl-h\"><span>Farmacia Sol · Colirio Hidratante</span><span class=\"pnl-auto\">IA</span></div><svg width=\"784\" height=\"330\" viewBox=\"0 0 784 330\"><path d=\"M40 302 H770\" style=\"stroke:var(--line);stroke-width:4\"/>'+i+'</svg><div style=\"display:flex;justify-content:space-between;font-size:26px;color:var(--dim)\"><span>Pide cada 15 días</span><span class=\"rep-pred\" style=\"color:var(--accent);font-weight:700\">Rotura prevista: jueves</span></div></div><svg class=\"art\" viewBox=\"0 0 1920 1080\"><path class=\"rep-arrow\" d=\"M1000 560 C1060 560 1060 470 1110 470\" pathLength=\"1\" style=\"fill:none;stroke:var(--main);stroke-width:6;stroke-linecap:round;stroke-dasharray:1 1\"/></svg><div class=\"rep-bub\" style=\"position:absolute;left:1130px;top:360px;width:660px;padding:26px 30px;border-radius:28px 28px 28px 8px;background:var(--second);color:var(--ground);box-shadow:0 24px 50px rgba(0,0,0,.4);transform-origin:0 100%\"><div style=\"font-size:22px;font-weight:700;color:color-mix(in srgb, var(--main) 55%, var(--ground));margin-bottom:8px\">Esteve Conecta → Farmacia Sol</div><div style=\"font-size:30px;line-height:1.3\">Tu Colirio Hidratante se agota el jueves. ¿Repetimos tus 12 unidades?</div></div><div class=\"rep-ok\" style=\"position:absolute;left:1130px;top:640px;padding:18px 28px;border-radius:22px;background:var(--main);color:var(--ground);font-size:30px;font-weight:700\">“Sí” → pedido #48377 creado</div><div class=\"words rep-foot\" style=\"left:1130px;top:770px;width:680px\"><p class=\"sub\">El mismo análisis, para cada farmacia y cada producto recurrente.</p></div></div>')),this.w.bind(e.stage);const s=t=>e.stage.querySelector(t);Object.assign(this,{line:s(\".line\"),kick:s(\".kicker\"),card:s(\".rep-card\"),bars:e.stage.querySelectorAll(\".rep-bar\"),pred:s(\".rep-pred\"),arrow:s(\".rep-arrow\"),bub:s(\".rep-bub\"),ok:s(\".rep-ok\"),foot:s(\".rep-foot\")})},render(e){this.w.cam(3e3,560,.31*(1+.004*e),960),a.ST.forEach((e,t)=>this.w.state(t,.15,1)),this.w.boxAt(0,e,0),this.w.litTo(5700),this.kick.style.opacity=i(t(e,-.4,.2)),l.fadeFromRight(this.line,e,-.2);const s=i(t(e,.2,.8));this.card.style.opacity=s,this.card.style.transform=\"translateY(\"+r(40,0,s).toFixed(1)+\"px)\",this.bars.forEach((a,i)=>{const s=i<6?.6+.2*i:2.4,r=o(n(t(e,s,s+.5)),1.5);a.style.transformBox=\"view-box\",a.style.transformOrigin=\"0 300px\",a.style.transform=\"scaleY(\"+r.toFixed(3)+\")\"}),this.pred.style.opacity=i(t(e,2.7,3.2)),this.arrow.style.strokeDashoffset=(1-i(t(e,3.4,4.1))).toFixed(3);const c=o(n(t(e,4,4.6)),1.6);this.bub.style.opacity=n(c),this.bub.style.transform=\"scale(\"+r(.6,1,c).toFixed(3)+\")\";const d=o(n(t(e,6,6.5)),1.7);this.ok.style.opacity=n(d),this.ok.style.transform=\"scale(\"+r(.7,1,d).toFixed(3)+\")\",this.foot.style.opacity=i(t(e,7,7.6))}})}(e.kitFor()),function(e){const{seg:t,eo:i,eio:s,eob:o,lerp:r,clamp01:n,TextFx:l}=e;e.scene(\"impacto\",{init(e){this.w=a.world(e,\"imp-w\");e.stage.append(e.h('<div class=\"ground\">'+this.w.markup+'<div style=\"position:absolute;inset:0;background:color-mix(in srgb, var(--ground) 80%, transparent)\"></div><div class=\"words\" style=\"left:120px;top:80px;width:1600px\"><p class=\"kicker\">El impacto</p><h2 class=\"line\">Menos tareas manuales, más tiempo para vender</h2></div><div class=\"pnl imp-man\" style=\"left:120px;top:330px;width:820px\"><div class=\"pnl-h\"><span>Hoy, proceso manual</span></div>'+[\"Recibir pedidos por teléfono o correo\",\"Teclearlos en el ERP\",\"Validar el crédito a mano\",\"Coordinar almacén y transporte\",\"Llamar para informar la entrega\"].map(e=>'<div class=\"imp-row\" style=\"position:relative;font-size:30px;padding:4px 0\"><span>'+e+'</span><div class=\"imp-strike\" style=\"position:absolute;left:-6px;right:-6px;top:50%;height:5px;border-radius:3px;background:var(--accent);transform-origin:0 50%\"></div></div>').join(\"\")+'</div><div class=\"words imp-right\" style=\"left:1060px;top:360px;width:760px\"><div style=\"font-family:var(--display, var(--sans, system-ui, sans-serif));font-size:64px;font-weight:700;line-height:1.1;color:var(--main)\">Con Esteve Conecta, todo ocurre solo</div><p class=\"sub\">El equipo deja de teclear y se dedica a las farmacias que más valor generan.</p></div><div class=\"imp-pills\" style=\"position:absolute;left:120px;right:100px;top:850px;display:flex;gap:28px\">'+[[\"Más productividad\",\"Cero tecleo de pedidos\"],[\"Más ventas\",\"25.000 farmacias atendidas\"],[\"Mejor NPS\",\"Respuesta 24/7\"]].map(e=>'<div class=\"imp-pill\" style=\"flex:1;padding:22px 30px;border-radius:24px;background:var(--panel);border:2px solid var(--main)\"><b style=\"display:block;font-family:var(--display, var(--sans, system-ui, sans-serif));font-size:40px;color:var(--main)\">'+e[0]+'</b><span style=\"font-size:26px;color:var(--dim)\">'+e[1]+\"</span></div>\").join(\"\")+\"</div></div>\")),this.w.bind(e.stage);const t=t=>e.stage.querySelector(t);Object.assign(this,{line:t(\".line\"),kick:t(\".kicker\"),man:t(\".imp-man\"),rows:e.stage.querySelectorAll(\".imp-row\"),strikes:e.stage.querySelectorAll(\".imp-strike\"),right:t(\".imp-right\"),pills:e.stage.querySelectorAll(\".imp-pill\")})},render(e){this.w.cam(3e3,560,.31*(1+.004*e),960),a.ST.forEach((t,a)=>this.w.state(a,.25+.2*Math.sin(2*e+a),1)),this.w.boxAt(r(500,5500,e/10%1),e,.6),this.w.litTo(5700),this.kick.style.opacity=i(t(e,-.4,.2)),l.fadeFromRight(this.line,e,-.2);const s=i(t(e,.4,1));this.man.style.opacity=s,this.man.style.transform=\"translateY(\"+r(40,0,s).toFixed(1)+\"px)\",this.strikes.forEach((a,s)=>{const o=i(t(e,1.8+.4*s,2.2+.4*s));a.style.transform=\"scaleX(\"+o.toFixed(3)+\")\",this.rows[s].style.opacity=r(1,.45,o)});const c=i(t(e,4.2,4.9));this.right.style.opacity=c,this.right.style.transform=\"translateX(\"+r(40,0,c).toFixed(1)+\"px)\",this.pills.forEach((a,i)=>{const s=o(n(t(e,6+.35*i,6.5+.35*i)),1.6);a.style.opacity=n(s),a.style.transform=\"translateY(\"+r(40,0,s).toFixed(1)+\"px)\"})}})}(e.kitFor()),function(e){const{seg:t,eo:i,eio:s,eob:o,lerp:r,clamp01:n}=e;e.scene(\"cierre\",{init(e){this.w=a.world(e,\"cie-w\"),e.stage.append(e.h('<div class=\"ground\">'+this.w.markup+'<div style=\"position:absolute;inset:0;background:color-mix(in srgb, var(--ground) 82%, transparent)\"></div><div class=\"words\" style=\"left:0;right:0;top:330px;align-items:center;text-align:center;gap:22px\"><div class=\"cie-brand\" style=\"font-family:var(--display, var(--sans, system-ui, sans-serif));font-size:220px;font-weight:700;letter-spacing:.08em;line-height:1\"><img src=\"https://people-roger-valim.data2.media/file/t2GHJ_d_HV2Oacr7EfGlA\" alt=\"Esteve\" style=\"display:block;height:300px;margin:0 auto;filter:brightness(0) invert(1);\"></div><p class=\"kicker cie-prod\" style=\"font-size:40px\">Esteve Conecta</p><p class=\"sub cie-sub\" style=\"font-size:44px;color:var(--second)\">Cada pedido, de principio a fin, automático.</p></div><div class=\"cie-bar\" style=\"position:absolute;left:810px;top:800px;width:300px;height:10px;border-radius:5px;background:var(--accent)\"></div></div>')),this.w.bind(e.stage);const t=t=>e.stage.querySelector(t);Object.assign(this,{brand:t(\".cie-brand\"),prod:t(\".cie-prod\"),sub:t(\".cie-sub\"),bar:t(\".cie-bar\")})},render(e){this.w.cam(3e3,600,.31*(1+.006*e),960),a.ST.forEach((a,s)=>this.w.state(s,.7*i(t(e,.12*s,.5+.12*s)),1)),this.w.boxAt(5500,e,0),this.w.litTo(r(300,5700,s(t(e,-.3,1.2))));const o=i(t(e,.4,1.3));this.brand.style.opacity=o,this.brand.style.letterSpacing=r(.3,.08,o).toFixed(3)+\"em\",this.brand.style.transform=\"scale(\"+(1+.004*e).toFixed(4)+\")\",this.prod.style.opacity=i(t(e,1.3,1.8)),this.sub.style.opacity=i(t(e,1.8,2.4)),this.sub.style.transform=\"translateY(\"+r(20,0,i(t(e,1.8,2.4))).toFixed(1)+\"px)\",this.bar.style.transform=\"scaleX(\"+i(t(e,2.3,3)).toFixed(3)+\")\"}})}(e.kitFor()),e.kitFor().score(function(e,t){e.tempo(96,{t0:0}),e.program(\"pad\",\"pad\",{rev:.6,gain:-4}),e.program(\"bass\",\"bass\",{gain:-2}),e.program(\"pl\",\"pluck\",{pan:.25,rev:.35}),e.program(\"ep\",\"ep\",{rev:.4,pan:-.2});const a=[[\"A3\",\"C4\",\"E4\"],[\"F3\",\"A3\",\"C4\"],[\"C4\",\"E4\",\"G4\"],[\"G3\",\"B3\",\"D4\"]],i=[[\"A4\",\"E5\",\"C5\",\"E5\"],[\"F4\",\"C5\",\"A4\",\"C5\"],[\"C5\",\"G5\",\"E5\",\"G5\"],[\"G4\",\"D5\",\"B4\",\"D5\"]],s=[\"A2\",\"F2\",\"C3\",\"G2\"],o=Math.floor(t.END/.625),r=Math.round(t.cierre/.625);for(let t=0;t<o-4;t+=4)e.chord(\"pad\",a[t/4%4],{beat:t,beats:4,vel:t<8?24:34});for(let t=8;t<r-4;t+=4){const a=t/4%4;if(e.note(\"bass\",s[a],{beat:t,beats:.75,vel:62}),e.note(\"bass\",s[a],{beat:t+1.5,beats:.5,vel:48}),e.note(\"bass\",s[a],{beat:t+2.5,beats:1,vel:54}),t>=12)for(let s=0;s<8;s++)e.note(\"pl\",i[a][s%4],{beat:t+.5*s,beats:.4,vel:s%2?30:42})}e.drums({kick:\"x...x...\",hat:\"oxoxoxox\",shaker:\"xxxxxxxx\"},{from:12,repeat:Math.floor((r-4-12)/4)}),e.chord(\"ep\",[\"A3\",\"C4\",\"E4\",\"B4\"],{t:t.cierre+.5,dur:4.5,vel:70}),e.chord(\"pad\",[\"A2\",\"E3\",\"A3\",\"C4\"],{t:t.cierre+.5,dur:5.5,vel:52}),e.drum(\"crash\",{t:t.cierre+.5,vel:60}),e.fx(\"chime\",t.cierre+.6),e.fx(\"pop\",t.mensaje+4.3,{vel:60}),[\"interpreta\",\"finanzas\",\"almacen\",\"logistica\",\"aviso\",\"cancelacion\"].forEach(a=>e.fx(\"whoosh\",t[a]+.4,{dur:.7,vel:45}));const n={interpreta:[2.9,3.8,4.8,5.8],finanzas:[2.9,3.9,4.9,5.9],almacen:[2.9,3.9,4.9,5.9],logistica:[2.9,3.9,4.9,5.9],aviso:[2.6,3.8,5,6.2],cancelacion:[3.4,4.4,5.4,6.4]};Object.keys(n).forEach(a=>n[a].forEach(i=>e.fx(\"tick\",t[a]+i,{vel:50}))),e.fx(\"pop\",t.reposicion+4,{vel:55}),e.fx(\"ding\",t.reposicion+6,{vel:50});for(let a=0;a<5;a++)e.fx(\"click\",t.impacto+1.8+.4*a,{vel:45});for(let a=0;a<3;a++)e.fx(\"ding\",t.impacto+6+.35*a,{vel:45});e.master({gain:-6,fadeOut:2})}),e.start({scenes:[{id:\"mensaje\",dur:6},{id:\"interpreta\",dur:9},{id:\"finanzas\",dur:10},{id:\"almacen\",dur:10},{id:\"logistica\",dur:10},{id:\"aviso\",dur:9},{id:\"cancelacion\",dur:10},{id:\"reposicion\",dur:10},{id:\"impacto\",dur:10},{id:\"cierre\",dur:6}],hideCornerIn:[\"cierre\"]})};export default {css:\":host{display:block;position:absolute;inset:0}\\n.vp{position:absolute;inset:0;overflow:hidden;background:#0E1726;font-family:Inter,system-ui,sans-serif}\\n#stage{position:absolute;left:0;top:0;width:1920px;height:1080px;overflow:hidden;transform-origin:0 0;--display:'Space Grotesk',Inter,system-ui,sans-serif;--sans:Inter,system-ui,sans-serif}\\n.scene{position:absolute;inset:0}\\n#corner{position:absolute;right:70px;top:56px;height:60px;z-index:5;pointer-events:none;filter:brightness(0) invert(1);}\\n#ctl{position:absolute;left:0;right:0;bottom:0;height:56px;display:flex;align-items:center;gap:16px;padding:0 18px;box-sizing:border-box;background:#070C15;color:#fff;font-size:14px;z-index:10}\\n#ctl button{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;padding:6px 12px;font:inherit;cursor:pointer}\\n#play{width:44px}\\n#bar{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.2);cursor:pointer;position:relative}\\n#fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:#3DDC97}\\n#time{font-variant-numeric:tabular-nums;min-width:96px;text-align:right}\\n#big{position:absolute;left:0;right:0;top:0;bottom:56px;display:flex;align-items:center;justify-content:center;z-index:9;cursor:pointer;background:rgba(0,0,0,.18)}\\n#big span{width:120px;height:120px;border-radius:50%;background:#3DDC97;color:#fff;display:flex;align-items:center;justify-content:center;font-size:48px;padding-left:8px;box-sizing:border-box}\\n#stage { --ground:#0E1726; --main:#3DDC97; --second:#EAF2F8; --accent:#FF8A5B; color:var(--second); font-family:var(--sans, system-ui, sans-serif);\\n  --panel:color-mix(in srgb, var(--second) 7%, var(--ground)); --rim:color-mix(in srgb, var(--second) 16%, var(--ground)); --line:color-mix(in srgb, var(--second) 24%, var(--ground)); --dim:color-mix(in srgb, var(--second) 62%, var(--ground)); --glow:color-mix(in srgb, var(--main) 22%, transparent); --deep:color-mix(in srgb, var(--second) 4%, var(--ground)) }\\n.ground { position:absolute; inset:0; background:radial-gradient(120% 90% at 40% 60%, var(--panel), var(--ground) 70%) }\\n.words { position:absolute; margin:0; display:flex; flex-direction:column; gap:22px } .words > * { margin:0 }\\n.line { font-family:var(--display, var(--sans, system-ui, sans-serif)); font-size:76px; line-height:1.05; font-weight:700 } .sub { font-size:34px; line-height:1.3; color:var(--dim) }\\n.kicker { font-size:26px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--main) }\\n.art { position:absolute; inset:0; width:100%; height:100%; overflow:visible }\\n.wld { position:absolute; left:0; top:0; width:6000px; height:1080px; transform-origin:0 0 }\\n.wld-lab { position:absolute; width:320px; margin-left:-160px; text-align:center; font-size:30px; font-weight:700; color:var(--dim) }\\n.pnl { position:absolute; width:640px; padding:34px 38px; box-sizing:border-box; border-radius:30px; background:var(--panel); border:2px solid var(--rim); box-shadow:0 30px 60px rgba(0,0,0,.35); display:flex; flex-direction:column; gap:18px }\\n.pnl-h { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:24px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--dim) }\\n.pnl-auto { color:var(--ground); background:var(--main); border-radius:14px; padding:4px 12px; font-size:19px; letter-spacing:.06em }\\n.ck { display:flex; align-items:center; gap:20px; font-size:30px; line-height:1.25 } .ck svg { flex:none }\\n.ck small { display:block; font-size:22px; color:var(--dim); margin-top:2px }\",render:()=>'<div class=\"vp\"><div id=\"stage\"><img id=\"corner\" src=\"https://people-roger-valim.data2.media/file/t2GHJ_d_HV2Oacr7EfGlA\" alt=\"Esteve\"></div><div id=\"big\"><span>&#9654;</span></div><div id=\"ctl\"><button id=\"play\">&#9654;</button><div id=\"bar\"><div id=\"fill\"></div></div><span id=\"time\"></span><button id=\"snd\">Sonido</button><button id=\"fs\">Pantalla completa</button></div></div>',mounted(t,a){if(a.__booted)return;a.__booted=!0;const i=document.createElement(\"link\");i.rel=\"stylesheet\",i.href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Space+Grotesk:wght@500;700&display=swap\",document.head.appendChild(i),e.boot(a)}};"}}}}}}}},{"_id":"6af482cea5dbbeef3dd12e5b","component":"data2-core-types@Component","system":"6af347e8eee50b21cc12f02a","params":{"extends":"data2-core-primitives@Block","component":"video_esteve_farmacia","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 t=function(){const t=t=>Math.max(0,Math.min(1,t)),e=(e,s,a)=>t((e-s)/(a-s)),s=e=>1-Math.pow(1-t(e),3),a=t=>String(t).replace(/[&<>\"']/g,t=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"}[t])),i={fadeFromRight(t,i,r,o={}){const n=o.stagger||.11,l=o.dur||.5,c=o.dx||30;if(!t._words){const e=t.textContent.split(\" \");t.innerHTML=e.map(t=>'<span style=\"display:inline-block\">'+a(t)+\"</span>\").join(\" \"),t._words=Array.from(t.children)}t._words.forEach((t,a)=>{const o=s(e(i,r+a*n,r+a*n+l));t.style.opacity=o,t.style.transform=\"translateX(\"+((1-o)*c).toFixed(1)+\"px)\"})}},r={clamp01:t,lerp:(t,e,s)=>t+(e-t)*s,seg:e,eo:s,ei:e=>Math.pow(t(e),3),eio:e=>(e=t(e))<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,eob:(e,s=1.4)=>{e=t(e);return 1+(s+1)*Math.pow(e-1,3)+s*Math.pow(e-1,2)},rng:t=>{let e=2654435761*t>>>0||1;return()=>(e^=e<<13,e>>>=0,e^=e>>>17,e^=e<<5,e>>>=0,e/4294967296)},breathe:(t,e=.02,s=3)=>1+e*Math.sin(2*Math.PI*t/s),esc:a,streamed:(t,e,s,a)=>t.slice(0,Math.max(0,Math.floor((e-s)*a))),TextFx:i,h:t=>{const e=document.createElement(\"template\");if(e.innerHTML=t.trim(),1===e.content.children.length)return e.content.firstElementChild;const s=document.createElement(\"div\");return s.style.display=\"contents\",s.append(e.content),s},W:1920,H:1080},o={};let n=null;const l={kitFor:()=>Object.assign({},r,{scene(t,e){o[t]=e},scenes(){},score(t){n=t}}),async start(e){const s=l.root.querySelector(\"#stage\");let a=0;const i=e.scenes.map(t=>{const e=Object.assign({},t,{start:a});return a+=t.dur,e}),c=a;for(const t of i){const e=document.createElement(\"div\");e.className=\"scene\",e.style.display=\"none\",s.appendChild(e);const a=Object.assign({},r,{stage:e,dur:t.dur,start:t.start});t.kit=a,t.div=e,t.def=o[t.id];try{t.def&&t.def.init&&await t.def.init.call(t.def,a)}catch(e){console.error(\"init\",t.id,e)}}let d=null;const p=l.root.querySelector(\"#corner\");function h(t){t=Math.max(0,Math.min(c-.001,t));const s=i.find(e=>t>=e.start&&t<e.start+e.dur)||i[i.length-1];d!==s&&(d&&(d.div.style.display=\"none\"),s.div.style.display=\"block\",d=s);try{s.def.render.call(s.def,t-s.start,s.kit)}catch(t){console.error(\"render\",s.id,t)}p&&(p.style.opacity=(e.hideCornerIn||[]).includes(s.id)?0:1)}l.seek=h,l.END=c,l.root.__film=l;const g={END:c};i.forEach(t=>{g[t.id]=t.start});const f=[];let m=96,u=0;const x={};let v={gain:-6,fadeOut:1};const y=t=>null!=t.t?t.t:u+60*t.beat/m,b=t=>null!=t.dur?t.dur:60*(t.beats||1)/m,k={tempo(t,e={}){m=t,u=e.t0||0},beat:t=>u+60*t/m,program(t,e,s={}){x[t]=Object.assign({patch:e},s)},note(t,e,s){f.push({k:\"n\",tr:t,p:e,t:y(s),d:b(s),v:(s.vel||64)/127})},chord(t,e,s){e.forEach(e=>k.note(t,e,s))},drum(t,e){f.push({k:\"d\",name:t,t:y(e),v:(e.vel||80)/127})},drums(t,e){for(let s=0;s<(e.repeat||1);s++)for(const a in t)[...t[a]].forEach((i,r)=>{\".\"!==i&&k.drum(a,{beat:e.from+s*t[a].length*.5+.5*r,vel:\"X\"===i?110:\"o\"===i?40:75})})},fx(t,e,s={}){f.push({k:\"f\",name:t,t:e,d:s.dur||.5,v:(s.vel||70)/127})},master(t){v=Object.assign(v,t)}};if(n)try{n(k,g)}catch(t){console.error(\"score\",t)}f.sort((t,e)=>t.t-e.t);let w=null,F=null,M=null,A=[];function E(t,e,s,a,i){t.gain.setValueAtTime(1e-4,e),t.gain.linearRampToValueAtTime(a,e+s),t.gain.exponentialRampToValueAtTime(1e-4,e+s+i)}function S(t,e,s,a,i,r=.01,o=F,n=0){const l=w.createOscillator(),c=w.createGain();l.type=t,l.frequency.setValueAtTime(e,s);let d=c;if(n&&w.createStereoPanner){const t=w.createStereoPanner();t.pan.value=n,c.connect(t),d=t}return l.connect(c),d.connect(o),E(c,s,r,i,a),l.start(s),l.stop(s+r+a+.05),A.push(l),l}function q(t,e,s,a,i,r=1,o){const n=w.createBufferSource();n.buffer=M,n.loop=!0;const l=w.createBiquadFilter();l.type=a,l.frequency.setValueAtTime(i,t),l.Q.value=r,o&&l.frequency.exponentialRampToValueAtTime(o,t+e);const c=w.createGain();n.connect(l),l.connect(c),c.connect(F),E(c,t,Math.min(.01,e/3),s,e),n.start(t),n.stop(t+e+.05),A.push(n)}function T(t,e){if(\"n\"===t.k){const s=x[t.tr]||{patch:\"keys\"},a=(t=>{const e=/^([A-G])(#|b)?(-?\\d)$/.exec(t),s={C:0,D:2,E:4,F:5,G:7,A:9,B:11}[e[1]]+(\"#\"===e[2]?1:\"b\"===e[2]?-1:0);return 440*Math.pow(2,(s+12*(+e[3]+1)-69)/12)})(t.p),i=.35*t.v,r=s.pan||0;\"pad\"===s.patch?(S(\"sawtooth\",a,e,t.d+.6,.12*i,.4,F,r),S(\"triangle\",1.003*a,e,t.d+.6,.3*i,.4,F,r)):\"bass\"===s.patch?S(\"triangle\",a,e,Math.min(t.d,.8),.9*i,.005,F,r):\"marimba\"===s.patch?(S(\"sine\",a,e,.35,.6*i,.003,F,r),S(\"sine\",4*a,e,.08,.15*i,.002,F,r)):\"pluck\"===s.patch?S(\"triangle\",a,e,.3,.55*i,.003,F,r):\"ep\"===s.patch?(S(\"sine\",a,e,t.d,.5*i,.01,F,r),S(\"sine\",2*a,e,.6,.12*i,.01,F,r)):S(\"triangle\",a,e,t.d,.4*i,.01,F,r)}else if(\"d\"===t.k){const s=.5*t.v;if(\"kick\"===t.name){S(\"sine\",120,e,.25,1.2*s,.002).frequency.exponentialRampToValueAtTime(42,e+.2)}else\"hat\"===t.name?q(e,.05,.25*s,\"highpass\",8e3):\"shaker\"===t.name?q(e,.06,.15*s,\"bandpass\",6e3,1.5):\"crash\"===t.name?q(e,1.8,.35*s,\"highpass\",4e3):\"snare\"!==t.name&&\"clap\"!==t.name||q(e,.15,.4*s,\"bandpass\",1800,.8)}else{const s=.35*t.v;if(\"pop\"===t.name){S(\"sine\",500,e,.08,s,.003).frequency.exponentialRampToValueAtTime(950,e+.06)}else if(\"tick\"===t.name)S(\"square\",2400,e,.025,.2*s,.001);else if(\"click\"===t.name)S(\"square\",1600,e,.02,.2*s,.001);else if(\"ding\"===t.name)S(\"sine\",1320,e,.7,.5*s,.003),S(\"sine\",2640,e,.3,.12*s,.003);else if(\"chime\"===t.name)[1046,1318,1568,2093].forEach((t,a)=>S(\"sine\",t,e+.07*a,1.4,.35*s,.003));else if(\"sparkle\"===t.name)[2093,2637,3136,3951].forEach((t,a)=>S(\"sine\",t,e+.05*a,.25,.2*s,.002));else if(\"whoosh\"===t.name)q(e,t.d,.5*s,\"bandpass\",400,1.2,3e3);else if(\"revswell\"===t.name){const a=w.createBufferSource();a.buffer=M,a.loop=!0;const i=w.createBiquadFilter();i.type=\"bandpass\",i.frequency.value=1500;const r=w.createGain();a.connect(i),i.connect(r),r.connect(F),r.gain.setValueAtTime(1e-4,e-t.d),r.gain.exponentialRampToValueAtTime(.3*s,e),r.gain.exponentialRampToValueAtTime(1e-4,e+.05),a.start(Math.max(w.currentTime,e-t.d)),a.stop(e+.1),A.push(a)}}}let C=null;function j(){A.forEach(t=>{try{t.stop()}catch(t){}}),A=[],C&&clearInterval(C),C=null}function z(t){!function(){if(w)return;w=new(window.AudioContext||window.webkitAudioContext),F=w.createGain(),F.gain.value=Math.pow(10,v.gain/20),F.connect(w.destination),M=w.createBuffer(1,w.sampleRate,w.sampleRate);const t=M.getChannelData(0);for(let e=0;e<t.length;e++)t[e]=2*Math.random()-1}(),w.resume(),j();const e=w.currentTime+.05-t;let s=f.findIndex(e=>e.t>=t-.05);s<0&&(s=f.length),F.gain.cancelScheduledValues(w.currentTime),F.gain.setValueAtTime(Math.pow(10,v.gain/20),w.currentTime),F.gain.setValueAtTime(Math.pow(10,v.gain/20),e+c-v.fadeOut),F.gain.linearRampToValueAtTime(1e-4,e+c);const a=()=>{const t=w.currentTime+.4;for(;s<f.length&&e+f[s].t<t;){const t=e+f[s].t;t>=w.currentTime-.02&&T(f[s],Math.max(t,w.currentTime)),s++}};a(),C=setInterval(a,100)}let H=!1,P=0,L=0,B=!0;const O=l.root.querySelector(\"#play\"),V=l.root.querySelector(\"#bar\"),R=l.root.querySelector(\"#fill\"),I=l.root.querySelector(\"#time\"),D=l.root.querySelector(\"#big\"),G=l.root.querySelector(\"#snd\"),_=t=>Math.floor(t/60)+\":\"+String(Math.floor(t%60)).padStart(2,\"0\");function Y(){R.style.width=100*P/c+\"%\",I.textContent=_(P)+\" / \"+_(c),O.innerHTML=H?\"&#10073;&#10073;\":\"&#9654;\",D.style.display=H?\"none\":\"flex\",G.textContent=B?\"Sonido: sí\":\"Sonido: no\"}function N(t){H&&(P+=(t-L)/1e3,L=t,P>=c&&(P=c-.001,H=!1,j()),h(P),Y(),requestAnimationFrame(N))}function J(t){H=t,t?(P>=c-.05&&(P=0),L=performance.now(),B&&z(P),requestAnimationFrame(N)):j(),Y()}O.onclick=()=>J(!H),D.onclick=()=>J(!0),G.onclick=()=>{B=!B,H&&(B?z(P):j()),Y()},l.root.querySelector(\"#fs\").onclick=()=>{const t=l.root.host||document.documentElement;document.fullscreenElement?document.exitFullscreen():t.requestFullscreen&&t.requestFullscreen()};const X=e=>{const s=V.getBoundingClientRect();P=t((e.clientX-s.left)/s.width)*c,h(P),Y(),H&&B&&z(P)};function Q(){const t=l.root.querySelector(\".vp\"),e=t.clientWidth||1280,a=(t.clientHeight||776)-56,i=Math.min(e/1920,a/1080);s.style.transform=\"translate(\"+(e-1920*i)/2+\"px,\"+(a-1080*i)/2+\"px) scale(\"+i+\")\"}V.onpointerdown=t=>{X(t),V.onpointermove=X},window.addEventListener(\"pointerup\",()=>{V.onpointermove=null}),l.root.host&&l.root.host.addEventListener(\"keydown\",t=>{\"Space\"===t.code&&(t.preventDefault(),J(!H))}),window.ResizeObserver&&new ResizeObserver(Q).observe(l.root.querySelector(\".vp\")),window.addEventListener(\"resize\",Q),Q(),h(0),Y()}};return l}();t.boot=function(e){let s;t.root=e,t.kitFor(),s={shelves(t,e){const s=t.rng(e);let a='<g class=\"shelves\"><rect width=\"1920\" height=\"1080\" style=\"fill:var(--wall)\"/>';return[210,470,730,990].forEach((t,e)=>{for(let e=-10;e<1940;){const i=46+70*s(),r=90+110*s(),o=Math.round(10+22*s()),n=s()<.7?\"var(--main)\":\"var(--accent)\";a+='<rect x=\"'+e.toFixed(0)+'\" y=\"'+(t-r).toFixed(0)+'\" width=\"'+i.toFixed(0)+'\" height=\"'+r.toFixed(0)+'\" rx=\"4\" style=\"fill:color-mix(in srgb, '+n+\" \"+o+'%, var(--ground))\"/>',a+='<rect x=\"'+(e+6).toFixed(0)+'\" y=\"'+(t-r+14).toFixed(0)+'\" width=\"'+(i-12).toFixed(0)+'\" height=\"10\" rx=\"3\" style=\"fill:var(--ground);opacity:.55\"/>',e+=i+6+(s()<.12?60:0)}a+='<rect x=\"0\" y=\"'+t+'\" width=\"1920\" height=\"18\" style=\"fill:var(--plank)\"/><rect x=\"0\" y=\"'+(t+18)+'\" width=\"1920\" height=\"8\" style=\"fill:color-mix(in srgb, var(--second) 8%, var(--wall))\"/>'}),a+\"</g>\"},cross(t,e){const s=22*e,a=64*e;return'<g class=\"'+t+'\"><path d=\"M'+-s+\" \"+-a+\"H\"+s+\"V\"+-s+\"H\"+a+\"V\"+s+\"H\"+s+\"V\"+a+\"H\"+-s+\"V\"+s+\"H\"+-a+\"V\"+-s+\"H\"+-s+'Z\" style=\"fill:var(--main)\"/><path d=\"M'+(8*e-s)+\" \"+(8*e-a)+\"H\"+(s-8*e)+'\" style=\"stroke:var(--ground);stroke-width:'+4*e+';opacity:.4\"/></g>'},chat(t,e,s){const a=s.id;let i=\"\";return e.forEach((e,s)=>{\"bot\"===e.from&&(i+='<div class=\"msg bot '+a+'-ty\" data-i=\"'+s+'\"><div class=\"bub\"><div class=\"dots\"><i></i><i></i><i></i></div></div></div>'),i+='<div class=\"msg '+e.from+\" \"+a+'-m\"><div class=\"bub\"><span class=\"'+a+'-tx\">'+t.esc(e.text)+\"</span>\"+(e.extra||\"\")+\"<small>\"+(e.time||\"\")+(\"me\"===e.from?\" ✓✓\":\"\")+\"</small></div></div>\"}),{markup:'<div class=\"ph '+a+'-ph\" style=\"left:'+s.x+\"px;top:\"+s.y+'px\"><div class=\"ph-screen\"><div class=\"ph-head\"><div class=\"ph-av\">E</div><div><div class=\"ph-name\">'+(s.title||\"Esteve Conecta\")+'</div><div class=\"ph-status '+a+'-st\">en línea</div></div></div><div class=\"ph-body\">'+i+'</div><div class=\"ph-input '+a+'-in\">Escribe un mensaje</div></div></div>',bind(t){this.ph=t.querySelector(\".\"+a+\"-ph\"),this.st=t.querySelector(\".\"+a+\"-st\"),this.inp=t.querySelector(\".\"+a+\"-in\");const s=t.querySelectorAll(\".\"+a+\"-m\"),i=t.querySelectorAll(\".\"+a+\"-ty\");this.items=e.map((t,e)=>({m:t,el:s[e],bub:s[e].firstChild})),this.typers=Array.from(i).map(t=>({el:t,bub:t.firstChild,dots:t.querySelectorAll(\"i\"),at:e[+t.dataset.i].at}))},render(e){let s=!1,a=\"\";for(const s of this.items){const i=t.eo(t.seg(e,s.m.at,s.m.at+.45));s.el.style.maxHeight=(560*i).toFixed(1)+\"px\",s.bub.style.opacity=i,s.bub.style.transform=\"scale(\"+t.lerp(.86,1,t.eob(t.clamp01(1.2*i),1.6)).toFixed(3)+\")\",\"me\"===s.m.from&&e>s.m.at-1.6&&e<s.m.at&&(a=t.streamed(s.m.text,e,s.m.at-1.5,Math.max(18,s.m.text.length/1.3)))}for(const a of this.typers){const i=Math.min(t.eo(t.seg(e,a.at-1.1,a.at-.85)),1-t.eo(t.seg(e,a.at-.12,a.at)));i>.5&&(s=!0),a.el.style.maxHeight=(90*i).toFixed(1)+\"px\",a.bub.style.opacity=i,a.dots.forEach((t,s)=>{t.style.transform=\"translateY(\"+(-5*Math.max(0,Math.sin(7*e-.9*s))).toFixed(1)+\"px)\"})}this.st.textContent=s?\"escribiendo…\":\"en línea\",this.inp.textContent=a||\"Escribe un mensaje\",this.inp.style.color=a?\"var(--second)\":\"var(--ink2)\"}}}},function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;t.scene(\"reto\",{init(t){const e=t.rng(7),a=[[1190,400,175],[1560,740,130]];let i=\"\";this.dots=[];for(let t=0;t<16;t++)for(let s=0;s<18;s++){const r=1010+46*s+14*(e()-.5),o=186+46*t+14*(e()-.5),n=a.some(([t,e,s])=>Math.hypot(r-t,o-e)<s);this.dots.push({at:1.6*e()+.035*(s+t),lit:n}),i+='<circle cx=\"'+r.toFixed(1)+'\" cy=\"'+o.toFixed(1)+'\" r=\"11\"/>'}t.stage.append(t.h('<div class=\"ground\"><svg class=\"art reto-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\" style=\"width:100%;background:color-mix(in srgb, var(--ground) 88%, transparent)\"></div><svg class=\"art reto-grid\" viewBox=\"0 0 1920 1080\"><g class=\"reto-dots\">'+i+\"</g>\"+a.map((t,e)=>'<circle class=\"reto-ring reto-ring'+e+'\" cx=\"'+t[0]+'\" cy=\"'+t[1]+'\" r=\"'+(t[2]+14)+'\" style=\"fill:none;stroke:var(--main);stroke-width:4;stroke-dasharray:14 12\"/>').join(\"\")+'</svg><div class=\"words\" style=\"left:120px;top:250px;width:800px\"><p class=\"kicker\">El reto</p><div class=\"reto-num\" style=\"font-family:var(--display, var(--sans, system-ui, sans-serif));font-size:210px;font-weight:700;line-height:1;color:var(--main);font-variant-numeric:tabular-nums\">25.000</div><h2 class=\"line\">farmacias en España</h2><p class=\"sub reto-sub\">La fuerza de ventas solo puede visitar una parte de ellas.</p></div><div class=\"words reto-legend\" style=\"left:1010px;top:946px;flex-direction:row;gap:40px;font-size:26px\"><span><b style=\"color:var(--main)\">●</b> Con visita comercial</span><span><b style=\"color:var(--ink2)\">●</b> Sin atención directa</span></div></div>'));const r=e=>t.stage.querySelector(e);this.circles=Array.from(r(\".reto-dots\").children),Object.assign(this,{far:r(\".reto-far\"),grid:r(\".reto-grid\"),num:r(\".reto-num\"),line:r(\".line\"),sub:r(\".reto-sub\"),legend:r(\".reto-legend\"),rings:t.stage.querySelectorAll(\".reto-ring\")})},render(t){const s=i(e(t,0,7));this.far.style.transform=\"scale(\"+o(1.02,1.05,s)+\")\",this.grid.style.transform=\"scale(\"+o(1,1.035,s)+\")\",this.grid.style.transformOrigin=\"1400px 540px\";const c=i(e(t,3.4,4.6));this.dots.forEach((s,i)=>{const l=this.circles[i],d=a(e(t+.6,s.at,s.at+.5));l.style.opacity=d,l.setAttribute(\"r\",(11*r(n(d),1.7)).toFixed(2)),l.style.fill=s.lit?\"color-mix(in srgb, var(--main) \"+Math.round(o(28,100,c))+\"%, var(--ground))\":\"color-mix(in srgb, var(--second) \"+Math.round(o(28,18,c))+\"%, var(--ground))\"}),this.rings.forEach((s,i)=>{const r=a(e(t,3.6+.3*i,4.8+.3*i));s.style.opacity=r,s.style.strokeDashoffset=(18*-t).toFixed(1)});const d=10*Math.round(o(12500,25e3,a(e(t,-.4,2.2)))/10);this.num.textContent=d.toLocaleString(\"es-ES\").replace(/,/g,\".\").replace(/ /g,\".\"),this.num.style.transform=\"translateX(\"+(-2*t).toFixed(1)+\"px)\",l.fadeFromRight(this.line,t,.3),this.sub.style.opacity=a(e(t,3.6,4.2)),this.sub.style.transform=\"translateY(\"+o(24,0,a(e(t,3.6,4.2)))+\"px)\",this.legend.style.opacity=a(e(t,4.4,5))}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;t.scene(\"canal\",{init(t){this.chat=s.chat(t,[{from:\"bot\",at:2.9,time:\"09:01\",text:\"¡Hola, Farmacia Sol! Soy el asistente de Esteve. ¿En qué te ayudo hoy?\",extra:'<div class=\"chips\"><span class=\"chip\">Hacer un pedido</span><span class=\"chip\">Estado de mi pedido</span><span class=\"chip\">Pagos y facturas</span><span class=\"chip\">Otra consulta</span></div>'}],{id:\"canal\",x:1200,y:36}),t.stage.append(t.h('<div class=\"ground\"><svg class=\"art canal-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\"></div><svg class=\"art canal-sign\" viewBox=\"0 0 1920 1080\"><g transform=\"translate(200 180)\">'+s.cross(\"canal-cross\",.9)+\"</g></svg>\"+this.chat.markup+'<div class=\"words\" style=\"left:120px;top:330px;width:900px\"><p class=\"kicker\">Esteve Conecta</p><h2 class=\"line\">Un canal directo con cada farmacia</h2><p class=\"sub canal-sub\">Por WhatsApp, 24 horas al día, 7 días a la semana.</p></div></div>'));const e=e=>t.stage.querySelector(e);this.chat.bind(t.stage),Object.assign(this,{far:e(\".canal-far\"),sign:e(\".canal-cross\"),line:e(\".line\"),sub:e(\".canal-sub\"),kick:e(\".kicker\")})},render(s){this.far.style.transform=\"scale(\"+o(1.05,1.08,i(e(s,0,7)))+\")\";const c=r(n(e(s,.2,1.5)),1.5);this.chat.ph.style.transform=\"translateY(\"+o(1100,0,c).toFixed(1)+\"px) rotate(\"+o(6,0,c).toFixed(2)+\"deg)\",this.chat.render(s);const d=r(n(e(s,-.3,.6)),1.6)*t.breathe(s,.02,3);this.sign.setAttribute(\"transform\",\"scale(\"+d.toFixed(3)+\") rotate(\"+(3*Math.sin(.8*s)).toFixed(2)+\")\"),this.kick.style.opacity=a(e(s,-.2,.4)),l.fadeFromRight(this.line,s,.1),this.sub.style.opacity=a(e(s,1.6,2.2)),this.sub.style.transform=\"translateY(\"+o(24,0,a(e(s,1.6,2.2)))+\"px)\"}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;Object.assign(s,{checks:(t,e)=>'<div class=\"'+t+'\" style=\"display:flex;flex-direction:column;gap:22px;margin-top:18px\">'+e.map(e=>'<div class=\"'+t+'-row\" style=\"display:flex;align-items:center;gap:22px;font-size:34px\"><svg width=\"52\" height=\"52\" viewBox=\"0 0 52 52\" style=\"flex:none\"><circle cx=\"26\" cy=\"26\" r=\"24\" style=\"fill:var(--main)\"/><path d=\"M15 27 L23 35 L38 18\" pathLength=\"1\" style=\"fill:none;stroke:var(--ground);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1\"/></svg><span>'+e.text+\"</span></div>\").join(\"\")+\"</div>\",checksRender(e,s,a,i){e.querySelectorAll(\".\"+s+\"-row\").forEach((e,s)=>{const r=t.eo(t.seg(i,a[s].at,a[s].at+.5));e.style.opacity=r,e.style.transform=\"translateX(\"+t.lerp(-30,0,r).toFixed(1)+\"px)\",e.querySelector(\"path\").style.strokeDashoffset=(1-t.eo(t.seg(i,a[s].at+.2,a[s].at+.6))).toFixed(3)})}}),t.scene(\"pedido\",{init(t){this.rows=[{text:\"Productos identificados al instante\",at:4.6},{text:\"Precios y condiciones de la farmacia\",at:5.6},{text:\"Fecha de entrega confirmada\",at:9.8}],this.chat=s.chat(t,[{from:\"bot\",at:-5,time:\"09:01\",text:\"¡Hola, Farmacia Sol! Soy el asistente de Esteve. ¿En qué te ayudo hoy?\"},{from:\"me\",at:1.8,time:\"09:02\",text:\"Hola, necesito 24 cajas de Analgésico 1 g y 12 de Colirio Hidratante 10 ml\"},{from:\"bot\",at:4.2,time:\"09:02\",text:\"Perfecto. Este es tu pedido:\",extra:'<div class=\"card\"><div class=\"row\"><span>Analgésico 1 g × 24</span><span>86,40 €</span></div><div class=\"row\"><span>Colirio Hidratante × 12</span><span>71,40 €</span></div><div class=\"row\"><span>Descuento por volumen</span><span>−7,90 €</span></div><div class=\"row\" style=\"border-top:1px solid var(--plank);margin-top:4px;padding-top:6px\"><b>Total</b><b>149,90 €</b></div></div><div class=\"chips\"><span class=\"chip\">Confirmar</span><span class=\"chip\">Modificar</span></div>'},{from:\"me\",at:7.6,time:\"09:03\",text:\"Confirmar\"},{from:\"bot\",at:9.4,time:\"09:03\",text:\"Pedido #48213 confirmado ✓\",extra:'<div class=\"card\"><div class=\"row\"><span>Entrega prevista</span><b>jueves 13/11</b></div><div class=\"row\"><span>Franja</span><b>antes de las 12:00</b></div></div>'}],{id:\"pedido\",x:1200,y:36}),t.stage.append(t.h('<div class=\"ground\"><svg class=\"art pedido-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\"></div>'+this.chat.markup+'<div class=\"words\" style=\"left:120px;top:250px;width:940px\"><p class=\"kicker\">Hacer un pedido</p><h2 class=\"line\">Pide por chat, como hablas</h2>'+s.checks(\"pedido-ck\",this.rows)+\"</div></div>\"));const e=e=>t.stage.querySelector(e);this.chat.bind(t.stage),Object.assign(this,{far:e(\".pedido-far\"),line:e(\".line\"),kick:e(\".kicker\")})},render(t,r){this.far.style.transform=\"scale(\"+o(1.08,1.11,i(e(t,0,14)))+\")\",this.chat.ph.style.transform=\"translateY(\"+(-3*Math.sin(.6*t)).toFixed(1)+\"px)\",this.chat.render(t),this.kick.style.opacity=a(e(t,-.4,.2)),l.fadeFromRight(this.line,t,-.2),s.checksRender(r.stage,\"pedido-ck\",this.rows,t)}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;Object.assign(s,{van(t){const e=e=>'<g class=\"'+t+'-wh\" transform=\"translate('+e+' -16)\"><circle r=\"18\" style=\"fill:var(--second)\"/><circle r=\"7\" style=\"fill:var(--plank)\"/><path d=\"M-12 0 H12\" style=\"stroke:var(--plank);stroke-width:3\"/></g>';return'<g class=\"'+t+'\"><path d=\"M-80 -24 V-104 Q-80 -112 -72 -112 H40 Q48 -112 52 -104 L74 -70 L84 -64 Q90 -60 90 -52 V-24 Z\" style=\"fill:var(--ground);stroke:var(--second);stroke-width:4\"/><path d=\"M46 -100 L68 -68 H40 V-100 Z\" style=\"fill:color-mix(in srgb, var(--main) 30%, var(--ground))\"/><rect x=\"-80\" y=\"-62\" width=\"120\" height=\"10\" style=\"fill:var(--main)\"/><g transform=\"translate(-22 -86) scale(.28)\">'+s.cross(t+\"-x\",1)+\"</g>\"+e(-50)+e(56)+\"</g>\"}}),t.scene(\"tracking\",{init(t){this.chat=s.chat(t,[{from:\"bot\",at:-5,time:\"09:03\",text:\"Pedido #48213 confirmado ✓\"},{from:\"bot\",at:1,time:\"Mié 17:20\",text:\"Tu pedido #48213 ya está preparado en el almacén.\"},{from:\"bot\",at:3.8,time:\"Jue 08:10\",text:\"Tu pedido ha salido. Llega hoy entre las 10:00 y las 12:00.\"},{from:\"bot\",at:6.4,time:\"Jue 10:42\",text:\"Pedido entregado ✓ ¿Nos recomendarías? Puntúa de 0 a 10.\",extra:'<div class=\"chips\"><span class=\"chip\">0–6</span><span class=\"chip\">7–8</span><span class=\"chip\">9–10</span></div>'},{from:\"me\",at:8.6,time:\"Jue 10:45\",text:\"10, ¡todo perfecto!\"}],{id:\"tracking\",x:1200,y:36});this.stops=[[\"Preparado\",1],[\"En camino\",3.8],[\"Entregado\",6.4]];const e=[160,500,840];this.xs=e,t.stage.append(t.h('<div class=\"ground\"><svg class=\"art tracking-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\"></div>'+this.chat.markup+'<div class=\"words\" style=\"left:120px;top:200px;width:940px\"><p class=\"kicker\">Seguimiento proactivo</p><h2 class=\"line\">Avisamos antes de que pregunten</h2></div><svg class=\"art tracking-road\" viewBox=\"0 0 1920 1080\"><path d=\"M140 760 H880\" style=\"stroke:var(--plank);stroke-width:12;stroke-linecap:round\"/><path class=\"tracking-done\" d=\"M160 760 H840\" pathLength=\"1\" style=\"stroke:var(--main);stroke-width:12;stroke-linecap:round;stroke-dasharray:1 1\"/>'+e.map((t,e)=>'<g class=\"tracking-stop\" transform=\"translate('+t+' 760)\"><circle r=\"30\" style=\"fill:var(--ground);stroke:var(--plank);stroke-width:8\"/><circle class=\"tracking-dot\" r=\"30\" style=\"fill:var(--main)\"/></g>').join(\"\")+'<g class=\"tracking-vanpos\">'+s.van(\"tracking-van\")+\"</g></svg>\"+e.map((t,e)=>'<div class=\"words tracking-lab\" style=\"left:'+(t-120)+'px;top:812px;width:240px;align-items:center;font-size:30px;font-weight:700\"><span>'+[\"Preparado\",\"En camino\",\"Entregado\"][e]+\"</span></div>\").join(\"\")+\"</div>\"));const a=e=>t.stage.querySelector(e);this.chat.bind(t.stage),Object.assign(this,{far:a(\".tracking-far\"),line:a(\".line\"),kick:a(\".kicker\"),done:a(\".tracking-done\"),vpos:a(\".tracking-vanpos\"),wh:t.stage.querySelectorAll(\".tracking-van-wh\"),dots:t.stage.querySelectorAll(\".tracking-dot\"),labs:t.stage.querySelectorAll(\".tracking-lab\")})},render(t){this.far.style.transform=\"scale(\"+o(1.11,1.14,i(e(t,0,10)))+\")\",this.chat.render(t),this.kick.style.opacity=a(e(t,-.4,.2)),l.fadeFromRight(this.line,t,-.2);const s=i(e(t,3.9,6.3)),c=this.xs[0]+(this.xs[2]-this.xs[0])*(.5*i(e(t,1.2,3.6))+.5*s);this.done.style.strokeDashoffset=(1-(c-160)/680).toFixed(3);const d=2*Math.abs(Math.sin(9*t))*(e(t,1.2,6.3)>0&&e(t,1.2,6.3)<1?1:0);this.vpos.setAttribute(\"transform\",\"translate(\"+c.toFixed(1)+\" \"+(752-d).toFixed(1)+\")\"),this.wh.forEach((t,e)=>t.setAttribute(\"transform\",\"translate(\"+(e?56:-50)+\" -16) rotate(\"+(1.4*c).toFixed(1)+\")\")),this.stops.forEach(([,s],i)=>{const l=r(n(e(t,s,s+.5)),1.7);this.dots[i].setAttribute(\"r\",(30*l).toFixed(2)),this.labs[i].style.opacity=o(.35,1,a(e(t,s,s+.4)))})}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;t.scene(\"sugerencia\",{init(t){this.chat=s.chat(t,[{from:\"me\",at:-5,time:\"Jue 10:45\",text:\"10, ¡todo perfecto!\"},{from:\"bot\",at:1.2,time:\"Lun 09:00\",text:\"Buenos días. Sueles pedir Colirio Hidratante cada 15 días y tu stock estimado se agota el jueves.\"},{from:\"bot\",at:3.8,time:\"Lun 09:00\",text:\"¿Repetimos tus 12 unidades? Llegarían el miércoles.\",extra:'<div class=\"chips\"><span class=\"chip\">Sí, repetir</span><span class=\"chip\">Añadir más</span><span class=\"chip\">Ahora no</span></div>'},{from:\"me\",at:6.8,time:\"Lun 09:04\",text:\"Sí, y añade 6 de Analgésico 1 g\"},{from:\"bot\",at:8.8,time:\"Lun 09:04\",text:\"Hecho ✓ Pedido #48377 con 12 Colirio Hidratante y 6 Analgésico 1 g. Entrega el miércoles.\"}],{id:\"sug\",x:1200,y:36});const e=[150,260,370,480,590,700,840],a=[150,165,150,158,150,162,150];this.bx=e;const i=e.map((t,e)=>e<6?'<rect class=\"sug-bar\" x=\"'+t+'\" y=\"'+(720-a[e])+'\" width=\"70\" height=\"'+a[e]+'\" rx=\"8\" style=\"fill:var(--main)\"/>':'<rect class=\"sug-bar\" x=\"'+t+'\" y=\"'+(720-a[e])+'\" width=\"70\" height=\"'+a[e]+'\" rx=\"8\" style=\"fill:color-mix(in srgb, var(--accent) 30%, var(--ground));stroke:var(--accent);stroke-width:4;stroke-dasharray:12 8\"/>').join(\"\");t.stage.append(t.h('<div class=\"ground\"><svg class=\"art sug-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\"></div>'+this.chat.markup+'<div class=\"words\" style=\"left:120px;top:150px;width:960px\"><p class=\"kicker\">Venta proactiva</p><h2 class=\"line\">Sugerimos antes de que falte</h2></div><svg class=\"art sug-chart\" viewBox=\"0 0 1920 1080\"><path d=\"M130 722 H930\" style=\"stroke:var(--plank);stroke-width:4\"/>'+i+'<rect x=\"150\" y=\"880\" width=\"760\" height=\"34\" rx=\"17\" style=\"fill:var(--plank)\"/><rect class=\"sug-fill\" x=\"150\" y=\"880\" width=\"760\" height=\"34\" rx=\"17\" style=\"fill:var(--main)\"/></svg><div class=\"words sug-cap1\" style=\"left:150px;top:740px;width:780px;font-size:26px;color:var(--ink2)\"><span>Pedidos de Colirio Hidratante · cada 15 días</span></div><div class=\"words sug-sug\" style=\"left:770px;top:478px;width:220px;align-items:center;font-size:24px;font-weight:700;color:var(--second)\"><span>Sugerido</span></div><div class=\"words\" style=\"left:150px;top:826px;width:780px;flex-direction:row;justify-content:space-between;font-size:28px;font-weight:600\"><span>Stock estimado en la farmacia</span><span class=\"sug-pct\" style=\"font-variant-numeric:tabular-nums\">70 %</span></div></div>'));const r=e=>t.stage.querySelector(e);this.chat.bind(t.stage),Object.assign(this,{far:r(\".sug-far\"),line:r(\".line\"),kick:r(\".kicker\"),bars:t.stage.querySelectorAll(\".sug-bar\"),fill:r(\".sug-fill\"),pct:r(\".sug-pct\"),sug:r(\".sug-sug\"),cap:r(\".sug-cap1\")})},render(t){this.far.style.transform=\"scale(\"+o(1.14,1.17,i(e(t,0,12)))+\")\",this.chat.render(t),this.kick.style.opacity=a(e(t,-.4,.2)),l.fadeFromRight(this.line,t,-.2),this.bars.forEach((s,a)=>{const i=a<6?.18*a-.4:4,o=r(n(e(t,i,i+.5)),1.5);s.style.transform=\"scaleY(\"+o.toFixed(3)+\")\",s.style.transformOrigin=\"0 720px\",s.style.transformBox=\"view-box\"}),this.sug.style.opacity=a(e(t,4.3,4.8)),this.cap.style.opacity=a(e(t,.4,1));const s=t<8.8?o(70,12,i(e(t,.2,3.4))):o(12,100,r(n(e(t,8.8,9.6)),1.3));this.fill.setAttribute(\"width\",(760*Math.max(.04,s/100)).toFixed(1)),this.fill.style.fill=s<30?\"var(--accent)\":\"var(--main)\",this.pct.textContent=Math.round(s)+\" %\"}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;t.scene(\"consultas\",{init(t){this.chat=s.chat(t,[{from:\"bot\",at:-5,time:\"Lun 09:04\",text:\"Hecho ✓ Pedido #48377 con 12 Colirio Hidratante y 6 Analgésico 1 g. Entrega el miércoles.\"},{from:\"me\",at:1,time:\"Mar 11:20\",text:\"Cancela el pedido #48377, por favor\"},{from:\"bot\",at:2.6,time:\"Mar 11:20\",text:\"Pedido #48377 cancelado ✓ No se te facturará nada.\"},{from:\"me\",at:4.6,time:\"Mar 11:22\",text:\"¿Tengo alguna factura pendiente?\"},{from:\"bot\",at:6.1,time:\"Mar 11:22\",text:\"Tienes 1 factura de 340,20 € que vence el 20/11.\",extra:'<div class=\"chips\"><span class=\"chip\">Ver factura</span><span class=\"chip\">Pagar ahora</span></div>'},{from:\"me\",at:8.2,time:\"Mar 11:25\",text:\"Necesito Jarabe Infantil 100 ml\"},{from:\"bot\",at:9.9,time:\"Mar 11:25\",text:\"Ahora está agotado. Lo dejo como pedido pendiente y te aviso al llegar, previsto el 18/11.\"}],{id:\"cons\",x:1200,y:36}),this.spans=[[.6,4.4],[4.4,8],[8,13.5]];const e=['<path d=\"M-16 -16 L16 16 M16 -16 L-16 16\" style=\"stroke:var(--ground);stroke-width:7;stroke-linecap:round\"/>','<rect x=\"-20\" y=\"-14\" width=\"40\" height=\"28\" rx=\"5\" style=\"fill:none;stroke:var(--ground);stroke-width:5\"/><path d=\"M-20 -4 H20\" style=\"stroke:var(--ground);stroke-width:5\"/>','<circle r=\"18\" style=\"fill:none;stroke:var(--ground);stroke-width:5\"/><path d=\"M0 -9 V1 L7 6\" style=\"fill:none;stroke:var(--ground);stroke-width:5;stroke-linecap:round\"/>'];t.stage.append(t.h('<div class=\"ground\"><svg class=\"art cons-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\"></div>'+this.chat.markup+'<div class=\"words\" style=\"left:120px;top:150px;width:960px\"><p class=\"kicker\">Y todo lo demás</p><h2 class=\"line\">Cualquier gestión, en segundos</h2></div><div class=\"cons-list\" style=\"position:absolute;left:120px;top:440px;width:900px;display:flex;flex-direction:column;gap:26px\">'+[[\"Cancelar un pedido\",\"Anulado al momento, sin llamadas\"],[\"Consultar pagos\",\"Facturas y vencimientos al día\"],[\"Faltas de producto\",\"Pedido pendiente y aviso automático\"]].map((t,s)=>'<div class=\"cons-card\" style=\"display:flex;align-items:center;gap:30px;padding:24px 30px;border-radius:26px;background:var(--ground);box-shadow:0 8px 24px rgba(0,0,0,.08)\"><svg width=\"84\" height=\"84\" viewBox=\"-42 -42 84 84\" style=\"flex:none\"><circle class=\"cons-disc\" r=\"42\" style=\"fill:var(--main)\"/>'+e[s]+'</svg><div style=\"display:flex;flex-direction:column;gap:6px\"><b style=\"font-size:38px;font-family:var(--display, var(--sans, system-ui, sans-serif))\">'+t[0]+'</b><span style=\"font-size:27px;color:var(--ink2)\">'+t[1]+\"</span></div></div>\").join(\"\")+\"</div></div>\"));const a=e=>t.stage.querySelector(e);this.chat.bind(t.stage),Object.assign(this,{far:a(\".cons-far\"),line:a(\".line\"),kick:a(\".kicker\"),cards:t.stage.querySelectorAll(\".cons-card\"),discs:t.stage.querySelectorAll(\".cons-disc\")})},render(t){this.far.style.transform=\"scale(\"+o(1.17,1.2,i(e(t,0,13)))+\")\",this.chat.render(t),this.kick.style.opacity=a(e(t,-.4,.2)),l.fadeFromRight(this.line,t,-.2),this.spans.forEach(([s,i],l)=>{const c=r(n(e(t,s-.3,s+.3)),1.5),d=Math.min(a(e(t,s,s+.4)),1-a(e(t,i,i+.4))),p=this.cards[l];p.style.opacity=o(0,1,a(e(t,s-.3,s+.2)))*o(.5,1,Math.max(d,0)),t>i+.4&&(p.style.opacity=.55),p.style.transform=\"translateX(\"+o(-40,0,c).toFixed(1)+\"px) scale(\"+o(1,1.04,d).toFixed(3)+\")\",p.style.outline=d>.5?\"4px solid var(--main)\":\"4px solid transparent\",this.discs[l].style.fill=d>.5||t<s?\"var(--main)\":\"color-mix(in srgb, var(--main) 55%, var(--ground))\"})}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;t.scene(\"todo\",{init(t){this.chat=s.chat(t,[{from:\"bot\",at:-5,time:\"Mar 11:25\",text:\"Ahora está agotado. Lo dejo como pedido pendiente y te aviso al llegar, previsto el 18/11.\"},{from:\"me\",at:-4,time:\"Mar 11:26\",text:\"De acuerdo, gracias\"}],{id:\"todo\",x:1200,y:36}),this.items=[\"Pedidos\",\"Cancelaciones\",\"Seguimiento de entregas\",\"Pagos y facturas\",\"Faltas de stock\",\"Pedidos pendientes\",\"Sugerencias de compra\",\"Información de producto\"],t.stage.append(t.h('<div class=\"ground\"><svg class=\"art todo-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\" style=\"width:100%;background:color-mix(in srgb, var(--ground) 86%, transparent)\"></div><svg class=\"art todo-orbit\" viewBox=\"0 0 1920 1080\"><ellipse cx=\"960\" cy=\"600\" rx=\"640\" ry=\"400\" style=\"fill:none;stroke:var(--plank);stroke-width:4;stroke-dasharray:10 14\"/></svg>'+this.chat.markup+this.items.map(t=>'<div class=\"todo-chip\" style=\"position:absolute;left:0;top:0;padding:18px 30px;border-radius:40px;background:var(--main);color:var(--ground);font-size:32px;font-weight:700;white-space:nowrap;box-shadow:0 10px 26px rgba(0,0,0,.14)\">'+t+\"</div>\").join(\"\")+'<div class=\"words\" style=\"left:0;right:0;top:56px;align-items:center;text-align:center\"><h2 class=\"line\">Un solo canal para todo</h2></div></div>'));const e=e=>t.stage.querySelector(e);this.chat.bind(t.stage),Object.assign(this,{far:e(\".todo-far\"),line:e(\".line\"),orbit:e(\".todo-orbit\"),chips:Array.from(t.stage.querySelectorAll(\".todo-chip\"))}),this.w=this.chips.map(t=>t.offsetWidth||300)},render(t){this.far.style.transform=\"scale(\"+o(1.2,1.23,i(e(t,0,8)))+\")\";const s=i(e(t,0,1.3));this.chat.ph.style.transform=\"translate(\"+o(0,-510,s).toFixed(1)+\"px,\"+o(0,60,s).toFixed(1)+\"px) scale(\"+o(1,.66,s).toFixed(3)+\")\",this.chat.render(t),l.fadeFromRight(this.line,t,.6),this.orbit.style.opacity=a(e(t,1,1.8));const c=this.chips.length;this.chips.forEach((s,a)=>{const i=1.3+.3*a,o=r(n(e(t,i,i+.5)),1.7),l=a/c*Math.PI*2-Math.PI/2+.12*t,d=960+640*Math.cos(l)-this.w[a]/2,p=600+400*Math.sin(l)-38;s.style.opacity=n(o),s.style.transform=\"translate(\"+d.toFixed(1)+\"px,\"+p.toFixed(1)+\"px) scale(\"+o.toFixed(3)+\")\"})}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;t.scene(\"resultados\",{init(t){const e=[390,960,1530];this.cx=e;const a=[0,1,2,3].map(t=>'<rect class=\"res-bar\" x=\"'+(e[0]-110+58*t)+'\" y=\"0\" width=\"42\" height=\"10\" rx=\"6\" style=\"fill:var(--main)\"/>').join(\"\"),i=Array.from({length:8},(t,e)=>'<rect x=\"-14\" y=\"-96\" width=\"28\" height=\"30\" rx=\"5\" transform=\"rotate('+45*e+')\" style=\"fill:var(--main)\"/>').join(\"\"),r=(t,e,s)=>{const a=t=>(110*Math.cos(t)).toFixed(1)+\" \"+(110*-Math.sin(t)).toFixed(1);return'<path d=\"M'+a(t)+\" A110 110 0 0 1 \"+a(e)+'\" style=\"fill:none;stroke:'+s+';stroke-width:30\"/>'};t.stage.append(t.h('<div class=\"ground\"><svg class=\"art res-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\" style=\"width:100%;background:color-mix(in srgb, var(--ground) 90%, transparent)\"></div><div class=\"words\" style=\"left:0;right:0;top:80px;align-items:center;text-align:center\"><p class=\"kicker\">Resultados esperados</p><h2 class=\"line\">Tres objetivos, un solo canal</h2></div><svg class=\"art res-icons\" viewBox=\"0 0 1920 1080\"><g class=\"res-i0\"><path d=\"M'+(e[0]-130)+\" 520 H\"+(e[0]+130)+'\" style=\"stroke:var(--second);stroke-width:5;stroke-linecap:round\"/>'+a+'<path class=\"res-arrow\" d=\"M'+(e[0]-110)+\" 470 L\"+(e[0]+120)+' 330\" pathLength=\"1\" style=\"fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round;stroke-dasharray:1 1\"/></g><g class=\"res-i1\" transform=\"translate('+e[1]+' 425)\"><g class=\"res-gear\">'+i+'<circle r=\"78\" style=\"fill:var(--main)\"/><circle r=\"32\" style=\"fill:var(--ground)\"/></g><circle class=\"res-small\" cx=\"92\" cy=\"76\" r=\"0\" style=\"fill:var(--accent)\"/></g><g class=\"res-i2\" transform=\"translate('+e[2]+' 500)\">'+r(Math.PI,.62*Math.PI,\"color-mix(in srgb, var(--second) 25%, var(--ground))\")+r(.62*Math.PI,.38*Math.PI,\"color-mix(in srgb, var(--accent) 70%, var(--ground))\")+r(.38*Math.PI,0,\"var(--main)\")+'<g class=\"res-needle\"><path d=\"M-8 0 L0 -100 L8 0 Z\" style=\"fill:var(--second)\"/><circle r=\"16\" style=\"fill:var(--second)\"/></g></g></svg>'+[[\"Más ventas\",\"Cobertura de las 25.000 farmacias y sugerencias de reposición en el momento justo\"],[\"Más productividad\",\"Pedidos y consultas procesados sin intervención manual\"],[\"Más satisfacción\",\"Respuesta inmediata 24/7 y NPS medido en cada entrega\"]].map((t,s)=>'<div class=\"words res-col\" style=\"left:'+(e[s]-250)+'px;top:600px;width:500px;align-items:center;text-align:center;gap:16px\"><h3 style=\"font-family:var(--display, var(--sans, system-ui, sans-serif));font-size:56px;font-weight:700;color:var(--main)\">'+t[0]+'</h3><p class=\"sub\" style=\"font-size:30px\">'+t[1]+\"</p></div>\").join(\"\")+\"</div>\"));const o=e=>t.stage.querySelector(e);Object.assign(this,{far:o(\".res-far\"),line:o(\".line\"),kick:o(\".kicker\"),bars:t.stage.querySelectorAll(\".res-bar\"),arrow:o(\".res-arrow\"),gear:o(\".res-gear\"),small:o(\".res-small\"),needle:o(\".res-needle\"),cols:t.stage.querySelectorAll(\".res-col\"),icons:[o(\".res-i0\"),o(\".res-i1\"),o(\".res-i2\")]})},render(s){this.far.style.transform=\"scale(\"+o(1.23,1.26,i(e(s,0,10)))+\")\",this.kick.style.opacity=a(e(s,-.4,.2)),l.fadeFromRight(this.line,s,-.2);const c=[1,3,5];this.cols.forEach((t,i)=>{const r=a(e(s,c[i]+.3,c[i]+.9));t.style.opacity=r,t.style.transform=\"translateY(\"+o(30,0,r).toFixed(1)+\"px)\"}),this.icons.forEach((t,i)=>{t.style.opacity=a(e(s,c[i]-.2,c[i]+.3))});const d=[60,95,130,175];this.bars.forEach((a,i)=>{const o=d[i]*r(n(e(s,1+.18*i,1.5+.18*i)),1.5)*t.breathe(s,.02,3);a.setAttribute(\"y\",(520-o).toFixed(1)),a.setAttribute(\"height\",Math.max(0,o).toFixed(1))}),this.arrow.style.strokeDashoffset=(1-a(e(s,1.8,2.6))).toFixed(3),this.gear.setAttribute(\"transform\",\"rotate(\"+(90*a(e(s,3,4))+12*s).toFixed(1)+\")\"),this.small.setAttribute(\"r\",(26*r(n(e(s,3.4,3.9)),1.8)).toFixed(1));const p=o(-80,62,r(n(e(s,5.2,6.4)),1.3))+2*Math.sin(2*s);this.needle.setAttribute(\"transform\",\"rotate(\"+p.toFixed(2)+\")\")}})}(t.kitFor()),function(t){const{seg:e,eo:a,eio:i,eob:r,lerp:o,clamp01:n,TextFx:l}=t;t.scene(\"cierre\",{init(t){t.stage.append(t.h('<div class=\"ground\"><svg class=\"art cie-far\" viewBox=\"0 0 1920 1080\">'+s.shelves(t,3)+'</svg><div class=\"calm\" style=\"width:100%;background:color-mix(in srgb, var(--ground) 92%, transparent)\"></div><svg class=\"art\" viewBox=\"0 0 1920 1080\"><g class=\"cie-pos\" transform=\"translate(960 280)\">'+s.cross(\"cie-cross\",1.2)+'</g></svg><div class=\"words\" style=\"left:0;right:0;top:420px;align-items:center;text-align:center;gap:20px\"><div class=\"cie-brand\" style=\"font-family:var(--display, var(--sans, system-ui, sans-serif));font-size:220px;font-weight:700;letter-spacing:.08em;line-height:1;color:var(--second)\"><img src=\"https://people-roger-valim.data2.media/file/t2GHJ_d_HV2Oacr7EfGlA\" alt=\"Esteve\" style=\"display:block;height:300px;margin:0 auto;\"></div><p class=\"kicker cie-prod\" style=\"font-size:40px\">Esteve Conecta</p><p class=\"sub cie-sub\" style=\"font-size:44px\">Tu farmacia, siempre conectada.</p></div><div class=\"cie-bar\" style=\"position:absolute;left:810px;top:930px;width:300px;height:10px;border-radius:5px;background:var(--accent)\"></div></div>'));const e=e=>t.stage.querySelector(e);Object.assign(this,{far:e(\".cie-far\"),cross:e(\".cie-cross\"),brand:e(\".cie-brand\"),prod:e(\".cie-prod\"),sub:e(\".cie-sub\"),bar:e(\".cie-bar\")})},render(s){this.far.style.transform=\"scale(\"+o(1.26,1.29,i(e(s,0,8)))+\")\";const l=r(n(e(s,-.2,.7)),1.7)*t.breathe(s,.015,3);this.cross.setAttribute(\"transform\",\"scale(\"+l.toFixed(3)+\") rotate(\"+o(-90,0,a(e(s,-.2,.9))).toFixed(1)+\")\");const c=a(e(s,.6,1.5));this.brand.style.opacity=c,this.brand.style.letterSpacing=o(.3,.08,c).toFixed(3)+\"em\",this.brand.style.transform=\"scale(\"+(1+.004*s).toFixed(4)+\")\",this.prod.style.opacity=a(e(s,1.6,2.1)),this.sub.style.opacity=a(e(s,2.1,2.7)),this.sub.style.transform=\"translateY(\"+o(20,0,a(e(s,2.1,2.7))).toFixed(1)+\"px)\",this.bar.style.transform=\"scaleX(\"+a(e(s,2.6,3.3)).toFixed(3)+\")\"}})}(t.kitFor()),t.kitFor().score(function(t,e){t.tempo(96,{t0:0}),t.program(\"pad\",\"pad\",{rev:.6,gain:-4}),t.program(\"bass\",\"bass\",{gain:-2}),t.program(\"mal\",\"marimba\",{pan:.2,rev:.3}),t.program(\"ep\",\"ep\",{rev:.4,pan:-.2});const s=[[\"A3\",\"C#4\",\"E4\"],[\"F#3\",\"A3\",\"C#4\"],[\"D3\",\"F#3\",\"A3\"],[\"E3\",\"G#3\",\"B3\"]],a=[[\"A4\",\"C#5\",\"E5\",\"C#5\"],[\"F#4\",\"A4\",\"C#5\",\"A4\"],[\"D4\",\"F#4\",\"A4\",\"F#4\"],[\"E4\",\"G#4\",\"B4\",\"G#4\"]],i=[\"A2\",\"F#2\",\"D2\",\"E2\"],r=Math.floor(e.END/.625),o=Math.round(e.cierre/.625);for(let e=0;e<r-4;e+=4)t.chord(\"pad\",s[e/4%4],{beat:e,beats:4,vel:e<12?26:36});for(let e=12;e<o-4;e+=4){const s=e/4%4;if(t.note(\"bass\",i[s],{beat:e,beats:1.5,vel:60}),t.note(\"bass\",i[s],{beat:e+2.5,beats:1,vel:50}),e>=20)for(let i=0;i<8;i++)t.note(\"mal\",a[s][i%4],{beat:e+.5*i,beats:.4,vel:i%2?34:46})}t.drums({kick:\"x...x...\",hat:\"oxoxoxox\"},{from:20,repeat:Math.floor((o-4-20)/4)}),t.chord(\"ep\",[\"A3\",\"C#4\",\"E4\",\"B4\"],{t:e.cierre+.9,dur:5,vel:70}),t.chord(\"pad\",[\"A2\",\"E3\",\"A3\",\"C#4\"],{t:e.cierre+.9,dur:6.5,vel:52}),t.drum(\"crash\",{t:e.cierre+.9,vel:60}),t.fx(\"chime\",e.cierre+1),t.fx(\"revswell\",e.cierre+.9,{dur:1.6,vel:40}),t.fx(\"whoosh\",e.canal+.4,{dur:.6}),t.fx(\"whoosh\",e.todo+.1,{dur:.6});const n={canal:[2.9],pedido:[1.8,4.2,7.6,9.4],tracking:[1,3.8,6.4,8.6],sugerencia:[1.2,3.8,6.8,8.8],consultas:[1,2.6,4.6,6.1,8.2,9.9]};Object.keys(n).forEach(s=>n[s].forEach(a=>t.fx(\"pop\",e[s]+a,{vel:55}))),[4.6,5.6,9.8].forEach(s=>t.fx(\"tick\",e.pedido+s,{vel:50})),[1,3.8,6.4].forEach(s=>t.fx(\"ding\",e.tracking+s,{vel:40}));for(let s=0;s<8;s++)t.fx(\"click\",e.todo+1.3+.3*s,{vel:40});[1,3,5].forEach(s=>t.fx(\"ding\",e.resultados+s,{vel:50})),t.fx(\"sparkle\",e.reto+3.6,{vel:40}),t.master({gain:-6,fadeOut:2})}),t.start({scenes:[{id:\"reto\",dur:7},{id:\"canal\",dur:7},{id:\"pedido\",dur:14},{id:\"tracking\",dur:10},{id:\"sugerencia\",dur:12},{id:\"consultas\",dur:13},{id:\"todo\",dur:8},{id:\"resultados\",dur:10},{id:\"cierre\",dur:8}],hideCornerIn:[\"cierre\",\"todo\",\"resultados\"]})};export default {css:\":host{display:block;position:absolute;inset:0}\\n.vp{position:absolute;inset:0;overflow:hidden;background:#F5F8F7;font-family:Inter,system-ui,sans-serif}\\n#stage{position:absolute;left:0;top:0;width:1920px;height:1080px;overflow:hidden;transform-origin:0 0;--display:'Space Grotesk',Inter,system-ui,sans-serif;--sans:Inter,system-ui,sans-serif}\\n.scene{position:absolute;inset:0}\\n#corner{position:absolute;left:120px;bottom:46px;height:64px;z-index:5;pointer-events:none;}\\n#ctl{position:absolute;left:0;right:0;bottom:0;height:56px;display:flex;align-items:center;gap:16px;padding:0 18px;box-sizing:border-box;background:#10231F;color:#fff;font-size:14px;z-index:10}\\n#ctl button{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;padding:6px 12px;font:inherit;cursor:pointer}\\n#play{width:44px}\\n#bar{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.2);cursor:pointer;position:relative}\\n#fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:#0E7C66}\\n#time{font-variant-numeric:tabular-nums;min-width:96px;text-align:right}\\n#big{position:absolute;left:0;right:0;top:0;bottom:56px;display:flex;align-items:center;justify-content:center;z-index:9;cursor:pointer;background:rgba(0,0,0,.18)}\\n#big span{width:120px;height:120px;border-radius:50%;background:#0E7C66;color:#fff;display:flex;align-items:center;justify-content:center;font-size:48px;padding-left:8px;box-sizing:border-box}\\n#stage { --ground:#F5F8F7; --main:#0E7C66; --second:#10231F; --accent:#F2A23A; color:var(--second); font-family:var(--sans, system-ui, sans-serif);\\n  --wall:color-mix(in srgb, var(--main) 7%, var(--ground)); --plank:color-mix(in srgb, var(--main) 16%, var(--ground)); --chat:color-mix(in srgb, var(--main) 8%, var(--ground)); --mine:color-mix(in srgb, var(--accent) 24%, var(--ground)); --ink2:color-mix(in srgb, var(--second) 62%, var(--ground)); --deep:color-mix(in srgb, var(--main) 80%, var(--second)) }\\n.ground { position:absolute; inset:0; background:var(--ground) }\\n.words { position:absolute; margin:0; display:flex; flex-direction:column; gap:24px } .words > * { margin:0 }\\n.line { font-family:var(--display, var(--sans, system-ui, sans-serif)); font-size:84px; line-height:1.05; font-weight:700 } .sub { font-size:36px; line-height:1.3; color:var(--ink2) }\\n.kicker { font-size:26px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--main) }\\n.art { position:absolute; inset:0; width:100%; height:100%; overflow:visible }\\n.calm { position:absolute; left:0; top:0; bottom:0; width:62%; background:linear-gradient(90deg, color-mix(in srgb, var(--ground) 97%, transparent) 62%, transparent) }\\n.ph { position:absolute; width:540px; height:1010px; border-radius:66px; background:var(--second); box-shadow:0 40px 90px rgba(0,0,0,.28); padding:16px; box-sizing:border-box; transform-origin:50% 50% }\\n.ph-screen { position:relative; width:100%; height:100%; border-radius:52px; overflow:hidden; background:var(--chat); display:flex; flex-direction:column }\\n.ph-head { display:flex; align-items:center; gap:18px; padding:48px 26px 20px; background:var(--main); color:var(--ground); flex:none }\\n.ph-av { width:62px; height:62px; border-radius:50%; background:var(--ground); color:var(--main); display:flex; align-items:center; justify-content:center; font-family:var(--display, var(--sans, system-ui, sans-serif)); font-weight:700; font-size:32px; flex:none }\\n.ph-name { font-size:27px; font-weight:700 } .ph-status { font-size:19px; opacity:.85 }\\n.ph-body { flex:1; display:flex; flex-direction:column; justify-content:flex-end; padding:12px 18px 6px; overflow:hidden }\\n.ph-input { margin:8px 16px 22px; min-height:62px; border-radius:31px; background:var(--ground); display:flex; align-items:center; padding:10px 24px; box-sizing:border-box; font-size:21px; line-height:1.3; color:var(--ink2); flex:none }\\n.msg { display:flex; overflow:hidden; flex:none } .msg.me { justify-content:flex-end }\\n.bub { max-width:84%; margin:6px 0; padding:13px 18px; border-radius:22px; font-size:22px; line-height:1.32; background:var(--ground); box-shadow:0 2px 0 rgba(0,0,0,.06); transform-origin:0 100% }\\n.me .bub { background:var(--mine); transform-origin:100% 100%; border-bottom-right-radius:6px } .bot .bub { border-bottom-left-radius:6px }\\n.bub small { display:block; font-size:16px; color:var(--ink2); margin-top:3px; text-align:right }\\n.card { margin-top:10px; border-radius:14px; background:var(--chat); padding:10px 14px; font-size:19px }\\n.row { display:flex; justify-content:space-between; gap:14px; padding:3px 0 } .row b { font-weight:700 }\\n.chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px } .chip { border:2px solid var(--main); color:var(--main); border-radius:20px; padding:5px 14px; font-size:18px; font-weight:600 }\\n.dots { display:flex; gap:8px; padding:6px 2px } .dots i { width:12px; height:12px; border-radius:50%; background:var(--ink2); display:block }\\n.tag { display:inline-block; background:var(--main); color:var(--ground); border-radius:10px; padding:4px 12px; font-size:17px; font-weight:700; margin-bottom:6px }\",render:()=>'<div class=\"vp\"><div id=\"stage\"><img id=\"corner\" src=\"https://people-roger-valim.data2.media/file/t2GHJ_d_HV2Oacr7EfGlA\" alt=\"Esteve\"></div><div id=\"big\"><span>&#9654;</span></div><div id=\"ctl\"><button id=\"play\">&#9654;</button><div id=\"bar\"><div id=\"fill\"></div></div><span id=\"time\"></span><button id=\"snd\">Sonido</button><button id=\"fs\">Pantalla completa</button></div></div>',mounted(e,s){if(s.__booted)return;s.__booted=!0;const a=document.createElement(\"link\");a.rel=\"stylesheet\",a.href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Space+Grotesk:wght@500;700&display=swap\",document.head.appendChild(a),t.boot(s)}};"}}}}}}}}]}},{"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":"6af48313f39dff5a456fcef2","component":"data2-core-primitives@Router","system":"6af347e8eee50b21cc12f02a","displayName":"Esteve Conecta Router","params":{"routerType":{"component":"data2-core-primitives@String","params":{"content":"browser"}},"routes":[{"component":"data2-core-primitives@Route","params":{"path":"/","name":"Farmacia","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"8qWCW1fs57ep2kEDWpc_Y"}}}},{"component":"data2-core-primitives@Route","params":{"path":"/farmacia","name":"Visión farmacia","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"8qWCW1fs57ep2kEDWpc_Y"}}}},{"component":"data2-core-primitives@Route","params":{"path":"/backoffice","name":"Visión back-office","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"tWW_9cLBe5TMQHv_TCqhn"}}}}]},"reference":"esteve_conecta_router"},{"_id":"6af481e4a5dbbeef3dd12b8e","component":"data2-core-primitives@Artboard","system":"6af347e8eee50b21cc12f02a","displayName":"Esteve · Video back-office","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Esteve · Video back-office"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":866}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}}},"reference":"tWW_9cLBe5TMQHv_TCqhn"},{"_id":"6af481e9f39dff5a456fcb1a","component":"data2-core-primitives@Artboard","system":"6af347e8eee50b21cc12f02a","displayName":"Esteve · Video farmacia","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Esteve · Video farmacia"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":866}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}}},"reference":"8qWCW1fs57ep2kEDWpc_Y"},{"_id":"34d438d3bdba6c866aa4fdfd","parent":"6af481e4a5dbbeef3dd12b8e","component":"people-roger-valim@video_esteve_backoffice","system":"6af347e8eee50b21cc12f02a","displayName":"Video back-office","params":{"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":866}}}},"reference":"czSuz6V9_j6SJYR8WeMdT"},{"_id":"ce30122b339d960846246428","parent":"6af481e9f39dff5a456fcb1a","component":"people-roger-valim@video_esteve_farmacia","system":"6af347e8eee50b21cc12f02a","displayName":"Video farmacia","params":{"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":866}}}},"reference":"JkD2aXGSUS6kz3nt3epvg"}]}},{"_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":"6af483197bed7f3335fd19af","displayName":"Esteve Conecta","reference":"f55qrEaGGabqfwIhDNJFm","params":{"domain":{"component":"data2-core-primitives@String","params":{"content":"esteve"}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Router","reference":"esteve_conecta_router"}}},"system":"6af347e8eee50b21cc12f02a","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}