Sidebar-SinkComponent.js 9.07 KB

(function () {
	// Adds Atlassian shapes
	// sink label
	Sidebar.prototype.addThingsKitSinkPalette = function () {

		const gn = 'mxgraph.sink';
		const dt = 'sink';
		const label = mxResources.get('sink')
		const width = 66;
		const height = 74;
		const prefix = `image;image=${window?.PROJECT_ENV.base}/webapp/images/thingskit/libs/`
		const defaultStyle = ';imageAspect=0;'
		this.setCurrentSearchEntryLibrary(dt);

		const { COMPONENT_KEY, CATEGORY } = window.CellAttributeKeyEnum

		function createUserObject(attribute) {
			attribute = Object.assign({ [COMPONENT_KEY]: '', [CATEGORY]: '' }, attribute || {})
			var xmlElement = mxUtils.createXmlDocument().createElement('UserObject');

			Object.keys(attribute).forEach(key => {
				xmlElement.setAttribute(key, attribute[key]);
			})
			return xmlElement
		}

		// 自定义属性
		const cellAttribute = {
			[COMPONENT_KEY]: 'Image',
			[CATEGORY]: 'DEFAULT'
		}

		const graphPathLib = [
			{ name: mxResources.get('sink1'), path: 'sink/5加仑桶.svg' },
			{ name: mxResources.get('sink2'), path: 'sink/不锈钢柱形储罐.svg' },
			{ name: mxResources.get('sink3'), path: 'sink/乙醇存储.svg' },
			{ name: mxResources.get('sink4'), path: 'sink/产品.svg' },
			{ name: mxResources.get('sink5'), path: 'sink/仓式泵.svg' },
			{ name: mxResources.get('sink6'), path: 'sink/保温罐.svg' },
			{ name: mxResources.get('sink7'), path: 'sink/储气罐.svg' },
			{ name: mxResources.get('sink8'), path: 'sink/储罐 1.svg' },
			{ name: mxResources.get('sink9'), path: 'sink/储罐 10.svg' },
			{ name: mxResources.get('sink10'), path: 'sink/储罐 11.svg' },
			{ name: mxResources.get('sink11'), path: 'sink/储罐 12.svg' },
			{ name: mxResources.get('sink12'), path: 'sink/储罐 13.svg' },
			{ name: mxResources.get('sink13'), path: 'sink/储罐 14.svg' },
			{ name: mxResources.get('sink14'), path: 'sink/储罐 15.svg' },
			{ name: mxResources.get('sink15'), path: 'sink/储罐 16.svg' },
			{ name: mxResources.get('sink16'), path: 'sink/储罐 2.svg' },
			{ name: mxResources.get('sink17'), path: 'sink/储罐 3.svg' },
			{ name: mxResources.get('sink18'), path: 'sink/储罐 4.svg' },
			{ name: mxResources.get('sink19'), path: 'sink/储罐 5.svg' },
			{ name: mxResources.get('sink20'), path: 'sink/储罐 6.svg' },
			{ name: mxResources.get('sink21'), path: 'sink/储罐 7.svg' },
			{ name: mxResources.get('sink22'), path: 'sink/储罐 8.svg' },
			{ name: mxResources.get('sink23'), path: 'sink/储罐 9.svg' },
			{ name: mxResources.get('sink24'), path: 'sink/储罐.svg' },
			{ name: mxResources.get('sink25'), path: 'sink/储罐支架 1.svg' },
			{ name: mxResources.get('sink26'), path: 'sink/储罐支架 2.svg' },
			{ name: mxResources.get('sink27'), path: 'sink/储罐群.svg' },
			{ name: mxResources.get('sink28'), path: 'sink/光滑筒仓.svg' },
			{ name: mxResources.get('sink29'), path: 'sink/剖面储罐.svg' },
			{ name: mxResources.get('sink30'), path: 'sink/十分光滑的储蓄罐.svg' },
			{ name: mxResources.get('sink31'), path: 'sink/压力容器.svg' },
			{ name: mxResources.get('sink32'), path: 'sink/原水箱.svg' },
			{ name: mxResources.get('sink33'), path: 'sink/反应器 1.svg' },
			{ name: mxResources.get('sink34'), path: 'sink/反应器 2.svg' },
			{ name: mxResources.get('sink35'), path: 'sink/反应器 3.svg' },
			{ name: mxResources.get('sink36'), path: 'sink/反应器 4.svg' },
			{ name: mxResources.get('sink37'), path: 'sink/反应器 tank.svg' },
			{ name: mxResources.get('sink38'), path: 'sink/同质化储罐.svg' },
			{ name: mxResources.get('sink39'), path: 'sink/地下储罐.svg' },
			{ name: mxResources.get('sink40'), path: 'sink/大型锥底聚乙烯储罐.svg' },
			{ name: mxResources.get('sink41'), path: 'sink/存储设备 1.svg' },
			{ name: mxResources.get('sink42'), path: 'sink/存储设备 2.svg' },
			{ name: mxResources.get('sink43'), path: 'sink/存储设备 3.svg' },
			{ name: mxResources.get('sink44'), path: 'sink/存储设备 4.svg' },
			{ name: mxResources.get('sink45'), path: 'sink/家用热水储罐.svg' },
			{ name: mxResources.get('sink46'), path: 'sink/容器.svg' },
			{ name: mxResources.get('sink47'), path: 'sink/带搅拌器的反应器.svg' },
			{ name: mxResources.get('sink48'), path: 'sink/带搅拌机的加强型储罐.svg' },
			{ name: mxResources.get('sink49'), path: 'sink/带梯子的储罐.svg' },
			{ name: mxResources.get('sink50'), path: 'sink/带混合器的聚乙烯储罐.svg' },
			{ name: mxResources.get('sink51'), path: 'sink/带舱口和梯子的反应器.svg' },
			{ name: mxResources.get('sink52'), path: 'sink/带铆钉和梯子的储罐.svg' },
			{ name: mxResources.get('sink53'), path: 'sink/带铆钉的储罐.svg' },
			{ name: mxResources.get('sink54'), path: 'sink/扁容器 1.svg' },
			{ name: mxResources.get('sink55'), path: 'sink/扁容器 2.svg' },
			{ name: mxResources.get('sink56'), path: 'sink/扁容器 3.svg' },
			{ name: mxResources.get('sink57'), path: 'sink/扁容器 4.svg' },
			{ name: mxResources.get('sink58'), path: 'sink/扁容器 5.svg' },
			{ name: mxResources.get('sink59'), path: 'sink/扁容器 6.svg' },
			{ name: mxResources.get('sink60'), path: 'sink/扁容器 7.svg' },
			{ name: mxResources.get('sink61'), path: 'sink/搅拌罐.svg' },
			{ name: mxResources.get('sink62'), path: 'sink/料斗.svg' },
			{ name: mxResources.get('sink63'), path: 'sink/日量熔槽.svg' },
			{ name: mxResources.get('sink64'), path: 'sink/暂存罐.svg' },
			{ name: mxResources.get('sink65'), path: 'sink/有双支撑脚的的储罐.svg' },
			{ name: mxResources.get('sink66'), path: 'sink/有支脚的圆形反应堆.svg' },
			{ name: mxResources.get('sink67'), path: 'sink/有植物的池塘.svg' },
			{ name: mxResources.get('sink68'), path: 'sink/有直梯的筒仓.svg' },
			{ name: mxResources.get('sink69'), path: 'sink/有舱口的储蓄.svg' },
			{ name: mxResources.get('sink70'), path: 'sink/有螺旋梯的筒仓.svg' },
			{ name: mxResources.get('sink71'), path: 'sink/有铆钉的球形储罐.svg' },
			{ name: mxResources.get('sink72'), path: 'sink/桶.svg' },
			{ name: mxResources.get('sink73'), path: 'sink/椭圆散装储罐.svg' },
			{ name: mxResources.get('sink74'), path: 'sink/模制聚乙烯罐.svg' },
			{ name: mxResources.get('sink75'), path: 'sink/气缸.svg' },
			{ name: mxResources.get('sink76'), path: 'sink/池塘.svg' },
			{ name: mxResources.get('sink77'), path: 'sink/消化反应池.svg' },
			{ name: mxResources.get('sink78'), path: 'sink/液体存储鼓.svg' },
			{ name: mxResources.get('sink79'), path: 'sink/液压气动罐.svg' },
			{ name: mxResources.get('sink80'), path: 'sink/热交换器.svg' },
			{ name: mxResources.get('sink81'), path: 'sink/独立式储罐.svg' },
			{ name: mxResources.get('sink82'), path: 'sink/玻璃条纹式储罐.svg' },
			{ name: mxResources.get('sink83'), path: 'sink/球形储罐.svg' },
			{ name: mxResources.get('sink84'), path: 'sink/生活热水箱.svg' },
			{ name: mxResources.get('sink85'), path: 'sink/稳定罐.svg' },
			{ name: mxResources.get('sink86'), path: 'sink/简单储罐 1.svg' },
			{ name: mxResources.get('sink87'), path: 'sink/简单储罐 2.svg' },
			{ name: mxResources.get('sink88'), path: 'sink/简单储罐 3.svg' },
			{ name: mxResources.get('sink89'), path: 'sink/简单储罐 4.svg' },
			{ name: mxResources.get('sink90'), path: 'sink/简单储罐 5.svg' },
			{ name: mxResources.get('sink91'), path: 'sink/简单储罐系统.svg' },
			{ name: mxResources.get('sink92'), path: 'sink/简单反应器.svg' },
			{ name: mxResources.get('sink93'), path: 'sink/简单处理罐.svg' },
			{ name: mxResources.get('sink94'), path: 'sink/粉末储罐.svg' },
			{ name: mxResources.get('sink95'), path: 'sink/绿色容器.svg' },
			{ name: mxResources.get('sink96'), path: 'sink/绿色油缸.svg' },
			{ name: mxResources.get('sink97'), path: 'sink/耐腐蚀槽.svg' },
			{ name: mxResources.get('sink98'), path: 'sink/聚乙烯储罐.svg' },
			{ name: mxResources.get('sink99'), path: 'sink/聚乙烯储罐2.svg' },
			{ name: mxResources.get('sink100'), path: 'sink/聚乙烯化学混合槽.svg' },
			{ name: mxResources.get('sink101'), path: 'sink/聚乙烯混合和填充槽.svg' },
			{ name: mxResources.get('sink102'), path: 'sink/舱口.svg' },
			{ name: mxResources.get('sink103'), path: 'sink/螺栓 1.svg' },
			{ name: mxResources.get('sink104'), path: 'sink/螺栓 2.svg' },
			{ name: mxResources.get('sink105'), path: 'sink/配量池.svg' },
			{ name: mxResources.get('sink106'), path: 'sink/酿造锅.svg' },
			{ name: mxResources.get('sink107'), path: 'sink/鼓式槽.svg' },
		]



		const fns = graphPathLib.map(item => {
			return this.addEntry(this.getTagsForStencil(gn, item.name, dt).join(' '), mxUtils.bind(this, function () {
				const cell = new mxCell(createUserObject(cellAttribute), new mxGeometry(0, 0, width, height), `${prefix}${item.path}${defaultStyle}`);
				cell.setVertex(true)

				return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, item.name);
			}));
		})


		this.setGalleryLib(dt, label, graphPathLib)

		this.addPaletteFunctions(dt, label, false, fns);

		this.setCurrentSearchEntryLibrary();
	};
})();