getSettingDOM(获取模型设置中的input)

2022-2-18
// 获取模型设置中的input dom
const getModelSettingInputTarget = (viewer, inputId) => {
  const ViewerSettingsPanel = viewer.getSettingsPanel('ViewerSettingsPanel');
  const { listeners } = ViewerSettingsPanel;
  let inputTarget = null;

  if (listeners && Array.isArray(listeners) && listeners.length) {
    inputTarget = listeners.filter(item => {
      const { target } = item;
      const targetEl = target.checkElement;

      if (targetEl) {
        const targetNodeName = targetEl.nodeName;
        const targetId = targetEl.id;

        if (
          targetNodeName &&
          targetNodeName.toLowerCase() === 'input' &&
          targetId &&
          targetId.toLowerCase() === inputId.toLowerCase()
        ) {
          return item;
        }
      }
    });
  }

  return Array.isArray(inputTarget) && inputTarget.length ? inputTarget[0]?.target : null;
};

export default getModelSettingInputTarget;