var patchNodeAndDOM = function (oldNode, newNode, mount, map) { var diffs = slim_dom_1.prepDiff(oldNode, slim_dom_1.diffNode(oldNode, newNode)); for (var _i = 0, diffs_1 = diffs; _i < diffs_1.length; _i++) { var mutation = diffs_1[_i]; map = slim_dom_1.patchDOM2(mutation, oldNode, mount, map); oldNode = slim_dom_1.patchNode2(mutation, oldNode); } return { node: oldNode, map: map }; };
return __generator(this, function (_k) { switch (_k.label) { case 0: return [4 /*yield*/, effects_1.select()]; case 1: state = _k.sent(); moduleSourceDirectory = utils_1.getModuleSourceDirectory(state); _a = []; for (_b in graph) _a.push(_b); _i = 0; _k.label = 2; case 2: if (!(_i < _a.length)) return [3 /*break*/, 11]; filePath = _a[_i]; dep = graph[filePath]; if (sourceUri && sourceUri !== filePath && lodash_1.values(dep.resolvedImportUris).indexOf(sourceUri) === -1) { return [3 /*break*/, 10]; } module_1 = dep.module; _c = 0, _d = module_1.components; _k.label = 3; case 3: if (!(_c < _d.length)) return [3 /*break*/, 10]; component = _d[_c]; _e = 0, _f = component.previews; _k.label = 4; case 4: if (!(_e < _f.length)) return [3 /*break*/, 9]; preview = _f[_e]; entry = { componentId: component.id, filePath: filePath, previewName: preview.name }; document_1 = paperclip_1.runPCFile({ entry: entry, graph: graph, directoryAliases: (_j = {}, // TODO - will eventually want to pass host and protocol information here too _j[moduleSourceDirectory] = "http://localhost:" + state.options.port + constants_1.PUBLIC_SRC_DIR_PATH, _j) }).document; _g = state_1.getLatestPreviewDocument; _h = [component.id, preview.name]; return [4 /*yield*/, effects_1.select()]; case 5: prevDocument = _g.apply(void 0, _h.concat([_k.sent()])); console.log("Evaluated component " + component.id + ":" + preview.name); newDocument = document_1; // TODO - push diagnostics too return [4 /*yield*/, effects_1.put(actions_1.previewEvaluated(component.id, preview.name, newDocument))]; case 6: // TODO - push diagnostics too _k.sent(); if (!prevDocument) return [3 /*break*/, 8]; diff = slim_dom_1.diffNode(prevDocument, newDocument); // push even if there are no diffs so that FE can flag windows as loaded. return [4 /*yield*/, effects_1.put(actions_1.previewDiffed(component.id, preview.name, slim_dom_1.getDocumentChecksum(prevDocument), diff))]; case 7: // push even if there are no diffs so that FE can flag windows as loaded. _k.sent(); _k.label = 8; case 8: _e++; return [3 /*break*/, 4]; case 9: _c++; return [3 /*break*/, 3]; case 10: _i++; return [3 /*break*/, 2]; case 11: return [2 /*return*/]; } });