{"version":3,"sources":["ui/notebook_merger/notebook_merge.js","ui/notebook_merger/diff_engine.js","ui/notebook_merger/merger_model.js","ui/notebook_merger/merger_view.js","ui/notebook_merger/merger_controller.js"],"names":[],"mappings":"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","file":"merger_bundle.js","sourcesContent":["RCloudNotebookMerger = {};\n\nRCloud.UI.addons.notebook_merge = (function() {\n const notebook_merger_dialog_widget = class {\n constructor() {\n this.model = null;\n this.view = null;\n this.controller = null;\n }\n \n show() {\n if (!this.model) {\n this.model = new RCloudNotebookMerger.model(),\n this.view = new RCloudNotebookMerger.view(this.model),\n this.controller = new RCloudNotebookMerger.controller(this.model, this.view);\n } else {\n this.view.clear();\n }\n this.controller.show_dialog();\n }\n \n submit() {\n this.controller && this.controller.submit_dialog();\n }\n \n is_open() {\n return this.controller && this.controller.is_dialog_open();\n }\n };\n \n return {\n init: () => {\n const merger_dialog = new notebook_merger_dialog_widget();\n\n /* Create a merge button in the notebook tree and \n start a new Merge dialogue with the desired Notebook */\n RCloud.UI.notebook_commands.add({\n merge: {\n section: 'appear',\n sort: 4000,\n create: function (node) {\n var merge = ui_utils.fa_button('icon-code-fork icon-rotate-270', 'merge into current notebook', 'merge', RCloud.UI.notebook_commands.merge_icon_style(), true);\n merge.click(function (e) {\n // Open merge dialogue\n merger_dialog.show();\n // Submit to next dialogue or fail if ID invalid.\n setTimeout(function() {\n $('#merge-notebook-id').val(node.gistname);\n $('.show-changes').click();\n }, 100);\n return;\n });\n return merge;\n }\n }\n }),\n RCloud.UI.shortcut_manager.add([{\n category: 'Advanced',\n id: 'merger-dialog-submit',\n description: 'Submit merge dialogs.',\n keys: {\n win_mac: [\n ['enter']\n ]\n },\n ignore_clash: true,\n enable_in_dialogs: true,\n on_page: ['edit'],\n is_active: function() {\n return merger_dialog.is_open();\n },\n action: function() { merger_dialog.submit(); }\n }]);\n RCloud.UI.advanced_menu.add({\n merge_notebook: {\n sort: 1100,\n text: \"Merge Notebook\",\n modes: [\"edit\"],\n disabled_reason: \"You can't merge into a read only notebook\",\n action: function() {\n merger_dialog.show();\n }\n }\n });\n }\n };\n})();\n","RCloudNotebookMerger.diff_engine = (function() {\n\n const DiffType = Object.freeze({\n NOCHANGE: 'nochange',\n REMOVED: 'removed',\n ADDED: 'added'\n });\n\n const ChangeType = Object.freeze({\n NEW: 'new',\n DELETED: 'deleted',\n BINARY: 'binary',\n IDENTICAL: 'nochange',\n MODIFIED: 'changed'\n });\n\n const MAX_FILE_LENGTH = 250000; // about 0.25 MB file\n\n const diff_engine = class {\n constructor() {\n require([\"diff.min\"], diff => {\n this._engine = diff;\n });\n }\n getResolvedContent(file) {\n\n if(file.isBinary) {\n return file.content;\n } else {\n // deleted means that this file only exists in your notebook:\n if([ChangeType.DELETED, ChangeType.NEW].indexOf(file.changeDetails.fileChangeType) != -1) {\n return file.content;\n } else {\n // diffs:\n let { diffs, lineInfo } = file.changeDetails,\n acceptedChanges = _.filter(lineInfo, li => li.diffType != ChangeType.IDENTICAL && !li.isRejected),\n resolved = [];\n\n if(!acceptedChanges) {\n return file.content;\n } else {\n _.each(lineInfo, (li, index) => {\n if(li.diffType == 'removed' && li.isRejected ||\n li.diffType == 'added' && !li.isRejected ||\n li.diffType == 'nochange') {\n resolved.push(diffs[index].value);\n }\n });\n\n return resolved.join('');\n }\n }\n }\n }\n get_diff_info(owned, other) {\n\n const getContent = (file) => {\n if(!file || file.isBinary) {\n return '';\n } else {\n if(file.content.length) {\n return file.content.endsWith('\\n') ? file.content : file.content + '\\n';\n }\n return file.content;\n }\n };\n\n const diffLines = (changeType, isTooLarge, owned, other) => {\n // No need to run full diff if any of the files is empty\n switch(changeType) {\n case ChangeType.MODIFIED:\n if(!isTooLarge) {\n return this._engine.diffLines(getContent(owned), getContent(other));\n } else {\n return [{\n removed: true,\n value: getContent(owned),\n count: getContent(owned).split('\\n').length,\n },\n {\n added: true,\n value: getContent(other),\n count: getContent(other).split('\\n').length,\n\n }];\n }\n break;\n case ChangeType.NEW:\n return [{\n added: true,\n value: getContent(other),\n count: getContent(other).split('\\n').length,\n }];\n case ChangeType.DELETED:\n return [{\n removed: true,\n value: getContent(owned),\n count: getContent(owned).split('\\n').length,\n }];\n default:\n return this._engine.diffLines(getContent(owned), getContent(other));\n\n }\n };\n\n let fileChangeType;\n let isTooLarge = false;\n\n if (!owned && other) {\n fileChangeType = ChangeType.NEW;\n } else if (owned && !other) {\n fileChangeType = ChangeType.DELETED;\n } else if (owned.isBinary) {\n fileChangeType = ChangeType.BINARY;\n } else {\n if (getContent(owned) == getContent(other)) {\n fileChangeType = ChangeType.IDENTICAL;\n } else {\n fileChangeType = ChangeType.MODIFIED;\n }\n }\n\n if ([ChangeType.NEW, ChangeType.DELETED, ChangeType.MODIFIED].indexOf(fileChangeType) != -1 ) {\n if (getContent(owned).length > MAX_FILE_LENGTH || getContent(other).length > MAX_FILE_LENGTH) {\n console.warn(`File ${owned} or ${other} is too large, skipping diff generation`);\n isTooLarge = true;\n }\n }\n\n const diffs = diffLines(fileChangeType, isTooLarge, owned, other);\n\n const getDiffType = obj => {\n if (obj.added) {\n return DiffType.ADDED;\n } else if (obj.removed) {\n return DiffType.REMOVED;\n } else {\n return DiffType.NOCHANGE;\n }\n };\n\n let currentLineNumber = 1, lineInfo = [];\n\n diffs.forEach(diff => {\n lineInfo.push({\n startLineNumber: currentLineNumber,\n endLineNumber: currentLineNumber + (diff.count - 1),\n diffType: getDiffType(diff)\n });\n\n currentLineNumber += diff.count;\n });\n\n return {\n fileChangeType,\n diffs,\n content: _.pluck(diffs, 'value').join(''),\n lineInfo,\n modifiedLineInfo: _.filter(lineInfo, li => li.diffType !== DiffType.NOCHANGE),\n get changeCount() { return this.modifiedLineInfo.length; },\n get isChanged() { return [ChangeType.MODIFIED, ChangeType.BINARY].indexOf(this.fileChangeType) != -1; },\n owned,\n other,\n get isNewOrDeleted() { return this.isDeleted || this.isNew; },\n get isDeleted() { return [ChangeType.DELETED].indexOf(this.fileChangeType) != -1; },\n get isNew() { return [ChangeType.NEW].indexOf(this.fileChangeType) != -1; }\n }\n };\n }\n\n return diff_engine;\n\n})();\n","RCloudNotebookMerger.model = (function() {\n\n // Key holding last used selection of 'theirs' notebook in Merge Dialog.\n // TODO: Was this actual requirement?\n const MERGE_CHANGES_BY = 'merge-changes-by';\n \n const DEFAULT_SOURCE = 'id';\n\n const BINARY_SUFFIX = '.b64';\n \n const MESSAGES = Object.freeze({\n same_notebook_error : 'You cannot merge from your current notebook; the source must be a different notebook.',\n invalid_notebook_id_error : 'Invalid notebook ID.',\n not_found_notebook_error : 'The notebook could not be found.',\n no_file_to_upload_error : 'No file to upload.',\n invalid_url_error : 'Invalid RCloud Notebook URL.'\n });\n \n const merger_model = class {\n \n constructor() {\n\n this.on_diff_complete = new RCloud.UI.event(this);\n this.on_file_diff_complete = new RCloud.UI.event(this);\n this.on_file_list_complete = new RCloud.UI.event(this);\n this.on_get_changes_error = new RCloud.UI.event(this);\n this.on_getting_changes = new RCloud.UI.event(this);\n this.on_reset_complete = new RCloud.UI.event(this);\n this.on_review_change = new RCloud.UI.event(this);\n this.on_changeset_change = new RCloud.UI.event(this);\n this.on_set_merge_source = new RCloud.UI.event(this);\n this.on_merge_start = new RCloud.UI.event(this);\n this.on_merge_complete = new RCloud.UI.event(this);\n \n this._diff_engine = new RCloudNotebookMerger.diff_engine();\n\n this._merge_source = DEFAULT_SOURCE;\n this._notebook_from_file = undefined;\n this._other_notebook_description = undefined;\n this._comparison = {};\n }\n\n get_notebook_merge_property() {\n // Use previous selection used.\n rcloud.get_notebook_property(shell.gistname(), MERGE_CHANGES_BY).catch((e) => {\n console.error(e);\n this.on_set_merge_source.notify({\n type: DEFAULT_SOURCE \n }); \n \n }).then(val => {\n // value has format ':''\n if(val && val.indexOf(':') !== -1) {\n var separatorIndex = val.indexOf(':');\n var type = val.substring(0, separatorIndex);\n var value = val.substring(separatorIndex + 1);\n\n this._merge_source = type;\n \n // update view's merged by method from retrieved value:\n this.on_set_merge_source.notify({\n type, \n value\n });\n } else {\n this.on_set_merge_source.notify({\n type: DEFAULT_SOURCE \n }); \n }\n });\n }\n\n reset() {\n this._merge_source = DEFAULT_SOURCE;\n this._notebook_from_file = undefined;\n this._comparison = {};\n this._other_notebook_description = undefined;\n\n this.on_reset_complete.notify();\n }\n\n get_merge_source() {\n return this._merge_source;\n }\n\n update_merge_source(merge_source) {\n this._merge_source = merge_source;\n this.on_set_merge_source.notify({\n type: merge_source \n });\n }\n\n upload_file(file, on_error, on_success) {\n Notebook.read_from_file(file, {\n on_load_end: () => {},\n on_error: (message) => {\n this._notebook_from_file = undefined;\n if(on_error) {\n on_error(message);\n }\n },\n on_notebook_parsed: (read_notebook) => {\n this._notebook_from_file = read_notebook;\n if(on_success) {\n on_success(read_notebook);\n }\n }\n });\n }\n\n get_notebooks_info(other_notebook) {\n let info = {\n 'owned': {},\n 'other': {},\n 'union': {}\n },\n notebooks_for_compare = {\n 'owned': shell.notebook.model.controller.current_gist(),\n 'other': other_notebook\n };\n\n _.each(Object.keys(notebooks_for_compare), (source) => {\n info[source].files = _.chain(RCloud.utils.clean_r(notebooks_for_compare[source].files))\n .values().map(f => { \n return { \n isBinary: f.content.hasOwnProperty('r_type') || f.isBinary,\n type: Notebook.is_part_name(f.filename) ? 'part' : 'asset',\n filename: f.filename,\n content: f.content,\n language: f.language\n }}).value();\n });\n\n info.union.files = _.uniq(_.union(info.other.files, info.owned.files), false, (item) => { return item.type && item.filename; }).sort((f1, f2) => f1.filename.localeCompare(f2.filename, undefined, {numeric: true}));\n\n return info;\n }\n\n get_changes(from_notebook) {\n\n var get_notebook_by_id = (id) => {\n if(!Notebook.valid_gist_id(id)) {\n return Promise.reject(new Error(MESSAGES.invalid_notebook_id_error));\n } else if(id.toLowerCase() === shell.gistname().toLowerCase()) {\n return Promise.reject(new Error(MESSAGES.same_notebook_error));\n }\n return rcloud.get_notebook(id);\n };\n\n var get_notebook_func;\n\n this.on_getting_changes.notify();\n \n if(this._merge_source === 'id') {\n get_notebook_func = get_notebook_by_id;\n } else if(this._merge_source === 'file') {\n get_notebook_func = () => {\n if(this._notebook_from_file) {\n return Promise.resolve(this._notebook_from_file);\n } else {\n return Promise.reject(new Error(MESSAGES.no_file_to_upload_error));\n }\n };\n } else if(this._merge_source === 'url') {\n get_notebook_func = (url) => {\n var id = RCloud.utils.get_notebook_from_url(url);\n if(!id) {\n return Promise.reject(new Error(MESSAGES.invalid_url_error));\n } else {\n return get_notebook_by_id(id);\n }\n };\n }\n \n get_notebook_func.call(this, from_notebook).then((notebook) => {\n\n this._other_notebook_description = notebook.description;\n\n // Persist selection with current notebook\n rcloud.set_notebook_property(shell.gistname(), MERGE_CHANGES_BY, `${this._merge_source}:${from_notebook}`);\n\n // file-based merges don't have filename property, however empty notebooks don't have such property set either. Set it, for later:\n if(!notebook.files[Object.keys(notebook.files)[0]].hasOwnProperty('filename') &&\n !notebook.files.hasOwnProperty('r_type')) {\n Object.keys(notebook.files).forEach(f => {\n if(f.endsWith(BINARY_SUFFIX)) {\n notebook.files[f].filename = f.substring(0, f.length - BINARY_SUFFIX.length);\n notebook.files[f].isBinary = true;\n } else {\n notebook.files[f].filename = f;\n }\n });\n }\n\n this._comparison = this.get_notebooks_info(notebook);\n this.update_compare_details();\n\n }).catch((e) => {\n\n let message;\n\n if(e.message.indexOf('Not Found (404)') !== -1) {\n message = MESSAGES.not_found_notebook_error;\n } else {\n message = e.message;\n }\n\n this.on_get_changes_error.notify({\n message \n });\n });\n }\n\n apply_review_change(filename, change) {\n\n let fileModified = _.findWhere(this._comparison.union.files, {filename: filename}),\n fileChange = _.findWhere(fileModified.changeDetails.modifiedLineInfo, {\n startLineNumber: change.startLineNumber,\n endLineNumber: change.endLineNumber\n });\n\n fileChange.isRejected = !fileChange.isRejected;\n \n this.on_review_change.notify({\n change: change,\n filename: fileModified.filename,\n fileType: fileModified.type\n });\n this.on_changeset_change.notify(this._comparison.union.files);\n }\n\n update_compare_details() {\n const get_change_details = (filename, type) => {\n const where = { filename, type },\n owned = _.findWhere(this._comparison.owned.files, where),\n other = _.findWhere(this._comparison.other.files, where);\n\n return this._diff_engine.get_diff_info(owned, other);\n };\n \n this.on_file_list_complete.notify({\n files: this._comparison.union.files\n });\n\n _.each(this._comparison.union.files, (file) => {\n\n file.changeDetails = get_change_details(file.filename, file.type);\n\n this.on_file_diff_complete.notify({\n isBinary: file.isBinary,\n fileType: file.type,\n filename: file.filename,\n changeDetails: file.changeDetails\n });\n });\n \n this.on_changeset_change.notify(this._comparison.union.files);\n }\n\n setFileInclusion(file, include) {\n let fileChange = _.findWhere(this._comparison.union.files, file);\n fileChange.include = include;\n if(fileChange.changeDetails.isChanged) {\n fileChange.changeDetails.modifiedLineInfo.forEach((el) => {\n el.isRejected = !include;\n \n this.on_review_change.notify({\n change: el,\n filename: fileChange.filename,\n fileType: fileChange.type\n });\n });\n }\n this.on_changeset_change.notify(this._comparison.union.files);\n }\n \n getFileChange(file) {\n return _.findWhere(this._comparison.union.files, file);\n }\n \n getFileLineChanges(file) {\n return _.findWhere(this._comparison.union.files, file).changeDetails.modifiedLineInfo;\n }\n \n getFileChangesCount(file) {\n let fileChange = _.findWhere(this._comparison.union.files, file);\n \n if(!fileChange.isBinary && fileChange.changeDetails.isChanged) {\n return _.filter(fileChange.changeDetails.modifiedLineInfo, (el) => {\n return !el.isRejected;\n }).length;\n }\n if(fileChange.isBinary) {\n if(!fileChange.hasOwnProperty('include') || fileChange.include) {\n return 1;\n }\n }\n return 0;\n }\n \n getNumberOfChanges(file) {\n let fileChange = _.findWhere(this._comparison.union.files, file);\n \n if(!fileChange.isBinary && fileChange.changeDetails.isChanged) {\n return fileChange.changeDetails.modifiedLineInfo.length;\n }\n if(fileChange.isBinary) {\n return 1;\n }\n return 0;\n }\n \n getChangesToApply() {\n \n let includeFile = (f) => {\n let { modifiedLineInfo } = f.changeDetails;\n\n if(f.hasOwnProperty('include')) {\n return f.include;\n } else if(!f.hasOwnProperty('include') && f.isBinary) { // we don't compare binary files, they are only treated as modified\n return true;\n } else if(modifiedLineInfo.length !== _.where(modifiedLineInfo, { isRejected: true }).length) {\n return true;\n } else {\n return false;\n }\n };\n \n return _.chain(this._comparison.union.files)\n .filter(f => includeFile(f))\n .map(f => {\n // Backend uses .b64 suffix hint to handle Base64 encoded content.\n let filename = f.content.hasOwnProperty('r_type') || !f.isBinary ? f.filename : f.filename + BINARY_SUFFIX; \n let erase = f.changeDetails.isDeleted;\n \n return {\n filename: filename,\n language: f.isBinary ? null : f.language,\n content: this._diff_engine.getResolvedContent(f),\n erase\n }})\n .value();\n }\n\n applyMerge() {\n this.on_merge_start.notify();\n\n let changes = this.getChangesToApply();\n\n if(changes.length > 0) {\n editor.merge_notebook(changes).then(() => {\n this.on_merge_complete.notify();\n });\n } else {\n this.on_merge_complete.notify();\n }\n };\n\n }\n\n return new merger_model();\n});\n","require([\"vs/editor/editor.main\"], () => {\n const DEFAULT_LANGUAGE = 'rcloud';\n monaco.languages.register({\n id: DEFAULT_LANGUAGE\n });\nRCloudNotebookMerger.view = (function(model) {\n\n const DialogStage = Object.freeze({\n INIT: 'init',\n GETTINGCHANGES: 'gettingchanges',\n COMPARE: 'compare',\n APPLYINGCHANGES: 'applyingchanges'\n });\n\n (function( $ ){\n $.fn.setMergerDialogStage = function(stage) {\n this.removeClass(Object.keys(DialogStage).map(key => `stage-${key.toLowerCase()}`).join(' '));\n this.addClass(`stage-${stage}`);\n return this;\n };\n })( jQuery );\n\n const merger_view = class {\n constructor(model) {\n\n\n this._model = model;\n this._dialog_stage = DialogStage.INIT;\n\n let template = _.template($(\"#merger-template\").html());\n\n this._templates = {\n file_list: _.template($('#compare-file-list-snippet').html()),\n diffs_list: _.template($('#compare-stage-snippet').html())\n };\n\n this.transitionTimeSeconds = 0.4;\n\n this.setTransitionTimeout = (func) => {\n setTimeout(func, (this.transitionTimeout * 1000) + 200);\n };\n\n $(\"body\").append(template({\n transitionTimeSeconds: this.transitionTimeSeconds\n }));\n\n this._dialog = $(\"#merger-dialog\");\n this._merge_source = $('#merge-changes-by');\n this._merge_notebook_file = $('#merge-notebook-file');\n this._merge_notebook_url = $('#merge-notebook-url');\n this._merge_notebook_id = $('#merge-notebook-id');\n\n this._editors = {};\n\n this._error_selector = '#merge-error';\n\n this._merge_notebook_title = $('#merge-notebook-title');\n this._merge_notebook_details = $('#merge-notebook-details');\n\n this._compare_file_list = $('#compare-file-list');\n this._compare_stage = $('#compare-stage');\n\n this._stageCssPrefix = 'stage-';\n\n this._button_show_changes = this._dialog.find('.btn-primary.btn-primary.show-changes');\n this._button_merge = this._dialog.find('.btn-merge');\n this._inputs = [this._merge_notebook_file, this._merge_notebook_url, this._merge_notebook_id];\n\n this._codelens_provider = null;\n this.registerCodeLensProvider();\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n //\n //\n //\n\n\n this._button_show_changes.click(() => {\n this._model.get_changes($(`#merge-notebook-${this._model.get_merge_source()}`).val());\n });\n\n this._button_merge.click(() => {\n this._model.applyMerge();\n });\n\n this._merge_source.change(() => {\n this._model.update_merge_source(this._merge_source.val());\n });\n\n\n // Run when Show Changes is clicked.\n this._button_show_changes.click(() => {\n this._model.get_changes($(`#merge-notebook-${this._model.get_merge_source()}`).val());\n });\n\n\n // If the Enter key is pressed then run the function to move to the next page.\n const enterListen = (e) => {\n if (e.keyCode == 13) {\n this._model.get_changes($(`#merge-notebook-${this._model.get_merge_source()}`).val());\n    }\n }\n\n // The fields that need to be listened on.\n this._button_show_changes.keypress(enterListen); // Just incase default fails.\n this._merge_notebook_url.keypress(enterListen);\n this._merge_source.keypress(enterListen);\n this._merge_notebook_id.keypress(enterListen);\n this._merge_notebook_file.keypress(enterListen);\n\n // Run when Merge is clicked.\n this._button_merge.click(() => {\n   this._model.applyMerge();\n })\n\n // Listen for enter when focused in the compare stage editor.\n this._compare_stage.keypress((e) => {\n   if (e.keyCode == 13) {\n     this._model.applyMerge();\n   }\n })\n\n\n this._merge_notebook_file.click(() => {\n this.clear_error();\n this._merge_notebook_file.val(null);\n }).change(() => {\n let that = this;\n let on_error = (message) => {\n that.show_error(message);\n };\n this._model.upload_file(this._merge_notebook_file[0].files[0], on_error);\n });\n\n $(this._dialog).on('hidden.bs.modal', () => {\n this.clear();\n });\n\n $(this._dialog).on('click', 'table tr', (event) => {\n const row = $(event.currentTarget).closest('tr');\n let section = row.data('section');\n\n let diffSection = this._compare_stage.find(`div[data-section=\"${section}\"]`);\n\n this._compare_stage.scrollTo(diffSection, 500);\n });\n\n $(this._dialog).on('click', 'tr .add', (event) => {\n const row = $(event.currentTarget).closest('tr');\n row.toggleClass('excluded');\n\n let isIncluded = !row.hasClass('excluded');\n\n let file = {\n type: row.data('filetype'),\n filename: row.data('filename')\n };\n\n this._model.setFileInclusion(file, isIncluded);\n\n $(event.currentTarget).attr('title', isIncluded ?\n 'This file will be added. Click to cancel.' : 'This file will not be added. Click to add.');\n\n let diff_panel = this._compare_stage.find(`div[data-filetype=\"${file.type}\"][data-filename=\"${file.filename}\"]`).closest('.diff-panel');\n if (!isIncluded) {\n diff_panel.addClass('excluded');\n } else {\n diff_panel.removeClass('excluded');\n }\n });\n\n $(this._dialog).on('click', 'tr .remove', (event) => {\n const row = $(event.currentTarget).closest('tr');\n row.toggleClass('excluded');\n\n let isIncluded = !row.hasClass('excluded');\n\n let file = {\n type: row.data('filetype'),\n filename: row.data('filename')\n };\n this._model.setFileInclusion(file, isIncluded);\n\n $(event.currentTarget).attr('title', isIncluded ?\n 'This file will be removed. Click to cancel.' : 'This file will not be removed. Click to remove.');\n\n\n let diff_panel = this._compare_stage.find(`div[data-filetype=\"${file.type}\"][data-filename=\"${file.filename}\"]`).closest('.diff-panel');\n if (!isIncluded) {\n diff_panel.addClass('excluded');\n } else {\n diff_panel.removeClass('excluded');\n }\n });\n\n $(this._dialog).on('click', 'tr .modify', (event) => {\n const row = $(event.currentTarget).closest('tr');\n row.toggleClass('excluded');\n\n let isIncluded = !row.hasClass('excluded');\n\n let file = {\n type: row.data('filetype'),\n filename: row.data('filename')\n };\n\n this._model.setFileInclusion(file, isIncluded);\n\n let diff_panel = this._compare_stage.find(`div[data-filetype=\"${file.type}\"][data-filename=\"${file.filename}\"]`).closest('.diff-panel');\n if (!isIncluded) {\n diff_panel.addClass('excluded');\n } else {\n diff_panel.removeClass('excluded');\n }\n\n this.updateModifySpanTitle(row, this._model.getFileChangesCount(file), this._model.getNumberOfChanges(file));\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n //\n //\n //\n this._model.on_set_merge_source.attach(({}, args) => {\n this.clear_error();\n this._merge_source.val(args.type);\n\n $(this._dialog).find('div[data-by]').hide();\n $(this._dialog).find(`div[data-by=\"${args.type}\"]`).show();\n\n if(!_.isUndefined(args.value)) {\n // and set the value coming in:\n $(`#merge-notebook-${this._model.get_merge_source()}`).val(args.type === 'file' ? '' : args.value);\n }\n\n this._dialog.modal({ keyboard: true });\n\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n this._model.on_getting_changes.attach(() => {\n this.update_stage(DialogStage.GETTINGCHANGES);\n this.clear_error();\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n this._model.on_get_changes_error.attach(({}, args) => {\n this.update_stage(DialogStage.INIT);\n this._button_show_changes.text('Show Changes');\n this.show_error(args.message);\n });\n\n this._model.on_changeset_change.attach(({}, filesList) => {\n let changes = this._model.getChangesToApply();\n if(changes.length) {\n this._button_merge.text('Merge');\n } else {\n this._button_merge.text('No Changes');\n }\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n this._model.on_reset_complete.attach(() => {\n\n Object.keys(this._editors).forEach((k) => {\n if(this._editors[k].editor) {\n this._editors[k].editor.dispose();\n }\n });\n\n this._editors = {};\n\n this._compare_file_list.html('');\n this._compare_stage.html('');\n\n this.reset_getting_changes_state();\n\n this._inputs.forEach((input) => {\n input.val('');\n });\n\n this._merge_notebook_details.html('');\n this.update_stage(DialogStage.INIT);\n this._button_merge.text('Merge');\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n this._model.on_file_list_complete.attach(({}, args) => {\n this.update_stage(DialogStage.COMPARE);\n\n this._compare_file_list.html(this._templates.file_list({\n files: args.files\n }));\n\n this._compare_stage.html(this._templates.diffs_list({\n files: args.files\n }));\n\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n this._model.on_file_diff_complete.attach(({}, args) => {\n let diff = args.changeDetails;\n let filename = args.filename;\n\n\n let content_area = this._compare_stage.find(`div[data-filetype=\"${args.fileType}\"][data-filename=\"${filename}\"]`);\n let panel_loader = content_area.closest('.panel').find('.diffLoader');\n\n // Resizing of the Monaco editor panel.\n let sizeDiffPanel = (panelContent, lineCount, changesCount, editorConfiguration) => {\n\n // The following sits the editor panel over the top of the margin (numbers).\n panelContent.css('left', 0 + 'px');\n panelContent.css('right', 0 + 'px');\n\n // Calculates the height needed for the Monaco editor depending on the changes present.\n let height = (lineCount + changesCount) * editorConfiguration.lineHeight;\n panelContent.css('height', height + 'px');\n };\n\n if(diff.isChanged && !args.isBinary) {\n let editor_container = $('
');\n content_area.append(editor_container);\n content_area.closest(\".panel\").addClass(\"panel-warning\").addClass('diff-changed');\n\n let init = () => {\n this._editors[filename] = {\n editor: monaco.editor.create(\n editor_container[0],\n {\n language: DEFAULT_LANGUAGE,\n fontSize: 11,\n scrollBeyondLastLine: false,\n readOnly: true,\n minimap: {\n enabled: false\n },\n glyphMargin: true\n }\n )\n };\n\n this._editors[filename].apply_change = this._editors[filename].editor.addCommand(0, (ctx, args) => {\n this._model.apply_review_change(filename, args);\n });\n let editor_model = monaco.editor.createModel(diff.content, DEFAULT_LANGUAGE);\n this._editors[filename].model_id = editor_model.id;\n this._editors[filename].editor.setModel(editor_model);\n\n // Layout\n sizeDiffPanel(editor_container, editor_model.getLineCount(), diff.modifiedLineInfo.length, this._editors[filename].editor.getConfiguration());\n\n // Hide the default Monaco decorations.\n $('.monaco-scrollable-element').each(function() {\n this.style.left = '0px';\n this.style.width = '110%';\n });\n\n this._editors[filename].editor.layout();\n\n this.updateReviewDecorations(filename);\n panel_loader.remove();\n };\n\n this.setTransitionTimeout(init);\n } else {\n if(diff.isChanged) {\n content_area.closest(\".panel\").addClass(\"panel-warning\").addClass(\"diff-binary\");\n content_area.html(\"binary file\");\n panel_loader.remove();\n } else if(diff.isNewOrDeleted) {\n if(diff.isDeleted) {\n content_area.closest(\".panel\").addClass(\"panel-danger\").addClass(\"diff-deleted\");\n } else {\n content_area.closest(\".panel\").addClass(\"panel-success\").addClass(\"diff-added\");\n }\n if(args.isBinary) {\n content_area.html(\"binary file\");\n panel_loader.remove();\n } else {\n let editor_container = $('
');\n content_area.append(editor_container);\n let init = () => {\n\n this._editors[filename] = {\n editor: monaco.editor.create(\n editor_container[0],\n {\n language: DEFAULT_LANGUAGE,\n fontSize: 11,\n scrollBeyondLastLine: false,\n minimap: {\n enabled: false\n },\n readOnly: true\n }\n )\n };\n let editor_model = monaco.editor.createModel(diff.owned ? diff.owned.content :\n diff.other.content, DEFAULT_LANGUAGE);\n this._editors[filename].model_id = editor_model.id;\n this._editors[filename].editor.setModel(editor_model);\n\n // Layout\n sizeDiffPanel(editor_container, editor_model.getLineCount(), 0, this._editors[filename].editor.getConfiguration());\n\n // Hide the default Monaco decorations.\n $('.monaco-scrollable-element').each(function() {\n this.style.left = '0px';\n this.style.width = '110%';\n });\n\n this._editors[filename].editor.layout();\n\n panel_loader.remove();\n };\n\n this.setTransitionTimeout(init);\n }\n } else {\n content_area.closest(\".panel\").addClass(\"panel-default\").addClass(\"diff-no-change\");\n content_area.html(\"no change\");\n panel_loader.remove();\n }\n }\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n this._model.on_file_diff_complete.attach(({}, args) => {\n let sourceRow,\n isToSpan,\n diffLoader,\n changesCell,\n modifySpan,\n equalSpan,\n addSpan,\n removeSpan;\n\n sourceRow = this._compare_file_list.find(`tr[data-filetype=\"${args.fileType}\"][data-filename=\"${args.filename}\"]`);\n isToSpan = sourceRow.find('.isTo span');\n changesCell = sourceRow.find('.changes');\n modifySpan = changesCell.find('.modify');\n equalSpan = changesCell.find('.equal');\n addSpan = changesCell.find('.add');\n removeSpan = changesCell.find('.remove');\n diffLoader = changesCell.find('.diffLoader');\n\n diffLoader.remove();\n\n let { owned, other, isChanged, changeCount } = args.changeDetails;\n\n let isBinary = args.isBinary;\n\n // set the changes type\n if(owned || !owned && other) {\n isToSpan.html(args.filename);\n if(!owned) {\n sourceRow.addClass('addition');\n addSpan.attr('title', 'This file will be added. Click to cancel.');\n addSpan.show();\n } else if (!other) {\n sourceRow.addClass('deletion');\n removeSpan.attr('title', 'This file will be deleted. Click to cancel.');\n removeSpan.show();\n }\n }\n\n // changed, so show changed details:\n if(isChanged) {\n let tmpChangesCount = (!isBinary)? changeCount : 1;\n this.updateModifySpanTitle(sourceRow, tmpChangesCount, tmpChangesCount);\n modifySpan.show();\n }\n\n if(owned && other && !isChanged) {\n equalSpan.show();\n }\n });\n\n this._model.on_merge_start.attach(() => {\n this.update_stage(DialogStage.APPLYINGCHANGES);\n });\n\n this._model.on_merge_complete.attach(() => {\n this._dialog.modal('hide');\n });\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n this._model.on_review_change.attach(({}, args) => {\n let editor_descriptor = this._editors[args.filename];\n let reviewList = this._model.getFileLineChanges({filename: args.filename, type: args.fileType});\n this.updateReviewDecorations(args.filename);\n\n let changeCount = reviewList.length - _.filter(reviewList, item => item.isRejected).length,\n sourceRow = this._compare_file_list.find(`tr[data-filetype=\"${args.fileType}\"][data-filename=\"${args.filename}\"]`);\n\n this.updateModifySpanTitle(sourceRow, changeCount, reviewList.length);\n let diff_panel = this._compare_stage.find(`div[data-filetype=\"${args.fileType}\"][data-filename=\"${args.filename}\"]`).closest('.diff-panel');\n if (changeCount === 0) {\n diff_panel.addClass('excluded');\n } else {\n diff_panel.removeClass('excluded');\n }\n });\n }\n\n updateModifySpanTitle(sourceRow, changeCount, totalNoOfChanges) {\n let modifySpan = sourceRow.find('.modify');\n\n modifySpan.attr('title', changeCount ? `${changeCount} change${changeCount != 1 ? 's': ''} will be applied to this file. Click to reject all changes.` : `This file will not be modified. Click to apply all incomming changes.`);\n sourceRow[changeCount ? 'removeClass' : 'addClass']('excluded');\n modifySpan.find('.count').html(changeCount);\n if(changeCount < totalNoOfChanges) {\n modifySpan.find('.total').html(totalNoOfChanges).show();\n } else {\n modifySpan.find('.total').html(totalNoOfChanges).hide();\n }\n }\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////\n updateReviewDecorations(filename) {\n\n let editor_descriptor = this._editors[filename];\n\n\n editor_descriptor.editor.getModel().setValue(editor_descriptor.editor.getModel().getValue());\n\n // get the current decorations (needed for update, below):\n let decorations = _.chain(this._model.getFileLineChanges({filename: filename})).map(reviewItem => {\n return {\n range: new monaco.Range(reviewItem.startLineNumber, 1, reviewItem.endLineNumber, 1),\n options: {\n isWholeLine: true,\n // rejected items should not have a class name, but they should\n // retain their glyph margin class:\n className: reviewItem.isRejected ? '' : reviewItem.diffType,\n glyphMarginClassName: reviewItem.diffType\n }\n };\n }).value();\n\n this.update_decorations(filename, editor_descriptor.editor.deltaDecorations(this.get_decorations(filename), decorations));\n }\n\n registerCodeLensProvider() {\n if(this._codelens_provider) {\n return;\n }\n\n const getCodeLensTitle = (diffType, isRejected) => {\n if(diffType == 'added') {\n return isRejected ? 'Add content' : 'Ignore added content';\n } else {\n return isRejected ? 'Delete content' : 'Keep deleted content';\n }\n };\n\n this._codelens_provider = monaco.languages.registerCodeLensProvider(DEFAULT_LANGUAGE, {\n provideCodeLenses: (model) => {\n let model_filename = _.filter(Object.keys(this._editors), (k) => {\n return this._editors[k].model_id === model.id;\n })[0];\n let editor_descriptor = this._editors[model_filename];\n if(!editor_descriptor) {\n console.warn('editor for model id ' + model.id + ' not found');\n return [];\n }\n if(editor_descriptor.apply_change) {\n return _.map(this._model.getFileLineChanges({filename: model_filename}), (reviewItem, key) => {\n return {\n range: {\n startLineNumber: reviewItem.startLineNumber,\n endLineNumber: reviewItem.endLineNumber\n },\n id: key,\n command: {\n id: editor_descriptor.apply_change,\n title: getCodeLensTitle(reviewItem.diffType, reviewItem.isRejected),\n filename: model_filename,\n model_id: editor_descriptor.model_id,\n arguments: {\n startLineNumber: reviewItem.startLineNumber,\n endLineNumber: reviewItem.endLineNumber,\n diffType: reviewItem.diffType\n }\n }\n };\n });\n } else {\n return [];\n }\n },\n resolveCodeLens: (model, codeLens) => {\n return (model.id === codeLens.command.model_id) ? codeLens: null;\n }\n });\n }\n\n\n update_decorations(filename, decorations) {\n this._editors[filename].delta_decorations = (decorations)? decorations: [];\n }\n\n get_decorations(filename) {\n let res = this._editors[filename].delta_decorations;\n return (res) ? res : [];\n }\n\n clear_error() {\n $(this._error_selector).remove();\n }\n\n show_error(errorText) {\n this.clear_error();\n $('
', {\n id: this._error_selector.substring(1),\n text: errorText\n }).appendTo($(this._dialog).find(`div[data-by=\"${this._model.get_merge_source()}\"]`));\n }\n\n has_error() {\n return $(this._error_selector).length;\n }\n\n reset_getting_changes_state() {\n this._button_show_changes.text('Show Changes');\n }\n\n clear() {\n this._model.reset();\n }\n\n submit() {\n switch(this._dialog_stage) {\n case DialogStage.INIT:\n this._model.get_changes($(`#merge-notebook-${this._model.get_merge_source()}`).val());\n break;\n case DialogStage.COMPARE:\n this._model.applyMerge();\n break;\n default:\n // no-op\n }\n }\n\n update_stage(stage) {\n this._dialog_stage = stage;\n\n switch(stage) {\n case DialogStage.INIT:\n this.reset_getting_changes_state();\n this._merge_notebook_details.html('');\n this._merge_notebook_title.html('Merge Changes');\n break;\n case DialogStage.COMPARE:\n this._merge_notebook_title.html('Apply Changes');\n this._merge_notebook_details.html(`from ${this._model._other_notebook_description}`);\n break;\n case DialogStage.APPLYINGCHANGES:\n this._merge_notebook_title.html('Applying changes');\n this._button_show_changes.text('Applying changes');\n break;\n case DialogStage.GETTINGCHANGES:\n this._merge_notebook_title.html('Getting changes');\n this._button_show_changes.text('Getting changes');\n break;\n default:\n this._merge_notebook_title.html('Merge Changes');\n this._merge_notebook_details.html('');\n }\n\n this._dialog.setMergerDialogStage(stage.toLowerCase());\n }\n\n open() {\n this._model.get_notebook_merge_property();\n }\n\n is_open() {\n return this._dialog.is(':visible');\n }\n };\n\n return new merger_view(model);\n\n});\n});\n","RCloudNotebookMerger.controller = (function(model, view) {\n\n const merger_controller = class {\n constructor(model, view) {\n this._model = model;\n this._view = view;\n }\n\n show_dialog() {\n this._view.open();\n }\n\n submit_dialog() {\n this._view.submit();\n }\n\n is_dialog_open() {\n return this._view.is_open();\n }\n };\n\n return new merger_controller(model, view);\n\n});\n"]}