import '../i18n';
import { getCommonOpenUtil } from '@/common/util/index'
/* -- cone add component import 初始化 start，勿删 --*/
import CnFilterAlcPrototype from './cn-filter-alc/prototype';
import CnTableAlcPrototype from './cn-table-alc/prototype';
import CnPageAlcPrototype from './cn-page-alc/prototype';
import CnTabAlcPrototype from './cn-tab-alc/prototype';
import CnFormAlcPrototype from './cn-form-alc/prototype';
import CnDialogAlcPrototype from './cn-dialog-alc/prototype';
import CnFormDialogAlcPrototype from './cn-form-dialog-alc/prototype';
import CnMessageAlcPrototype from './cn-message-alc/prototype';
import PageAlcPrototype from './page/prototype';
import CnCardAlcPrototype from './cn-card-alc/prototype';
import CnCardSubCardAlcPrototype from './cn-card-sub-card-alc/prototype';
import CnStepAlcPrototype from './cn-step-alc/prototype';
import CnLeftTreeAlcPrototype from './cn-left-tree-alc/prototype';
import CnResultAlcPrototype from './cn-result-alc/prototype';
import CnListAlcPrototype from './cn-list-alc/prototype';
import CnEntryPointsAlcPrototype from './cn-entry-points-alc/prototype';
import CnSliderAlcPrototype from './cn-slider-alc/prototype';
import CnDetailInfoAlcPrototype from './cn-detail-info-alc/prototype';
import CnLowcodePagePrototype from '@alife/cn-lowcode-page/es/lowcode/prototype';
// import CnFormatPrototype from './cn-format-alc/prototype';
// import CnStatisticCardProAlcPrototype from './cn-statistic-card-pro-alc/prototype';
/* -- cone add component import 初始化 end，勿删 --*/
import CnLayoutBundle from '@cainiaofe/cn-ui-layout/es/lowcode/prototype';
import packageJson from '../../package.json';

import './prototype.scss';
import { fixComponentDataSource } from '@/common/util/prototype-util';

// 通过arr控制输出的顺序
const bundle = [
  /* -- cone add component bundle 初始化 start，勿删 --*/
  CnFilterAlcPrototype,
  CnTableAlcPrototype,
  CnFormAlcPrototype,
  CnFormDialogAlcPrototype,
  CnPageAlcPrototype,
  CnTabAlcPrototype,
  CnDialogAlcPrototype,
  CnMessageAlcPrototype,
  PageAlcPrototype,
  CnCardAlcPrototype,
  CnCardSubCardAlcPrototype,
  CnStepAlcPrototype,
  CnLeftTreeAlcPrototype,
  CnResultAlcPrototype,
  CnListAlcPrototype,
  CnLowcodePagePrototype,
  CnEntryPointsAlcPrototype,
  CnSliderAlcPrototype,
  CnDetailInfoAlcPrototype,
  // CnFormatPrototype,
  // CnStatisticCardProAlcPrototype,
  /* -- cone add component bundle 初始化 end，勿删 --*/
  ...CnLayoutBundle,
];
getCommonOpenUtil()

console.log(
  `%cCN_UI_LOWCODE %c${packageJson?.version}`,
  'color:#000;font-weight:bold;',
  'color:green;font-weight:bold;',
);
export default bundle;

window?.AliLowCodeEngine?.editor?.on?.('node.add', (node) => {
  const { id, propsData } = node?.node || {};
  const { _dataSource, _dataSourceName } = propsData || {};
  if (id && _dataSource && _dataSourceName) {
    fixComponentDataSource({
      id,
      node: node?.node,
      _dataSource,
      _dataSourceName,
    });
  }
});
