当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript NotebookModel.getIn方法代码示例

本文整理汇总了TypeScript中@nteract/types.NotebookModel.getIn方法的典型用法代码示例。如果您正苦于以下问题:TypeScript NotebookModel.getIn方法的具体用法?TypeScript NotebookModel.getIn怎么用?TypeScript NotebookModel.getIn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在@nteract/types.NotebookModel的用法示例。


在下文中一共展示了NotebookModel.getIn方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: changeCellType

function changeCellType(
  state: NotebookModel,
  action: actionTypes.ChangeCellType
): RecordOf<DocumentRecordProps> {
  const id = action.payload.id ? action.payload.id : state.cellFocused;
  if (!id) {
    return state;
  }

  const { to } = action.payload;

  const cell = state.getIn(["notebook", "cellMap", id]);

  const from = cell.cell_type;

  // NOOP, since we're already that cell type
  if (from === to) {
    return state;
  }

  let nextState = state;

  // from === "code"
  if (from === "code") {
    nextState = cleanCellTransient(
      state
        .deleteIn(["notebook", "cellMap", id, "execution_count"])
        .deleteIn(["notebook", "cellMap", id, "outputs"]),
      id
    );
  }

  switch (to) {
    case "code":
      return nextState.setIn(
        ["notebook", "cellMap", id],
        makeCodeCell({
          source: cell.source
        })
      );
    case "markdown":
      return nextState.setIn(
        ["notebook", "cellMap", id],
        makeMarkdownCell({
          source: cell.source
        })
      );
    case "raw":
      return nextState.setIn(
        ["notebook", "cellMap", id],
        makeRawCell({
          source: cell.source
        })
      );
  }

  // If we didn't match on the `to`, we should change nothing as we don't implement
  // other cell types (as there aren't any)
  return state;
}
开发者ID:nteract,项目名称:nteract,代码行数:60,代码来源:notebook.ts

示例2: updateDisplay

function updateDisplay(
  state: NotebookModel,
  action: actionTypes.UpdateDisplay
): RecordOf<DocumentRecordProps> {
  const { content } = action.payload;
  if (!(content && content.transient && content.transient.display_id)) {
    return state;
  }
  const displayID = content.transient.display_id;

  const keyPaths: KeyPaths = state.getIn([
    "transient",
    "keyPathsForDisplays",
    displayID
  ]);

  const updatedContent = {
    data: createFrozenMediaBundle(content.data),
    metadata: fromJS(content.metadata || {})
  };

  return keyPaths.reduce(
    (currState: NotebookModel, kp: KeyPath) =>
      currState.updateIn(kp, output => {
        return output.merge(updatedContent);
      }),
    state
  );
}
开发者ID:nteract,项目名称:nteract,代码行数:29,代码来源:notebook.ts

示例3: updateDisplay

function updateDisplay(
  state: NotebookModel,
  action: actionTypes.UpdateDisplay
) {
  const { content } = action.payload;
  if (!(content && content.transient && content.transient.display_id)) {
    return state;
  }
  const displayID = content.transient.display_id;

  const keyPaths: KeyPaths = state.getIn([
    "transient",
    "keyPathsForDisplays",
    displayID
  ]);

  const updatedContent = {
    data: createImmutableMimeBundle(content.data),
    metadata: Immutable.fromJS(content.metadata || {})
  };

  return keyPaths.reduce(
    (currState: NotebookModel, kp: KeyPath) =>
      // $FlowFixMe: gnarly one we need to FIXME
      currState.updateIn(kp, output => {
        return output.merge(updatedContent);
      }),
    state
  );
}
开发者ID:kelleyblackmore,项目名称:nteract,代码行数:30,代码来源:notebook.ts

示例4: copyCell

function copyCell(state: NotebookModel, action: actionTypes.CopyCell) {
  let id = action.payload.id || state.cellFocused;

  const cell = state.getIn(["notebook", "cellMap", id]);
  if (!cell) {
    return state;
  }
  return state.set("copied", cell);
}
开发者ID:kelleyblackmore,项目名称:nteract,代码行数:9,代码来源:notebook.ts

示例5: focusPreviousCellEditor

function focusPreviousCellEditor(
  state: NotebookModel,
  action: actionTypes.FocusPreviousCellEditor
): RecordOf<DocumentRecordProps> {
  const cellOrder: List<CellId> = state.getIn(["notebook", "cellOrder"]);
  const curIndex = cellOrder.findIndex(
    (id: CellId) => id === action.payload.id
  );
  const nextIndex = Math.max(0, curIndex - 1);

  return state.set("editorFocused", cellOrder.get(nextIndex));
}
开发者ID:nteract,项目名称:nteract,代码行数:12,代码来源:notebook.ts

示例6: focusPreviousCell

function focusPreviousCell(
  state: NotebookModel,
  action: actionTypes.FocusPreviousCell
): NotebookModel {
  const cellOrder = state.getIn(["notebook", "cellOrder"]);
  const curIndex = cellOrder.findIndex(
    (id: CellId) => id === action.payload.id
  );
  const nextIndex = Math.max(0, curIndex - 1);

  return state.set("cellFocused", cellOrder.get(nextIndex));
}
开发者ID:kelleyblackmore,项目名称:nteract,代码行数:12,代码来源:notebook.ts

示例7: toggleCellInputVisibility

function toggleCellInputVisibility(
  state: NotebookModel,
  action: actionTypes.ToggleCellInputVisibility
): RecordOf<DocumentRecordProps> {
  const id = action.payload.id ? action.payload.id : state.cellFocused;
  if (!id) {
    return state;
  }

  return state.setIn(
    ["notebook", "cellMap", id, "metadata", "inputHidden"],
    !state.getIn(["notebook", "cellMap", id, "metadata", "inputHidden"])
  );
}
开发者ID:nteract,项目名称:nteract,代码行数:14,代码来源:notebook.ts

示例8: toggleCellOutputVisibility

function toggleCellOutputVisibility(
  state: NotebookModel,
  action: actionTypes.ToggleCellOutputVisibility
) {
  const id = action.payload.id ? action.payload.id : state.cellFocused;
  if (!id) {
    return state;
  }

  return state.setIn(
    ["notebook", "cellMap", id, "metadata", "outputHidden"],
    !state.getIn(["notebook", "cellMap", id, "metadata", "outputHidden"])
  );
}
开发者ID:kelleyblackmore,项目名称:nteract,代码行数:14,代码来源:notebook.ts

示例9: focusNextCell

function focusNextCell(
  state: NotebookModel,
  action: actionTypes.FocusNextCell
): RecordOf<DocumentRecordProps> {
  const cellOrder = state.getIn(["notebook", "cellOrder"]);

  const id = action.payload.id ? action.payload.id : state.get("cellFocused");
  // If for some reason we neither have an ID here or a focused cell, we just
  // keep the state consistent
  if (!id) {
    return state;
  }

  const curIndex = cellOrder.findIndex((foundId: CellId) => id === foundId);
  const curCellType = state.getIn(["notebook", "cellMap", id, "cell_type"]);

  const nextIndex = curIndex + 1;

  // When at the end, create a new cell
  if (nextIndex >= cellOrder.size) {
    if (!action.payload.createCellIfUndefined) {
      return state;
    }

    const cellId: string = uuid();
    const cell = curCellType === "code" ? emptyCodeCell : emptyMarkdownCell;

    const notebook: ImmutableNotebook = state.get("notebook");

    return state
      .set("cellFocused", cellId)
      .set("notebook", insertCellAt(notebook, cell, cellId, nextIndex));
  }

  // When in the middle of the notebook document, move to the next cell
  return state.set("cellFocused", cellOrder.get(nextIndex));
}
开发者ID:nteract,项目名称:nteract,代码行数:37,代码来源:notebook.ts

示例10: clearOutputs

function clearOutputs(state: NotebookModel, action: actionTypes.ClearOutputs) {
  const id = action.payload.id ? action.payload.id : state.cellFocused;
  if (!id) {
    return state;
  }

  const type = state.getIn(["notebook", "cellMap", id, "cell_type"]);

  const cleanedState = cleanCellTransient(state, id);

  if (type === "code") {
    return cleanedState
      .setIn(["notebook", "cellMap", id, "outputs"], Immutable.List())
      .setIn(["notebook", "cellMap", id, "execution_count"], null);
  }
  return cleanedState;
}
开发者ID:kelleyblackmore,项目名称:nteract,代码行数:17,代码来源:notebook.ts


注:本文中的@nteract/types.NotebookModel.getIn方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。