@labelbee/lb-annotation 1.28.0-alpha.22 → 1.28.0-alpha.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var _rollupPluginWebWorkerLoader__helper__browser__createBase64WorkerFactory=require("./_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js"),WorkerFactory=_rollupPluginWebWorkerLoader__helper__browser__createBase64WorkerFactory.createBase64WorkerFactory("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24ocCl7InVzZSBzdHJpY3QiO2NvbnN0IHY9Wy0xLC0xLC0xXTtsZXQgST0hMTtmdW5jdGlvbiBCKGUpe2NvbnN0IHQ9LTcsbz0zLG49by10O3JldHVybiBlPHQmJihlPXQpLGU+byYmKGU9byksTWF0aC5mbG9vcigoZS10KS9uKjI1NSl9ZnVuY3Rpb24gRSgpe2xldCBlO2NvbnN0IHQ9bmV3IEFycmF5KDI1NikuZmlsbCgiIikubWFwKCgpPT5uZXcgQXJyYXkoMykuZmlsbCgiIikpO2ZvcihsZXQgbz0wO288MjA7bysrKXtmb3IoZT0wO2U8MzI7ZSsrKXRbZV1bMF09MTI4KzQqZSx0W2VdWzFdPTAsdFtlXVsyXT0wO2Zvcih0WzMyXVswXT0yNTUsdFszMl1bMV09MCx0WzMyXVsyXT0wLGU9MDtlPDYzO2UrKyl0WzMzK2VdWzBdPTI1NSx0WzMzK2VdWzFdPTQrNCplLHRbMzMrZV1bMl09MDtmb3IodFs5Nl1bMF09MjU0LHRbOTZdWzFdPTI1NSx0Wzk2XVsyXT0yLGU9MDtlPDYyO2UrKyl0Wzk3K2VdWzBdPTI1MC00KmUsdFs5NytlXVsxXT0yNTUsdFs5NytlXVsyXT02KzQqZTtmb3IodFsxNTldWzBdPTEsdFsxNTldWzFdPTI1NSx0WzE1OV1bMl09MjU0LGU9MDtlPDY0O2UrKyl0WzE2MCtlXVswXT0wLHRbMTYwK2VdWzFdPTI1Mi1lKjQsdFsxNjArZV1bMl09MjU1O2ZvcihlPTA7ZTwzMjtlKyspdFsyMjQrZV1bMF09MCx0WzIyNCtlXVsxXT0wLHRbMjI0K2VdWzJdPTI1Mi00KmV9cmV0dXJuIHR9Y29uc3QgUj1FKCk7ZnVuY3Rpb24gaChlLHQsbz0wKXtsZXQgbj0wLGEseCxpLGw7dD1bLi4udF0sbz09PTEmJih0PWNyZWF0ZVNtb290aEN1cnZlUG9pbnRzKHQucmVkdWNlKCh5LGMpPT5bLi4ueSxjLngsYy55XSxbXSksLjUsITAsU0VHTUVOVF9OVU1CRVIpKSxbaV09dDtjb25zdCB1PXQubGVuZ3RoO2ZvcihhPTE7YTw9dTthKyspbD10W2EldV0sZS54Pk1hdGgubWluKGkueCxsLngpJiZlLng8PU1hdGgubWF4KGkueCxsLngpJiZlLnk8PU1hdGgubWF4KGkueSxsLnkpJiZpLnghPT1sLngmJih4PShlLngtaS54KSoobC55LWkueSkvKGwueC1pLngpK2kueSwoaS55PT09bC55fHxlLnk8PXgpJiZuKyspLGk9bDtyZXR1cm4gbiUyIT0wfWZ1bmN0aW9uIE8oe3pNaW46ZSx6TWF4OnQscG9seWdvblBvaW50TGlzdDpvLGF0dHJpYnV0ZTpuLHg6YSx5OngsejppLGNvbG9yTGlzdDpsLHZhbGlkOnV9KXtpZihoKHt4OmEseTp4fSxvKSYmaT49ZSYmaTw9dClyZXR1cm4gdT09PSExP1sxLDEwMy8yNTUsMTAyLzI1NV06bFtuXT9sW25dLnJnYmEuc2xpY2UoMCwzKS5tYXAoYz0+Yy8yNTUpOlsxLDAsMF19ZnVuY3Rpb24gbShlKXtjb25zdCB0PUIoZSksbz1SW3RdLFtuLGEseF09bztyZXR1cm5bbi8yNTUsYS8yNTUseC8yNTVdfXJldHVybiBvbm1lc3NhZ2U9ZnVuY3Rpb24odCl7Y29uc3R7cG9zaXRpb246byxjb2xvcjpuLGN1Ym9pZExpc3Q6YSxjb2xvckxpc3Q6eCxoaWdobGlnaHRJbmRleDppfT10LmRhdGE7bGV0e21vZGlmaWVkQm94SWRzOmw9W10scmVzZXRBcmVhczp1PVtdfT10LmRhdGEseT0wO2Z1bmN0aW9uIGMoKXt5Kz0xfWlmKCFvKXJldHVybjtjb25zdCBfPSEhKGk9PW51bGw/dm9pZCAwOmkubGVuZ3RoKTsoX3x8SSkmJihsPVtdLHU9W10pO2NvbnN0IHc9bC5sZW5ndGg/YS5maWx0ZXIocj0+bC5pbmNsdWRlcyhyLmlkKSk6YTtmb3IobGV0IHI9MDtyPG8ubGVuZ3RoO3IrPTMpe2NvbnN0IEM9b1tyXSxMPW9bcisxXSxkPW9bcisyXTtsZXQgZztpZih1Lmxlbmd0aD09PTEmJiFsLmxlbmd0aCloKHt4OkMseTpMfSx1WzBdKT9nPW0oZCk6Zz12O2Vsc2UgaWYodS5sZW5ndGh8fGwubGVuZ3RoKXtsZXQgcz0hMTt3LnNvbWUoZj0+e2NvbnN0IE09Tyh7cG9seWdvblBvaW50TGlzdDpmLnBvbHlnb25Qb2ludExpc3Qsek1pbjpmLnpNaW4sek1heDpmLnpNYXgseDpDLHk6TCx6OmQsYXR0cmlidXRlOmYuYXR0cmlidXRlLGNvbG9yTGlzdDp4LHZhbGlkOmYudmFsaWR9KTtyZXR1cm4gTT8oYygpLGc9TSxzPSEwLCEwKTohMX0pLCFzJiZ1Lmxlbmd0aCYmKHM9dS5zb21lKGY9Pmgoe3g6Qyx5Okx9LGYpPyhnPW0oZCksITApOiExKSksIXMmJiFfJiYoST9nPW0oZCk6Zz12KX1lbHNlIHcuc29tZShzPT57Y29uc3QgZj1PKHtwb2x5Z29uUG9pbnRMaXN0OnMucG9seWdvblBvaW50TGlzdCx6TWluOnMuek1pbix6TWF4OnMuek1heCx4OkMseTpMLHo6ZCxhdHRyaWJ1dGU6cy5hdHRyaWJ1dGUsY29sb3JMaXN0OngsdmFsaWQ6cy52YWxpZH0pO3JldHVybiBmPyhjKCksZz1mLCEwKTohMX0pO2NvbnN0IEE9cz0+e2NvbnN0IGY9TWF0aC5mbG9vcihzLzMpO3JldHVybiBpJiZpW2ZdPT09MX07aWYoZylpZihnWzBdPT09dlswXSYmQShyKSluW3JdPTAsbltyKzFdPTAsbltyKzJdPTA7ZWxzZXtjb25zdFtzLGYsTV09ZztuW3JdPXMsbltyKzFdPWYsbltyKzJdPU19ZWxzZSBpZihBKHIpKW5bcl09MCxuW3IrMV09MCxuW3IrMl09MDtlbHNle2NvbnN0W3MsZixNXT1tKGQpO25bcl09cyxuW3IrMV09ZixuW3IrMl09TX19ST1fLHBvc3RNZXNzYWdlKHtwb2ludHM6byxjb2xvcjpuLG51bTp5fSl9LHAuaXNJblBvbHlnb249aCxPYmplY3QuZGVmaW5lUHJvcGVydHkocCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkscH0oe30pOwoK",null,!1);module.exports=WorkerFactory;
1
+ "use strict";var _rollupPluginWebWorkerLoader__helper__browser__createBase64WorkerFactory=require("./_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js"),WorkerFactory=_rollupPluginWebWorkerLoader__helper__browser__createBase64WorkerFactory.createBase64WorkerFactory("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24odyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHEoaSx0KXtjb25zdHtwb2x5Z29uUG9pbnRMaXN0OmUsek1pbjpuLHpNYXg6cixhdHRyaWJ1dGU6Yyx2YWxpZDpzLGlkOmh9PWk7bGV0IGw9SW5maW5pdHksbT0tSW5maW5pdHksZj1JbmZpbml0eSxkPS1JbmZpbml0eTtjb25zdCB1PWUubGVuZ3RoO2ZvcihsZXQgYT0wO2E8dTthKyspe2NvbnN0e3gseTpYfT1lW2FdO2w9eDxsP3g6bCxtPXg+bT94Om0sZj1YPGY/WDpmLGQ9WD5kP1g6ZH1sZXQgbztpZihzPT09ITEpbz1bMSwuNDAzOSwuNF07ZWxzZSBpZih0JiZ0W2NdKXtjb25zdHtyZ2JhOmF9PXRbY107bz1bYVswXS8yNTUsYVsxXS8yNTUsYVsyXS8yNTVdfWVsc2Ugbz1bMSwwLDBdO3JldHVybntpZDpoLG1pblg6bCxtYXhYOm0sbWluWTpmLG1heFk6ZCx6TWluOm4sek1heDpyLHdpZHRoOm0tbCxoZWlnaHQ6ZC1mLGRlcHRoOnItbixjZW50ZXJYOihsK20pKi41LGNlbnRlclk6KGYrZCkqLjUsY2VudGVyWjoobityKSouNSxwb2x5Z29uUG9pbnRMaXN0OmUsY29sb3JJbmZvOm8sYXR0cmlidXRlOmMsdmFsaWQ6c319ZnVuY3Rpb24gRShpKXtpZighaXx8aS5sZW5ndGg9PT0wKXJldHVybnttaW5YOjAsbWF4WDoxLG1pblk6MCxtYXhZOjEsbWluWjowLG1heFo6MSx3aWR0aDoxLGhlaWdodDoxLGRlcHRoOjF9O2xldCB0PUluZmluaXR5LGU9LUluZmluaXR5LG49SW5maW5pdHkscj0tSW5maW5pdHksYz1JbmZpbml0eSxzPS1JbmZpbml0eTtjb25zdCBoPWkubGVuZ3RoO2ZvcihsZXQgdT0wO3U8aDt1Kz0zKXtjb25zdCBvPWlbdV0sYT1pW3UrMV0seD1pW3UrMl07bzx0JiYodD1vKSxvPmUmJihlPW8pLGE8biYmKG49YSksYT5yJiYocj1hKSx4PGMmJihjPXgpLHg+cyYmKHM9eCl9Y29uc3QgbD1NYXRoLm1heChlLXQsci1uKSouMDEsbT1lLXQrbCoyLGY9ci1uK2wqMixkPXMtYztyZXR1cm57bWluWDp0LWwsbWF4WDplK2wsbWluWTpuLWwsbWF4WTpyK2wsbWluWjpjLG1heFo6cyx3aWR0aDptLGhlaWdodDpmLGRlcHRoOmQsY2VudGVyWDoodCtlKSouNSxjZW50ZXJZOihuK3IpKi41fX1jbGFzcyBae2NvbnN0cnVjdG9yKHQsZT0xNixuPTYscj0wKXt0aGlzLm1pblg9dC5taW5YLHRoaXMubWF4WD10Lm1heFgsdGhpcy5taW5ZPXQubWluWSx0aGlzLm1heFk9dC5tYXhZLHRoaXMubWluWj10Lm1pblp8fC1JbmZpbml0eSx0aGlzLm1heFo9dC5tYXhafHxJbmZpbml0eSx0aGlzLndpZHRoPXQud2lkdGh8fHRoaXMubWF4WC10aGlzLm1pblgsdGhpcy5oZWlnaHQ9dC5oZWlnaHR8fHRoaXMubWF4WS10aGlzLm1pblksdGhpcy5jZW50ZXJYPXQuY2VudGVyWHx8KHRoaXMubWluWCt0aGlzLm1heFgpKi41LHRoaXMuY2VudGVyWT10LmNlbnRlcll8fCh0aGlzLm1pblkrdGhpcy5tYXhZKSouNSx0aGlzLmNhcGFjaXR5PWUsdGhpcy5tYXhMZXZlbD1uLHRoaXMubGV2ZWw9cix0aGlzLmN1Ym9pZHM9W10sdGhpcy5kaXZpZGVkPSExLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLnBvaW50Q291bnQ9MH1jb250YWluc1BvaW50KHQsZSxuKXtyZXR1cm4odC10aGlzLm1pblgpKih0aGlzLm1heFgtdCk+PTAmJihlLXRoaXMubWluWSkqKHRoaXMubWF4WS1lKT49MCYmKG4tdGhpcy5taW5aKSoodGhpcy5tYXhaLW4pPj0wfWludGVyc2VjdHNDdWJvaWQodCl7cmV0dXJuISh0Lm1heFg8dGhpcy5taW5YfHx0Lm1pblg+dGhpcy5tYXhYfHx0Lm1heFk8dGhpcy5taW5ZfHx0Lm1pblk+dGhpcy5tYXhZfHx0LnpNYXg8dGhpcy5taW5afHx0LnpNaW4+dGhpcy5tYXhaKX1zdWJkaXZpZGUoKXtpZih0aGlzLmRpdmlkZWQpcmV0dXJuO2NvbnN0IHQ9dGhpcy53aWR0aCouNSxlPXRoaXMuaGVpZ2h0Ki41LG49dGhpcy5sZXZlbCsxO3RoaXMuY2hpbGRyZW49W25ldyBaKHttaW5YOnRoaXMubWluWCxtYXhYOnRoaXMuY2VudGVyWCxtaW5ZOnRoaXMubWluWSxtYXhZOnRoaXMuY2VudGVyWSxtaW5aOnRoaXMubWluWixtYXhaOnRoaXMubWF4Wix3aWR0aDp0LGhlaWdodDplfSx0aGlzLmNhcGFjaXR5LHRoaXMubWF4TGV2ZWwsbiksbmV3IFooe21pblg6dGhpcy5jZW50ZXJYLG1heFg6dGhpcy5tYXhYLG1pblk6dGhpcy5taW5ZLG1heFk6dGhpcy5jZW50ZXJZLG1pblo6dGhpcy5taW5aLG1heFo6dGhpcy5tYXhaLHdpZHRoOnQsaGVpZ2h0OmV9LHRoaXMuY2FwYWNpdHksdGhpcy5tYXhMZXZlbCxuKSxuZXcgWih7bWluWDp0aGlzLm1pblgsbWF4WDp0aGlzLmNlbnRlclgsbWluWTp0aGlzLmNlbnRlclksbWF4WTp0aGlzLm1heFksbWluWjp0aGlzLm1pblosbWF4Wjp0aGlzLm1heFosd2lkdGg6dCxoZWlnaHQ6ZX0sdGhpcy5jYXBhY2l0eSx0aGlzLm1heExldmVsLG4pLG5ldyBaKHttaW5YOnRoaXMuY2VudGVyWCxtYXhYOnRoaXMubWF4WCxtaW5ZOnRoaXMuY2VudGVyWSxtYXhZOnRoaXMubWF4WSxtaW5aOnRoaXMubWluWixtYXhaOnRoaXMubWF4Wix3aWR0aDp0LGhlaWdodDplfSx0aGlzLmNhcGFjaXR5LHRoaXMubWF4TGV2ZWwsbildLHRoaXMuZGl2aWRlZD0hMDtjb25zdCByPXRoaXMuY3Vib2lkcy5sZW5ndGg7Zm9yKGxldCBjPTA7YzxyO2MrKyl7Y29uc3Qgcz10aGlzLmN1Ym9pZHNbY107Zm9yKGxldCBoPTA7aDw0O2grKyl0aGlzLmNoaWxkcmVuW2hdLmludGVyc2VjdHNDdWJvaWQocykmJnRoaXMuY2hpbGRyZW5baF0uaW5zZXJ0KHMpfXRoaXMubGV2ZWw+MCYmKHRoaXMuY3Vib2lkcz1bXSl9aW5zZXJ0KHQpe2lmKCF0aGlzLmludGVyc2VjdHNDdWJvaWQodCkpcmV0dXJuITE7aWYodGhpcy5kaXZpZGVkKXtsZXQgZT0hMTtmb3IobGV0IG49MDtuPDQ7bisrKXRoaXMuY2hpbGRyZW5bbl0uaW5zZXJ0KHQpJiYoZT0hMCk7cmV0dXJuIHRoaXMubGV2ZWw9PT0wJiZ0aGlzLmN1Ym9pZHMucHVzaCh0KSxlfXJldHVybiB0aGlzLmN1Ym9pZHMucHVzaCh0KSx0aGlzLnBvaW50Q291bnQrKyx0aGlzLnBvaW50Q291bnQ+dGhpcy5jYXBhY2l0eSYmdGhpcy5sZXZlbDx0aGlzLm1heExldmVsJiZ0aGlzLnN1YmRpdmlkZSgpLCEwfV9maW5kQ3Vib2lkQ29udGFpbmluZ1BvaW50KHQsZSxuKXtjb25zdCByPXRoaXMuY3Vib2lkcy5sZW5ndGg7Zm9yKGxldCBjPTA7YzxyO2MrKyl7Y29uc3Qgcz10aGlzLmN1Ym9pZHNbY107aWYobjxzLnpNaW58fG4+cy56TWF4fHx0PHMubWluWHx8dD5zLm1heFh8fGU8cy5taW5ZfHxlPnMubWF4WSljb250aW51ZTtjb25zdCBoPXMucG9seWdvblBvaW50TGlzdDtsZXQgbD0hMTtmb3IobGV0IG09MCxmPWgubGVuZ3RoLTE7bTxoLmxlbmd0aDtmPW0rKyl7Y29uc3QgZD1oW21dLngsdT1oW21dLnksbz1oW2ZdLngsYT1oW2ZdLnk7dT5lIT1hPmUmJnQ8KG8tZCkqKGUtdSkvKGEtdSkrZCYmKGw9IWwpfWlmKGwpcmV0dXJue2N1Ym9pZDpzLGNvbG9ySW5mbzpzLmNvbG9ySW5mb319cmV0dXJuIG51bGx9cXVlcnlQb2ludCh0KXtjb25zdHt4OmUseTpuLHo6cn09dDtpZihlPHRoaXMubWluWHx8ZT50aGlzLm1heFh8fG48dGhpcy5taW5ZfHxuPnRoaXMubWF4WXx8cjx0aGlzLm1pblp8fHI+dGhpcy5tYXhaKXJldHVybiBudWxsO2lmKCF0aGlzLmRpdmlkZWQpcmV0dXJuIHRoaXMuX2ZpbmRDdWJvaWRDb250YWluaW5nUG9pbnQoZSxuLHIpO2NvbnN0IGM9KG48dGhpcy5jZW50ZXJZPzA6MikrKGU8dGhpcy5jZW50ZXJYPzA6MSk7bGV0IHM9dGhpcy5jaGlsZHJlbltjXS5xdWVyeVBvaW50KHQpO2lmKCFzKWZvcihsZXQgaD0wO2g8NCYmIShoIT09YyYmKHM9dGhpcy5jaGlsZHJlbltoXS5xdWVyeVBvaW50KHQpLHMpKTtoKyspO3JldHVybiFzJiZ0aGlzLmxldmVsPT09MCYmKHM9dGhpcy5fZmluZEN1Ym9pZENvbnRhaW5pbmdQb2ludChlLG4scikpLHN9Y2xlYXIoKXtpZih0aGlzLmN1Ym9pZHM9W10sdGhpcy5wb2ludENvdW50PTAsdGhpcy5kaXZpZGVkKXtmb3IobGV0IHQ9MDt0PDQ7dCsrKXRoaXMuY2hpbGRyZW5bdF0mJnRoaXMuY2hpbGRyZW5bdF0uY2xlYXIoKTt0aGlzLmRpdmlkZWQ9ITEsdGhpcy5jaGlsZHJlbj1udWxsfX19Y29uc3QgTT1bLTEsLTEsLTFdO2xldCBiPSExLEM9bnVsbDtjb25zdCBJPW5ldyBNYXA7ZnVuY3Rpb24gTyhpKXtjb25zdCB0PS03LGU9MyxuPWUtdDtyZXR1cm4gaTx0JiYoaT10KSxpPmUmJihpPWUpLE1hdGguZmxvb3IoKGktdCkvbioyNTUpfWZ1bmN0aW9uIF8oKXtsZXQgaTtjb25zdCB0PW5ldyBBcnJheSgyNTYpLmZpbGwoIiIpLm1hcCgoKT0+bmV3IEFycmF5KDMpLmZpbGwoIiIpKTtmb3IoaT0wO2k8MzI7aSsrKXRbaV1bMF09MTI4KzQqaSx0W2ldWzFdPTAsdFtpXVsyXT0wO2Zvcih0WzMyXVswXT0yNTUsdFszMl1bMV09MCx0WzMyXVsyXT0wLGk9MDtpPDYzO2krKyl0WzMzK2ldWzBdPTI1NSx0WzMzK2ldWzFdPTQrNCppLHRbMzMraV1bMl09MDtmb3IodFs5Nl1bMF09MjU0LHRbOTZdWzFdPTI1NSx0Wzk2XVsyXT0yLGk9MDtpPDYyO2krKyl0Wzk3K2ldWzBdPTI1MC00KmksdFs5NytpXVsxXT0yNTUsdFs5NytpXVsyXT02KzQqaTtmb3IodFsxNTldWzBdPTEsdFsxNTldWzFdPTI1NSx0WzE1OV1bMl09MjU0LGk9MDtpPDY0O2krKyl0WzE2MCtpXVswXT0wLHRbMTYwK2ldWzFdPTI1Mi1pKjQsdFsxNjAraV1bMl09MjU1O2ZvcihpPTA7aTwzMjtpKyspdFsyMjQraV1bMF09MCx0WzIyNCtpXVsxXT0wLHRbMjI0K2ldWzJdPTI1Mi00Kmk7cmV0dXJuIHR9Y29uc3QgQT1fKCk7ZnVuY3Rpb24gTChpLHQsZT0wKXtsZXQgbj0wLHIsYyxzLGg7ZT09PTEmJih0PWNyZWF0ZVNtb290aEN1cnZlUG9pbnRzKHQucmVkdWNlKChtLGYpPT5bLi4ubSxmLngsZi55XSxbXSksLjUsITAsU0VHTUVOVF9OVU1CRVIpKSxbc109dDtjb25zdCBsPXQubGVuZ3RoO2ZvcihyPTE7cjw9bDtyKyspaD10W3IlbF0saS54Pk1hdGgubWluKHMueCxoLngpJiZpLng8PU1hdGgubWF4KHMueCxoLngpJiZpLnk8PU1hdGgubWF4KHMueSxoLnkpJiZzLnghPT1oLngmJihjPShpLngtcy54KSooaC55LXMueSkvKGgueC1zLngpK3MueSwocy55PT09aC55fHxpLnk8PWMpJiZuKyspLHM9aDtyZXR1cm4gbiUyIT0wfWZ1bmN0aW9uIHAoaSl7Y29uc3QgdD1NYXRoLnJvdW5kKGkqMWUzKS8xZTM7aWYoSS5oYXModCkpcmV0dXJuIEkuZ2V0KHQpO2NvbnN0IGU9TyhpKSxuPUFbZV0sW3IsYyxzXT1uLGg9W3IvMjU1LGMvMjU1LHMvMjU1XTtyZXR1cm4gSS5zZXQodCxoKSxofXJldHVybiBvbm1lc3NhZ2U9ZnVuY3Rpb24odCl7Y29uc3R7cG9zaXRpb246ZSxjb2xvcjpuLGN1Ym9pZExpc3Q6cixjb2xvckxpc3Q6YyxoaWdobGlnaHRJbmRleDpzfT10LmRhdGE7bGV0e21vZGlmaWVkQm94SWRzOmg9W10scmVzZXRBcmVhczpsPVtdfT10LmRhdGE7SS5jbGVhcigpO2xldCBtPTA7ZnVuY3Rpb24gZigpe20rPTF9aWYoIWUpcmV0dXJuO2NvbnN0IGQ9ISEocz09bnVsbD92b2lkIDA6cy5sZW5ndGgpOyhkfHxiKSYmKGg9W10sbD1bXSk7Y29uc3QgdT1oLmxlbmd0aD9yLmZpbHRlcihvPT5oLmluY2x1ZGVzKG8uaWQpKTpyO2lmKEMpQy5jbGVhcigpO2Vsc2V7Y29uc3Qgbz1FKGUpO0M9bmV3IFoobywzMiw2KX11LmZvckVhY2gobz0+e2NvbnN0IGE9cShvLGMpO0MuaW5zZXJ0KGEpfSk7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKz0zKXtjb25zdCBhPWVbb10seD1lW28rMV0sWD1lW28rMl07bGV0IFk7aWYobC5sZW5ndGg9PT0xJiYhaC5sZW5ndGgpTCh7eDphLHk6eH0sbFswXSk/WT1wKFgpOlk9TTtlbHNlIGlmKGwubGVuZ3RofHxoLmxlbmd0aCl7bGV0IGc9ITE7Y29uc3QgeT1DLnF1ZXJ5UG9pbnQoe3g6YSx5OngsejpYfSk7eSYmKGYoKSxZPXkuY29sb3JJbmZvLGc9ITApLCFnJiZsLmxlbmd0aCYmKGc9bC5zb21lKHY9Pkwoe3g6YSx5Onh9LHYpPyhZPXAoWCksITApOiExKSksIWcmJiFkJiYoYj9ZPXAoWCk6WT1NKX1lbHNle2NvbnN0IGc9Qy5xdWVyeVBvaW50KHt4OmEseTp4LHo6WH0pO2cmJihmKCksWT1nLmNvbG9ySW5mbyl9Y29uc3QgUD1nPT57Y29uc3QgeT1NYXRoLmZsb29yKGcvMyk7cmV0dXJuIHMmJnNbeV09PT0xfTtpZihZKWlmKFlbMF09PT1NWzBdJiZQKG8pKW5bb109MCxuW28rMV09MCxuW28rMl09MDtlbHNle2NvbnN0W2cseSx2XT1ZO25bb109ZyxuW28rMV09eSxuW28rMl09dn1lbHNlIGlmKFAobykpbltvXT0wLG5bbysxXT0wLG5bbysyXT0wO2Vsc2V7Y29uc3RbZyx5LHZdPXAoWCk7bltvXT1nLG5bbysxXT15LG5bbysyXT12fX1iPWQscG9zdE1lc3NhZ2Uoe3BvaW50czplLGNvbG9yOm4sbnVtOm19KX0sdy5pc0luUG9seWdvbj1MLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx3fSh7fSk7Cgo=",null,!1);module.exports=WorkerFactory;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _=require("lodash"),turf=require("@turf/turf"),MathUtils=require("../../utils/MathUtils.js"),AxisUtils=require("../../utils/tool/AxisUtils.js"),RectUtils=require("../../utils/tool/RectUtils.js"),TagUtils=require("../../utils/tool/TagUtils.js"),annotation=require("../../constant/annotation.js"),tool=require("../../constant/tool.js"),keyCode=require("../../constant/keyCode.js"),index=require("../../locales/index.js"),constants=require("../../locales/constants.js"),AttributeUtils=require("../../utils/tool/AttributeUtils.js"),CanvasUtils=require("../../utils/tool/CanvasUtils.js"),CommonToolUtils=require("../../utils/tool/CommonToolUtils.js"),DrawUtils=require("../../utils/tool/DrawUtils.js"),MarkerUtils=require("../../utils/tool/MarkerUtils.js"),polygonTool=require("../../utils/tool/polygonTool.js"),uuid=require("../../utils/uuid.js"),basicToolOperation=require("./basicToolOperation.js"),textAttributeClass=require("./textAttributeClass.js"),Selection=require("./Selection.js"),lbUtils=require("@labelbee/lb-utils");function _interopDefaultLegacy(f){return f&&typeof f=="object"&&"default"in f?f:{default:f}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(f,t,e)=>t in f?__defProp(f,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):f[t]=e,__spreadValues=(f,t)=>{for(var e in t||(t={}))__hasOwnProp.call(t,e)&&__defNormalProp(f,e,t[e]);if(__getOwnPropSymbols)for(var e of __getOwnPropSymbols(t))__propIsEnum.call(t,e)&&__defNormalProp(f,e,t[e]);return f},__spreadProps=(f,t)=>__defProps(f,__getOwnPropDescs(t));const scope=6;class RectOperation extends basicToolOperation.BasicToolOperation{constructor(t){super(__spreadProps(__spreadValues({},t),{isOffscreenCanvas:!0}));this.highlightVisible=!1,this.enableAddRect=!0,this.setMarkerIndex=e=>{this.markerIndex=e},this.setMarkerIndexAndSelect=e=>{if(!this.config.markerList)return;this.markerIndex=e;const i=this.config.markerList[e].value,r=this.currentPageResult.find(n=>n.label===i);r&&(this.setSelectedRectID(r.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(r.attribute)),this.emit("markIndexChange")},this.getHoverRectID=e=>{const i=this.getCoordinateUnderZoom(e),r=scope,{currentShowList:n}=this;if(n.length>0){if(this.selectedRectID){const{selectedRect:a}=this;if(a&&RectUtils.isInRect(i,a,r,this.zoom))return a.id}const s=n.filter(a=>RectUtils.isInRect(i,a,r,this.zoom));if(s.length===0)return"";if(s.length===1)return s[0].id;if(s.length>1)return s.map(h=>({size:h.width*h.height,id:h.id})).sort((h,o)=>h.size-o.size)[0].id}return""},this.getSelectedRectTextAttribute=e=>{if(e){const i=this.rectList.find(r=>r.id===e);return(i==null?void 0:i.textAttribute)||""}return""},this.lastMouseMoveTime=0,this.mouseMoveThrottle=16,this.setDefaultSubAttribute=()=>{var e,i,r,n;if(((e=this.config)==null?void 0:e.secondaryAttributeConfigurable)&&((i=this.config)==null?void 0:i.subAttributeList)){const s=TagUtils.getDefaultResultByConfig((n=(r=this.config)==null?void 0:r.subAttributeList)!=null?n:[]);this.setRectList(this.rectList.map(a=>{var h;if(a.id===this.selectedRectID){const o=(h=a==null?void 0:a.subAttribute)!=null?h:s;return __spreadProps(__spreadValues({},a),{subAttribute:o})}return a}),!0)}},this.textChange=e=>{this.config.textConfigurable!==!0||!this.selectedRectID||(this.setRectList(AttributeUtils.default.textChange(e,this.selectedRectID,this.rectList),!0),this.emit("selectedChange"),this.render())},this._drawOutSideTarget=t.drawOutSideTarget||!1,this.rectList=[],this.isFlow=!0,this.config=CommonToolUtils.jsonParser(t.config),this.hoverRectEdgeIndex=-1,this.hoverRectPointIndex=-1,this.selectedRectTextAttribute="",this.markerIndex=0,this.createNewDrawingRect=this.createNewDrawingRect.bind(this),this.getDrawingRectWithRectList=this.getDrawingRectWithRectList.bind(this),this.setSelectedIdAfterAddingDrawingRect=this.setSelectedIdAfterAddingDrawingRect.bind(this),this.getCurrentSelectedData=this.getCurrentSelectedData.bind(this),this.updateSelectedRectTextAttribute=this.updateSelectedRectTextAttribute.bind(this),this.setSelectedID=this.setSelectedID.bind(this),this.updateSelectedRectSubAttribute=this.updateSelectedRectSubAttribute.bind(this),this.selection=new Selection(this)}renderPointCloud2DHighlight(){}setResult(t){if(this.clearActiveStatus(),this.setRectList(t),this.hasMarkerConfig){const e=CommonToolUtils.getNextMarker(this.getCurrentPageResult(t),this.config.markerList);e&&this.setMarkerIndex(e.index)}this.render()}destroy(){super.destroy(),this._textAttributeInstance&&this._textAttributeInstance.clearTextAttribute()}setConfig(t,e=!1){this.config=CommonToolUtils.jsonParser(t),e===!0&&this.clearResult(!1)}setRectList(t,e=!1){const i=this.rectList.length;this.rectList=t,i!==t.length&&this.emit("updatePageNumber"),e&&this.emit("updateResult")}get selectedRectID(){return this.selectedIDs.length===1?this.selectedIDs[0]:void 0}get selectedID(){return this.selectedRectID}get drawOutSideTarget(){return this._drawOutSideTarget||this.config.drawOutsideTarget}get selectedRect(){return this.selectedRects.length===1?this.selectedRects[0]:void 0}get selectedIDs(){return this.selection.selectedIDs}get selectedRects(){return this.rectList.filter(t=>this.selectedIDs.includes(t.id))}get selectedText(){var t;return(t=this.selectedRect)==null?void 0:t.textAttribute}get dataList(){return this.rectList}get currentShowList(){let t=[];const[e,i]=CommonToolUtils.getRenderResultList(this.rectList,CommonToolUtils.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);return t=e,this.isHidden&&(t=[]),i&&t.push(...i),t}get currentPageResult(){const[t]=CommonToolUtils.getRenderResultList(this.rectList,CommonToolUtils.getSourceID(this.basicResult),[]);return t}getCurrentPageResult(t){const[e]=CommonToolUtils.getRenderResultList(t,CommonToolUtils.getSourceID(this.basicResult),[]);return e}setSelectedID(t){this.setSelectedRectID(t)}setSelectedRectID(t,e=!1){this.selection.setSelectedIDs(t,e),this.render(),this.emit("selectedChange")}setStyle(t){var e;super.setStyle(t),this._textAttributeInstance&&this.config.attributeConfigurable===!1&&((e=this._textAttributeInstance)==null||e.updateIcon(this.getTextIconSvg()))}updateSelectedRectTextAttribute(t){if(this._textAttributeInstance&&t&&this.selectedRectID){let e=t;AttributeUtils.default.textAttributeValidate(this.config.textCheckType,"",e)===!1&&(this.emit("messageError",AttributeUtils.default.getErrorNotice(this.config.textCheckType,this.lang)),e=""),this.setRectList(this.rectList.map(i=>i.id===this.selectedRectID?__spreadProps(__spreadValues({},i),{textAttribute:e}):i),!0),this.emit("updateTextAttribute"),this.render()}}updateSelectedRectSubAttribute(t,e){e&&this.config.secondaryAttributeConfigurable===!0&&this.selectedRectID&&(this.setRectList(this.rectList.map(i=>{var r;if(i.id===this.selectedRectID){const n=(r=i==null?void 0:i.subAttribute)!=null?r:{};return __spreadProps(__spreadValues({},i),{subAttribute:__spreadProps(__spreadValues({},n),{[t]:e})})}return i}),!0),this.render())}getHoverRectPointIndex(t){return this.selectedRect?AxisUtils.default.returnClosePointIndex(this.getCoordinateUnderZoom(t),RectUtils.getRectPointList(this.selectedRect,this.zoom),scope+2):-1}getHoverRectEdgeIndex(t){if(!this.selectedRect)return-1;let e=-1;const{selectedRect:i}=this,r=RectUtils.getRectEdgeList(i,this.zoom),n=this.getCoordinateUnderZoom(t);for(let s=0;s<r.length;s++){const a=r[s],{length:h}=MathUtils.default.getFootOfPerpendicular(n,a.begin,a.end);h<scope+10&&(e=s)}return e}getTextIconSvg(t=""){return AttributeUtils.default.getTextIconSvg(t,this.config.attributeList,this.config.attributeConfigurable,this.baseIcon)}onMouseDown(t){if(super.onMouseDown(t)||this.forbidMouseOperation||t.ctrlKey===!0)return;const e=this.getCoordinateUnderZoom(t),i=this.getHoverRectID(t);if(!(t.button===2||t.button===0&&this.isSpaceKey===!0)){if(this.selectedRectID){const r=this.currentShowList.find(n=>n.id===this.selectedRectID);if(!r)return;if(this.getHoverRectPointIndex(t)>-1){const n=tool.EDragTarget.Point;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=annotation.EDragStatus.Start;return}if(this.getHoverRectEdgeIndex(t)>-1){const n=tool.EDragTarget.Line;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=annotation.EDragStatus.Start;return}}if(this.selection.isIdSelected(i)&&!this.drawingRect){const r=tool.EDragTarget.Plane;this.dragInfo={dragStartCoord:e,dragTarget:r,firstRect:this.selectedRect,startTime:+new Date,originRectList:this.selectedRects},this.dragStatus=annotation.EDragStatus.Start}}}appendOffsetRect(t,e){return __spreadProps(__spreadValues({},t),{x:t.x+e.x/this.zoom,y:t.y+e.y/this.zoom})}getRectsBoundaries(t,e){const i=t.reduce((r,n)=>r.concat(...RectUtils.getRectPointList(this.appendOffsetRect(n,e))),[]);return MathUtils.default.calcViewportBoundaries(i)}isRectsOutOfTarget(t,e){var i,r,n,s;if(this.drawOutSideTarget!==!1)return!1;const a=this.getRectsBoundaries(t,e),h={y:a.top,x:a.left,height:a.bottom-a.top,width:a.right-a.left};if(((r=(i=this.basicResult)==null?void 0:i.pointList)==null?void 0:r.length)>0)return RectUtils.isRectNotInPolygon(h,polygonTool.getPolygonPointUnderZoom(this.basicResult.pointList,this.zoom));if(this.basicResult||this.imgInfo){const o=this.basicResult?this.basicResult:{x:0,y:0,height:(n=this.imgNode)==null?void 0:n.height,width:(s=this.imgNode)==null?void 0:s.width};if(o)return[{x:a.left,y:a.top},{x:a.right,y:a.bottom}].some(l=>!RectUtils.isInRect(l,o))}return!1}moveRects(t){var e;if((e=this.dragInfo)==null?void 0:e.originRectList){let i=___default.default.cloneDeep(this.dragInfo.originRectList);if(this.isRectsOutOfTarget(i,t))return;i=this.dragInfo.originRectList.map(r=>__spreadProps(__spreadValues({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom})),this.setRectList(this.rectList.map(r=>{const n=i.find(s=>s.id===r.id);return n||r}))}}onDragMoveAll(t){var e,i;!((i=(e=this.dragInfo)==null?void 0:e.originRectList)==null?void 0:i.length)||(this.setRectList(this.dragInfo.originRectList.map(r=>__spreadProps(__spreadValues({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom}))),this.render())}onDragMove(t){var e,i,r,n;if(!this.dragInfo)return;const s={x:t.x-this.dragInfo.dragStartCoord.x,y:t.y-this.dragInfo.dragStartCoord.y};if(this.dragStatus=annotation.EDragStatus.Move,this.dragInfo.dragTarget===tool.EDragTarget.Plane){this.moveRects(s);return}if(!this.dragInfo.firstRect)return;const a=RectUtils.getRectUnderZoom(this.dragInfo.firstRect,this.zoom),{x:h,y:o,width:l,height:c}=a;let d=this.rectList.filter(u=>u.id===this.selectedRectID)[0];switch(this.dragInfo.dragTarget){case tool.EDragTarget.Point:{let u=h,g=o,R=l,b=c;switch(this.hoverRectPointIndex){case 0:{u=l-s.x<0?h+l:h+s.x,g=c-s.y<0?o+c:o+s.y,R=Math.abs(s.x-l),b=Math.abs(s.y-c);break}case 1:{u=l+s.x>0?h:h+l+s.x,g=c-s.y<0?o+c:o+s.y,R=Math.abs(l+s.x),b=Math.abs(c-s.y);break}case 2:{u=l+s.x>0?h:h+l+s.x,g=c+s.y>0?o:o+c+s.y,R=Math.abs(l+s.x),b=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{u=l-s.x<0?h+l:h+s.x,g=c+s.y>0?o:o+c+s.y,R=Math.abs(s.x-l),b=c+s.y>0?c+s.y:Math.abs(c+s.y);break}default:return}d=__spreadProps(__spreadValues({},d),{x:u,y:g,width:R,height:b})}break;case tool.EDragTarget.Line:{let u=h,g=o,R=l,b=c;switch(this.hoverRectEdgeIndex){case 0:{g=c-s.y<0?o+c:o+s.y,b=Math.abs(s.y-c);break}case 1:{u=l+s.x>0?h:h+l+s.x,R=Math.abs(l+s.x);break}case 2:{g=c+s.y>0?o:o+c+s.y,b=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{u=l-s.x<0?h+l:h+s.x,R=Math.abs(s.x-l);break}default:return}d=__spreadProps(__spreadValues({},d),{x:u,y:g,width:R,height:b});break}default:return}if(this.drawOutSideTarget===!1){if(this.basicResult){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&RectUtils.isRectNotInPolygon(d,polygonTool.getPolygonPointUnderZoom(this.basicResult.pointList,this.zoom)))return;const u=this.basicResult.x*this.zoom,g=this.basicResult.y*this.zoom,R=this.basicResult.width*this.zoom,b=this.basicResult.height*this.zoom;if(d.x<u-.01||d.y<g-.01||d.width>u+R-d.x+.01||d.height>g+b-d.y+.01)return;if(d.x<u&&(d.x=u),d.y<g&&(d.y=g),d.width>u+R-d.x)switch(this.dragInfo.dragTarget){case tool.EDragTarget.Point:case tool.EDragTarget.Line:s.x>0&&s.y>0&&(d.width=u+R-d.x);break;default:return}if(d.height>g+b-d.y)switch(this.dragInfo.dragTarget){}}else if(d.x<0&&(d.x=0),d.y<0&&(d.y=0),this.imgInfo)switch(this.dragInfo.dragTarget){default:if(d.x+d.width>((r=this.imgInfo)==null?void 0:r.width)+.01||d.y+d.height>((n=this.imgInfo)==null?void 0:n.height)+.01)return}}this.setRectList(this.rectList.map(u=>u.id===d.id?RectUtils.getRectUnderZoom(d,1/this.zoom):u)),this.render()}onMouseMove(t){requestAnimationFrame(()=>{var e,i;const r=Date.now();if(r-this.lastMouseMoveTime<this.mouseMoveThrottle||(this.lastMouseMoveTime=r,super.onMouseMove(t,!1)||this.forbidMouseOperation||!this.imgInfo))return;const n=this.getCoordinateUnderZoom(t),s=AxisUtils.default.changeDrawOutsideTarget(n,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.selectedIDs.length>0&&this.dragInfo){this.onDragMove(s),this.render();return}if(this.selectedRectID){const o=this.getHoverRectPointIndex(t);if(o!==this.hoverRectPointIndex){this.hoverRectPointIndex=o,this.hoverRectEdgeIndex=-1,this.render();return}if(this.hoverRectPointIndex===-1){const l=this.getHoverRectEdgeIndex(t);if(l!==this.hoverRectEdgeIndex){this.hoverRectEdgeIndex=l,this.render();return}}}const a=this.getHoverRectID(t),h=this.hoverRectID;if(this.hoverRectID=a,a!==h&&this.render(),this.enableAddRect&&this.drawingRect&&this.firstClickCoord){let{x:o,y:l}=this.firstClickCoord,{width:c,height:d}=this.drawingRect;if(c=Math.abs(o-s.x),d=Math.abs(l-s.y),s.x<o&&(o=s.x),s.y<l&&(l=s.y),this.drawOutSideTarget===!1){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&RectUtils.isRectNotInPolygon(__spreadProps(__spreadValues({},this.drawingRect),{x:o,y:l,width:c,height:d}),polygonTool.getPolygonPointUnderZoom(this.basicResult.pointList,this.zoom)))return;s.x<0&&(c=Math.abs(this.firstClickCoord.x),o=0),s.y<0&&(d=Math.abs(this.firstClickCoord.y),l=0),this.imgInfo&&(o+c>this.imgInfo.width&&(c=Math.abs(this.imgInfo.width-o)),l+d>this.imgInfo.height&&(d=Math.abs(this.imgInfo.height-l)))}this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{x:o,y:l,width:c,height:d}),this.render()}if(this.isDrag&&!this.dragInfo){this.render("drag");return}this.render("move")})}setHighlightVisible(t){this.highlightVisible=t,this.setAttributeLockList([])}setAttributeLockList(t){this.setSelectedRectID(void 0),(t==null?void 0:t.length)&&(this.highlightVisible=!1),super.setAttributeLockList(t)}setBasicResult(t){super.setBasicResult(t),this.clearActiveStatus()}setRectValidAndRender(t){const e=this.rectList.some(i=>i==null?void 0:i.valid);this.setRectList(this.rectList.map(i=>i.id===t?__spreadProps(__spreadValues({},i),{valid:!i.valid}):(this.selection.isIdSelected(i.id)&&(i.valid=!e),i)),!0),this.render(),this.emit("updateResult")}createNewDrawingRect(t,e){var i,r,n,s;if(!this.imgInfo)return;const a=this.getCoordinateUnderZoom(t),h=AxisUtils.default.changeDrawOutsideTarget(a,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.setSelectedRectID(""),this.hoverRectID="",this.drawOutSideTarget&&(h.x<0&&(h.x=0),h.y<0&&(h.y=0)),this.drawingRect=__spreadProps(__spreadValues({},h),{width:0,height:0,attribute:this.defaultAttribute,valid:!t.ctrlKey,id:uuid(8,62),sourceID:e,textAttribute:""}),this.hasMarkerConfig){const o=CommonToolUtils.getNextMarker(this.currentPageResult,this.config.markerList,this.markerIndex);if(o)this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{label:o.label})),this.markerIndex=o.index,this.emit("markIndexChange");else{this.emit("messageInfo",index.getMessagesByLocale(constants.EMessage.MarkerFinish,this.lang)),this.drawingRect=void 0;return}}if(this.config.textConfigurable){let o="";o=AttributeUtils.default.getTextAttribute(this.rectList.filter(l=>CommonToolUtils.isSameSourceID(l.sourceID,e)),this.config.textCheckType),this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{textAttribute:o}))}if(((i=this.config)==null?void 0:i.secondaryAttributeConfigurable)&&((r=this.config)==null?void 0:r.subAttributeList)){const o=TagUtils.getDefaultResultByConfig((s=(n=this.config)==null?void 0:n.subAttributeList)!=null?s:[]);this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{subAttribute:o})}if(Object.assign(this.drawingRect,{order:CommonToolUtils.getMaxOrder(this.rectList.filter(o=>CommonToolUtils.isSameSourceID(o.sourceID,e)))+1}),this.firstClickCoord=__spreadValues({},h),this.firstCurrentPos=__spreadValues({},this.currentPos),this.dataInjectionAtCreation){const o=this.dataInjectionAtCreation(this.drawingRect);o&&Object.assign(this.drawingRect,o)}}checkSize({width:t,height:e,minWidth:i,minHeight:r,isAttributeConfig:n=!1}){return Math.round(t)<i||Math.round(e)<r?(this.emit("messageInfo",lbUtils.i18n.t(n?"TheSizeOfTheDrawingBoxIsSmallerThanTheMinimumDrawingSizeInTheMainPropertyConfiguration":"TheDrawFrameSizeIsSmallerThanTheMinimumDrawSizeInTheStepConfiguration")),this.clearDrawingStatus(),this.render(),!1):!0}addDrawingRectToRectList(){var t,e,i;if(!this.drawingRect)return;let{width:r,height:n}=this.drawingRect;r/=this.zoom,n/=this.zoom;const{attribute:s}=this.drawingRect;let a={minWidth:this.config.minWidth,minHeight:this.config.minHeight};if(s&&this.config.attributeConfigurable){const l=(i=((e=(t=this.config)==null?void 0:t.attributeList)!=null?e:[]).find(c=>c.value===s))==null?void 0:i.limit;l&&(a=__spreadProps(__spreadValues({},l),{isAttributeConfig:!0}))}if(!this.checkSize(__spreadValues({width:r,height:n},a)))return;const h=this.getDrawingRectWithRectList();this.setRectList(h,!0),this.history.pushHistory(this.rectList),this.setSelectedIdAfterAddingDrawingRect(),this.clearDrawingStatus()}setSelectedIdAfterAddingDrawingRect(){var t;!this.drawingRect||(this.config.textConfigurable||((t=this.config)==null?void 0:t.secondaryAttributeConfigurable)?this.setSelectedRectID(this.drawingRect.id):this.setSelectedRectID())}getDrawingRectWithRectList(){if(!this.drawingRect)return this.rectList;let{x:t,y:e,width:i,height:r}=this.drawingRect;return t/=this.zoom,e/=this.zoom,i/=this.zoom,r/=this.zoom,[...this.rectList,__spreadProps(__spreadValues({},this.drawingRect),{x:t,y:e,width:i,height:r})]}rightMouseUp(t){var e,i,r,n,s;const a=this.getHoverRectID(t),h=this.rectList.find(o=>o.id===a);if(this.selectedRectTextAttribute="",this.drawingRect)this.drawingRect=void 0,this.firstClickCoord=void 0;else{if(((e=this.dragInfo)==null?void 0:e.dragStartCoord)&&turf.distance((i=this.dragInfo)==null?void 0:i.dragStartCoord,this.getCoordinateUnderZoom(t))>3&&this.dblClickListener.clearRightDblClick(),this.setSelectedRectID(a,t.ctrlKey),h&&((r=this.selectedIDs)==null?void 0:r.length)===1&&(this.selectedRectTextAttribute=this.getSelectedRectTextAttribute(a),this.setDefaultAttribute(h.attribute)),this.hoverRectID="",(h==null?void 0:h.label)&&this.hasMarkerConfig){const o=CommonToolUtils.getCurrentMarkerIndex(h.label,this.config.markerList);o>=0&&(this.setMarkerIndex(o),this.emit("markIndexChange"))}((n=this.config)==null?void 0:n.secondaryAttributeConfigurable)&&((s=this.config)==null?void 0:s.subAttributeList)&&this.setDefaultSubAttribute()}return this.render(),h}shiftRightMouseUp(t){const e=this.getHoverRectID(t);this.emit("shiftRightMouseUp",e)}updateDragResult(){this.emit("updateDragResult",__spreadValues({},this.selectedRect))}setEnableAddRect(t){this.enableAddRect=t}onMouseUp(t){if(super.onMouseUp(t)||this.forbidMouseOperation||!this.imgInfo)return!0;if(this.dragInfo&&this.dragStatus===annotation.EDragStatus.Move){this.dragInfo=void 0,this.dragStatus=annotation.EDragStatus.Wait,this.history.pushHistory(this.rectList),this.emit("updateResult"),this.updateDragResult();return}if(t.button===2&&t.shiftKey===!0){this.shiftRightMouseUp(t);return}if(t.button===2){this.rightMouseUp(t);return}const e=CommonToolUtils.getSourceID(this.basicResult);if(this.drawingRect){this.enableAddRect?this.addDrawingRectToRectList():(this.clearDrawingStatus(),this.render());return}if(t.ctrlKey===!0&&t.button===0&&this.hoverRectID){this.setRectValidAndRender(this.hoverRectID);return}this.enableAddRect&&(this.createNewDrawingRect(t,e),this.render())}onRightDblClick(t){super.onRightDblClick(t);const e=this.getHoverRectID(t);this.selection.isIdSelected(e)&&this.deleteSelectedRect(t)}deleteSelectedRect(t){this.selectedRects.forEach(e=>{this.deleteRect(e.id)})}onKeyDown(t){if(!CommonToolUtils.hotkeyFilter(t)||super.onKeyDown(t)===!1||this.selection.triggerKeyboardEvent(t,this.setRectList.bind(this)))return;const{keyCode:e}=t;switch(e){case keyCode.Ctrl:this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{valid:!t.ctrlKey}),this.render());break;case keyCode.F:this.selectedIDs.length>0&&this.setRectValidAndRender(this.selectedRectID);break;case keyCode.Z:this.setIsHidden(!this.isHidden),this.render();break;case keyCode.Delete:this.deleteSelectedRect(t);break;case keyCode.Tab:{if(t.preventDefault(),this.drawingRect)return;let i=annotation.ESortDirection.ascend;t.shiftKey&&(i=annotation.ESortDirection.descend);const[r,n]=CommonToolUtils.getRenderResultList(this.rectList,CommonToolUtils.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);let s=[...r];n&&(s=[...s,...n]);const a=CanvasUtils.getViewPort(this.canvas,this.currentPos,this.zoom);s=s.filter(o=>CanvasUtils.inViewPort({x:o.x,y:o.y},a));const h=CommonToolUtils.getNextSelectedRectID(s,i,this.selectedRectID);h&&(this.setSelectedRectID(h.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(h.attribute));break}default:{if(this.config.attributeConfigurable){const i=AttributeUtils.default.getAttributeByKeycode(e,this.config.attributeList);i!==void 0&&this.setDefaultAttribute(i)}break}}return!0}onKeyUp(t){switch(super.onKeyUp(t),t.keyCode){case keyCode.Ctrl:this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{valid:!0}),this.render());break}}onWheel(t){const e=this.zoom;let i,r;this.drawingRect&&this.firstClickCoord&&(i=RectUtils.getRectUnderZoom(this.drawingRect,1/e),r=AxisUtils.default.changePointByZoom(this.firstClickCoord,1/e)),super.onWheel(t,!1),i&&r&&(this.drawingRect=RectUtils.getRectUnderZoom(i,this.zoom),this.firstClickCoord=AxisUtils.default.changePointByZoom(r,this.zoom)),this.render()}getCurrentSelectedData(){const{selectedRect:t}=this;if(!t)return;const e=this.getColor(t.attribute),i=t.valid?e==null?void 0:e.valid.stroke:e==null?void 0:e.invalid.stroke;return{width:t.width*this.zoom*.6,textAttribute:t.textAttribute,color:i}}getRenderStyle(t){const e=this.customRenderStyle&&this.customRenderStyle(t);if(e)return e;const i=this.getColor(t.attribute);let r,n;return t.valid===!1?(r=i==null?void 0:i.invalid.stroke,n=i==null?void 0:i.invalid.fill):(r=i==null?void 0:i.valid.stroke,n=i==null?void 0:i.valid.fill),{strokeColor:r,fillColor:n,textColor:r,toolColor:i}}renderTextAttribute(){var t;const{selectedRect:e}=this;if(!this.ctx||this.config.textConfigurable!==!0||!e)return;const{x:i,y:r,width:n,height:s,attribute:a,valid:h}=e,o=n*this.zoom*.6,l=AxisUtils.default.getOffsetCoordinate({x:i,y:r+s},this.currentPos,this.zoom),c=this.getColor(a),d=h?c==null?void 0:c.valid.stroke:c==null?void 0:c.invalid.stroke,u=4;this._textAttributeInstance||(this._textAttributeInstance=new textAttributeClass({width:o,container:this.container,icon:this.getTextIconSvg(a),color:d,getCurrentSelectedData:this.getCurrentSelectedData,updateSelectedTextAttribute:this.updateSelectedRectTextAttribute})),this._textAttributeInstance&&!((t=this._textAttributeInstance)==null?void 0:t.isExit)&&this._textAttributeInstance.appendToContainer(),this._textAttributeInstance.update(`${e.textAttribute}`,{left:l.x,top:l.y+u,color:d,width:o})}renderSelectedRect(t){if(!this.ctx||!t)return;const{ctx:e}=this;let i=10;const r=RectUtils.getRectPointList(t),n=r.length,s=this.getColor(t.attribute);r.forEach((a,h)=>{var o,l;if(e.save(),e.moveTo(a.x,a.y),e.beginPath(),this.hoverRectPointIndex===h?i=scope+6:i=scope,t.valid===!1?(e.strokeStyle=s==null?void 0:s.invalid.stroke,e.fillStyle=s==null?void 0:s.invalid.stroke):(e.strokeStyle=s==null?void 0:s.valid.stroke,e.fillStyle=s==null?void 0:s.valid.stroke),e.arc(a.x*this.zoom+this.currentPos.x,a.y*this.zoom+this.currentPos.y,i,0,2*Math.PI),e.fill(),this.hoverRectEdgeIndex===h){e.beginPath(),e.lineWidth=10;const c=this.getColor(t.attribute),d=t.valid===!1?(o=c==null?void 0:c.invalid)==null?void 0:o.stroke:(l=c==null?void 0:c.valid)==null?void 0:l.stroke;e.strokeStyle=d,e.moveTo(r[h].x*this.zoom+this.currentPos.x,r[h].y*this.zoom+this.currentPos.y),e.lineTo(r[(h+1)%n].x*this.zoom+this.currentPos.x,r[(h+1)%n].y*this.zoom+this.currentPos.y),e.stroke()}e.restore()}),this.renderTextAttribute()}renderDrawingRect(t,e=this.zoom,i=!1,r=!1){var n,s,a,h,o,l;if(this.ctx&&t){const{ctx:c,style:d}=this,{hiddenText:u=!1}=d;c.save();const{strokeColor:g,fillColor:R,textColor:b}=this.getRenderStyle(t);c.font="lighter 14px Arial";let x="";((n=this.config)==null?void 0:n.isShowOrder)&&t.order&&(t==null?void 0:t.order)>0&&(x=`${t.order}`),t.label&&this.hasMarkerConfig&&(x=`${CommonToolUtils.getCurrentMarkerIndex(t.label,this.config.markerList)+1}_${MarkerUtils.getMarkerShowText(t.label,this.config.markerList)}`),t.attribute&&(x=`${x} ${AttributeUtils.default.getAttributeShowText(t.attribute,(s=this.config)==null?void 0:s.attributeList)}`,(t==null?void 0:t.subAttribute)&&((a=this.config)==null?void 0:a.secondaryAttributeConfigurable)&&((h=this.config)==null?void 0:h.subAttributeList)&&TagUtils.getTagNameList(t.subAttribute,this.config.subAttributeList).forEach(I=>{x+=`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _=require("lodash"),turf=require("@turf/turf"),MathUtils=require("../../utils/MathUtils.js"),AxisUtils=require("../../utils/tool/AxisUtils.js"),RectUtils=require("../../utils/tool/RectUtils.js"),TagUtils=require("../../utils/tool/TagUtils.js"),lbUtils=require("@labelbee/lb-utils"),annotation=require("../../constant/annotation.js"),tool=require("../../constant/tool.js"),keyCode=require("../../constant/keyCode.js"),index=require("../../locales/index.js"),constants=require("../../locales/constants.js"),AttributeUtils=require("../../utils/tool/AttributeUtils.js"),CanvasUtils=require("../../utils/tool/CanvasUtils.js"),CommonToolUtils=require("../../utils/tool/CommonToolUtils.js"),DrawUtils=require("../../utils/tool/DrawUtils.js"),MarkerUtils=require("../../utils/tool/MarkerUtils.js"),polygonTool=require("../../utils/tool/polygonTool.js"),uuid=require("../../utils/uuid.js"),basicToolOperation=require("./basicToolOperation.js"),textAttributeClass=require("./textAttributeClass.js"),Selection=require("./Selection.js");function _interopDefaultLegacy(f){return f&&typeof f=="object"&&"default"in f?f:{default:f}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(f,t,e)=>t in f?__defProp(f,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):f[t]=e,__spreadValues=(f,t)=>{for(var e in t||(t={}))__hasOwnProp.call(t,e)&&__defNormalProp(f,e,t[e]);if(__getOwnPropSymbols)for(var e of __getOwnPropSymbols(t))__propIsEnum.call(t,e)&&__defNormalProp(f,e,t[e]);return f},__spreadProps=(f,t)=>__defProps(f,__getOwnPropDescs(t));const scope=6;class RectOperation extends basicToolOperation.BasicToolOperation{constructor(t){super(__spreadProps(__spreadValues({},t),{isOffscreenCanvas:!0}));this.highlightVisible=!1,this.enableAddRect=!0,this.setMarkerIndex=e=>{this.markerIndex=e},this.setMarkerIndexAndSelect=e=>{if(!this.config.markerList)return;this.markerIndex=e;const i=this.config.markerList[e].value,r=this.currentPageResult.find(n=>n.label===i);r&&(this.setSelectedRectID(r.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(r.attribute)),this.emit("markIndexChange")},this.getHoverRectID=e=>{const i=this.getCoordinateUnderZoom(e),r=scope,{currentShowList:n}=this;if(n.length>0){if(this.selectedRectID){const{selectedRect:a}=this;if(a&&RectUtils.isInRect(i,a,r,this.zoom))return a.id}const s=n.filter(a=>RectUtils.isInRect(i,a,r,this.zoom));if(s.length===0)return"";if(s.length===1)return s[0].id;if(s.length>1)return s.map(h=>({size:h.width*h.height,id:h.id})).sort((h,o)=>h.size-o.size)[0].id}return""},this.getSelectedRectTextAttribute=e=>{if(e){const i=this.rectList.find(r=>r.id===e);return(i==null?void 0:i.textAttribute)||""}return""},this.lastMouseMoveTime=0,this.mouseMoveThrottle=16,this.setDefaultSubAttribute=()=>{var e,i,r,n;if(((e=this.config)==null?void 0:e.secondaryAttributeConfigurable)&&((i=this.config)==null?void 0:i.subAttributeList)){const s=TagUtils.getDefaultResultByConfig((n=(r=this.config)==null?void 0:r.subAttributeList)!=null?n:[]);this.setRectList(this.rectList.map(a=>{var h;if(a.id===this.selectedRectID){const o=(h=a==null?void 0:a.subAttribute)!=null?h:s;return __spreadProps(__spreadValues({},a),{subAttribute:o})}return a}),!0)}},this.textChange=e=>{this.config.textConfigurable!==!0||!this.selectedRectID||(this.setRectList(AttributeUtils.default.textChange(e,this.selectedRectID,this.rectList),!0),this.emit("selectedChange"),this.render())},this._drawOutSideTarget=t.drawOutSideTarget||!1,this.rectList=[],this.isFlow=!0,this.config=CommonToolUtils.jsonParser(t.config),this.hoverRectEdgeIndex=-1,this.hoverRectPointIndex=-1,this.selectedRectTextAttribute="",this.markerIndex=0,this.createNewDrawingRect=this.createNewDrawingRect.bind(this),this.getDrawingRectWithRectList=this.getDrawingRectWithRectList.bind(this),this.setSelectedIdAfterAddingDrawingRect=this.setSelectedIdAfterAddingDrawingRect.bind(this),this.getCurrentSelectedData=this.getCurrentSelectedData.bind(this),this.updateSelectedRectTextAttribute=this.updateSelectedRectTextAttribute.bind(this),this.setSelectedID=this.setSelectedID.bind(this),this.updateSelectedRectSubAttribute=this.updateSelectedRectSubAttribute.bind(this),this.selection=new Selection(this)}renderPointCloud2DHighlight(){}setResult(t){if(this.clearActiveStatus(),this.setRectList(t),this.hasMarkerConfig){const e=CommonToolUtils.getNextMarker(this.getCurrentPageResult(t),this.config.markerList);e&&this.setMarkerIndex(e.index)}this.render()}destroy(){super.destroy(),this._textAttributeInstance&&this._textAttributeInstance.clearTextAttribute()}setConfig(t,e=!1){this.config=CommonToolUtils.jsonParser(t),e===!0&&this.clearResult(!1)}setRectList(t,e=!1){const i=this.rectList.length;this.rectList=t,i!==t.length&&this.emit("updatePageNumber"),e&&this.emit("updateResult")}get selectedRectID(){return this.selectedIDs.length===1?this.selectedIDs[0]:void 0}get selectedID(){return this.selectedRectID}get drawOutSideTarget(){return this._drawOutSideTarget||this.config.drawOutsideTarget}get selectedRect(){return this.selectedRects.length===1?this.selectedRects[0]:void 0}get selectedIDs(){return this.selection.selectedIDs}get selectedRects(){return this.rectList.filter(t=>this.selectedIDs.includes(t.id))}get selectedText(){var t;return(t=this.selectedRect)==null?void 0:t.textAttribute}get dataList(){return this.rectList}get currentShowList(){let t=[];const[e,i]=CommonToolUtils.getRenderResultList(this.rectList,CommonToolUtils.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);return t=e,this.isHidden&&(t=[]),i&&t.push(...i),t}get currentPageResult(){const[t]=CommonToolUtils.getRenderResultList(this.rectList,CommonToolUtils.getSourceID(this.basicResult),[]);return t}getCurrentPageResult(t){const[e]=CommonToolUtils.getRenderResultList(t,CommonToolUtils.getSourceID(this.basicResult),[]);return e}setSelectedID(t){this.setSelectedRectID(t)}setSelectedRectID(t,e=!1){this.selection.setSelectedIDs(t,e),this.render(),this.emit("selectedChange")}setStyle(t){var e;super.setStyle(t),this._textAttributeInstance&&this.config.attributeConfigurable===!1&&((e=this._textAttributeInstance)==null||e.updateIcon(this.getTextIconSvg()))}updateSelectedRectTextAttribute(t){if(this._textAttributeInstance&&t&&this.selectedRectID){let e=t;AttributeUtils.default.textAttributeValidate(this.config.textCheckType,"",e)===!1&&(this.emit("messageError",AttributeUtils.default.getErrorNotice(this.config.textCheckType,this.lang)),e=""),this.setRectList(this.rectList.map(i=>i.id===this.selectedRectID?__spreadProps(__spreadValues({},i),{textAttribute:e}):i),!0),this.emit("updateTextAttribute"),this.render()}}updateSelectedRectSubAttribute(t,e){e&&this.config.secondaryAttributeConfigurable===!0&&this.selectedRectID&&(this.setRectList(this.rectList.map(i=>{var r;if(i.id===this.selectedRectID){const n=(r=i==null?void 0:i.subAttribute)!=null?r:{};return __spreadProps(__spreadValues({},i),{subAttribute:__spreadProps(__spreadValues({},n),{[t]:e})})}return i}),!0),this.render())}getHoverRectPointIndex(t){return this.selectedRect?AxisUtils.default.returnClosePointIndex(this.getCoordinateUnderZoom(t),RectUtils.getRectPointList(this.selectedRect,this.zoom),scope+2):-1}getHoverRectEdgeIndex(t){if(!this.selectedRect)return-1;let e=-1;const{selectedRect:i}=this,r=RectUtils.getRectEdgeList(i,this.zoom),n=this.getCoordinateUnderZoom(t);for(let s=0;s<r.length;s++){const a=r[s],{length:h}=MathUtils.default.getFootOfPerpendicular(n,a.begin,a.end);h<scope+10&&(e=s)}return e}getTextIconSvg(t=""){return AttributeUtils.default.getTextIconSvg(t,this.config.attributeList,this.config.attributeConfigurable,this.baseIcon)}onMouseDown(t){if(super.onMouseDown(t)||this.forbidMouseOperation||t.ctrlKey===!0)return;const e=this.getCoordinateUnderZoom(t),i=this.getHoverRectID(t);if(!(t.button===2||t.button===0&&this.isSpaceKey===!0)){if(this.selectedRectID){const r=this.currentShowList.find(n=>n.id===this.selectedRectID);if(!r)return;if(this.getHoverRectPointIndex(t)>-1){const n=tool.EDragTarget.Point;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=annotation.EDragStatus.Start;return}if(this.getHoverRectEdgeIndex(t)>-1){const n=tool.EDragTarget.Line;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=annotation.EDragStatus.Start;return}}if(this.selection.isIdSelected(i)&&!this.drawingRect){const r=tool.EDragTarget.Plane;this.dragInfo={dragStartCoord:e,dragTarget:r,firstRect:this.selectedRect,startTime:+new Date,originRectList:this.selectedRects},this.dragStatus=annotation.EDragStatus.Start}}}appendOffsetRect(t,e){return __spreadProps(__spreadValues({},t),{x:t.x+e.x/this.zoom,y:t.y+e.y/this.zoom})}getRectsBoundaries(t,e){const i=t.reduce((r,n)=>r.concat(...RectUtils.getRectPointList(this.appendOffsetRect(n,e))),[]);return MathUtils.default.calcViewportBoundaries(i)}isRectsOutOfTarget(t,e){var i,r,n,s;if(this.drawOutSideTarget!==!1)return!1;const a=this.getRectsBoundaries(t,e),h={y:a.top,x:a.left,height:a.bottom-a.top,width:a.right-a.left};if(((r=(i=this.basicResult)==null?void 0:i.pointList)==null?void 0:r.length)>0)return RectUtils.isRectNotInPolygon(h,polygonTool.getPolygonPointUnderZoom(this.basicResult.pointList,this.zoom));if(this.basicResult||this.imgInfo){const o=this.basicResult?this.basicResult:{x:0,y:0,height:(n=this.imgNode)==null?void 0:n.height,width:(s=this.imgNode)==null?void 0:s.width};if(o)return[{x:a.left,y:a.top},{x:a.right,y:a.bottom}].some(l=>!RectUtils.isInRect(l,o))}return!1}moveRects(t){var e;if((e=this.dragInfo)==null?void 0:e.originRectList){let i=___default.default.cloneDeep(this.dragInfo.originRectList);if(this.isRectsOutOfTarget(i,t))return;i=this.dragInfo.originRectList.map(r=>__spreadProps(__spreadValues({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom})),this.setRectList(this.rectList.map(r=>{const n=i.find(s=>s.id===r.id);return n||r}))}}onDragMoveAll(t){var e,i;!((i=(e=this.dragInfo)==null?void 0:e.originRectList)==null?void 0:i.length)||(this.setRectList(this.dragInfo.originRectList.map(r=>__spreadProps(__spreadValues({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom}))),this.render())}onDragMove(t){var e,i,r,n;if(!this.dragInfo)return;const s={x:t.x-this.dragInfo.dragStartCoord.x,y:t.y-this.dragInfo.dragStartCoord.y};if(this.dragStatus=annotation.EDragStatus.Move,this.dragInfo.dragTarget===tool.EDragTarget.Plane){this.moveRects(s);return}if(!this.dragInfo.firstRect)return;const a=RectUtils.getRectUnderZoom(this.dragInfo.firstRect,this.zoom),{x:h,y:o,width:l,height:c}=a;let d=this.rectList.filter(u=>u.id===this.selectedRectID)[0];switch(this.dragInfo.dragTarget){case tool.EDragTarget.Point:{let u=h,g=o,R=l,b=c;switch(this.hoverRectPointIndex){case 0:{u=l-s.x<0?h+l:h+s.x,g=c-s.y<0?o+c:o+s.y,R=Math.abs(s.x-l),b=Math.abs(s.y-c);break}case 1:{u=l+s.x>0?h:h+l+s.x,g=c-s.y<0?o+c:o+s.y,R=Math.abs(l+s.x),b=Math.abs(c-s.y);break}case 2:{u=l+s.x>0?h:h+l+s.x,g=c+s.y>0?o:o+c+s.y,R=Math.abs(l+s.x),b=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{u=l-s.x<0?h+l:h+s.x,g=c+s.y>0?o:o+c+s.y,R=Math.abs(s.x-l),b=c+s.y>0?c+s.y:Math.abs(c+s.y);break}default:return}d=__spreadProps(__spreadValues({},d),{x:u,y:g,width:R,height:b})}break;case tool.EDragTarget.Line:{let u=h,g=o,R=l,b=c;switch(this.hoverRectEdgeIndex){case 0:{g=c-s.y<0?o+c:o+s.y,b=Math.abs(s.y-c);break}case 1:{u=l+s.x>0?h:h+l+s.x,R=Math.abs(l+s.x);break}case 2:{g=c+s.y>0?o:o+c+s.y,b=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{u=l-s.x<0?h+l:h+s.x,R=Math.abs(s.x-l);break}default:return}d=__spreadProps(__spreadValues({},d),{x:u,y:g,width:R,height:b});break}default:return}if(this.drawOutSideTarget===!1){if(this.basicResult){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&RectUtils.isRectNotInPolygon(d,polygonTool.getPolygonPointUnderZoom(this.basicResult.pointList,this.zoom)))return;const u=this.basicResult.x*this.zoom,g=this.basicResult.y*this.zoom,R=this.basicResult.width*this.zoom,b=this.basicResult.height*this.zoom;if(d.x<u-.01||d.y<g-.01||d.width>u+R-d.x+.01||d.height>g+b-d.y+.01)return;if(d.x<u&&(d.x=u),d.y<g&&(d.y=g),d.width>u+R-d.x)switch(this.dragInfo.dragTarget){case tool.EDragTarget.Point:case tool.EDragTarget.Line:s.x>0&&s.y>0&&(d.width=u+R-d.x);break;default:return}if(d.height>g+b-d.y)switch(this.dragInfo.dragTarget){}}else if(d.x<0&&(d.x=0),d.y<0&&(d.y=0),this.imgInfo)switch(this.dragInfo.dragTarget){default:if(d.x+d.width>((r=this.imgInfo)==null?void 0:r.width)+.01||d.y+d.height>((n=this.imgInfo)==null?void 0:n.height)+.01)return}}this.setRectList(this.rectList.map(u=>u.id===d.id?RectUtils.getRectUnderZoom(d,1/this.zoom):u)),this.render()}onMouseMove(t){requestAnimationFrame(()=>{var e,i;const r=Date.now();if(r-this.lastMouseMoveTime<this.mouseMoveThrottle||(this.lastMouseMoveTime=r,super.onMouseMove(t,!1)||this.forbidMouseOperation||!this.imgInfo))return;const n=this.getCoordinateUnderZoom(t),s=AxisUtils.default.changeDrawOutsideTarget(n,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.selectedIDs.length>0&&this.dragInfo){this.onDragMove(s),this.render();return}if(this.selectedRectID){const o=this.getHoverRectPointIndex(t);if(o!==this.hoverRectPointIndex){this.hoverRectPointIndex=o,this.hoverRectEdgeIndex=-1,this.render();return}if(this.hoverRectPointIndex===-1){const l=this.getHoverRectEdgeIndex(t);if(l!==this.hoverRectEdgeIndex){this.hoverRectEdgeIndex=l,this.render();return}}}const a=this.getHoverRectID(t),h=this.hoverRectID;if(this.hoverRectID=a,a!==h&&this.render(),this.enableAddRect&&this.drawingRect&&this.firstClickCoord){let{x:o,y:l}=this.firstClickCoord,{width:c,height:d}=this.drawingRect;if(c=Math.abs(o-s.x),d=Math.abs(l-s.y),s.x<o&&(o=s.x),s.y<l&&(l=s.y),this.drawOutSideTarget===!1){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&RectUtils.isRectNotInPolygon(__spreadProps(__spreadValues({},this.drawingRect),{x:o,y:l,width:c,height:d}),polygonTool.getPolygonPointUnderZoom(this.basicResult.pointList,this.zoom)))return;s.x<0&&(c=Math.abs(this.firstClickCoord.x),o=0),s.y<0&&(d=Math.abs(this.firstClickCoord.y),l=0),this.imgInfo&&(o+c>this.imgInfo.width&&(c=Math.abs(this.imgInfo.width-o)),l+d>this.imgInfo.height&&(d=Math.abs(this.imgInfo.height-l)))}this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{x:o,y:l,width:c,height:d}),this.render()}if(this.isDrag&&!this.dragInfo){this.render("drag");return}this.render("move")})}setHighlightVisible(t){this.highlightVisible=t,this.setAttributeLockList([])}setAttributeLockList(t){this.setSelectedRectID(void 0),(t==null?void 0:t.length)&&(this.highlightVisible=!1),super.setAttributeLockList(t)}setBasicResult(t){super.setBasicResult(t),this.clearActiveStatus()}setRectValidAndRender(t){const e=this.rectList.some(i=>i==null?void 0:i.valid);this.setRectList(this.rectList.map(i=>i.id===t?__spreadProps(__spreadValues({},i),{valid:!i.valid}):(this.selection.isIdSelected(i.id)&&(i.valid=!e),i)),!0),this.render(),this.emit("updateResult")}createNewDrawingRect(t,e){var i,r,n,s;if(!this.imgInfo)return;const a=this.getCoordinateUnderZoom(t),h=AxisUtils.default.changeDrawOutsideTarget(a,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.setSelectedRectID(""),this.hoverRectID="",this.drawOutSideTarget&&(h.x<0&&(h.x=0),h.y<0&&(h.y=0)),this.drawingRect=__spreadProps(__spreadValues({},h),{width:0,height:0,attribute:this.defaultAttribute,valid:!t.ctrlKey,id:uuid(8,62),sourceID:e,textAttribute:""}),this.hasMarkerConfig){const o=CommonToolUtils.getNextMarker(this.currentPageResult,this.config.markerList,this.markerIndex);if(o)this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{label:o.label})),this.markerIndex=o.index,this.emit("markIndexChange");else{this.emit("messageInfo",index.getMessagesByLocale(constants.EMessage.MarkerFinish,this.lang)),this.drawingRect=void 0;return}}if(this.config.textConfigurable){let o="";o=AttributeUtils.default.getTextAttribute(this.rectList.filter(l=>CommonToolUtils.isSameSourceID(l.sourceID,e)),this.config.textCheckType),this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{textAttribute:o}))}if(((i=this.config)==null?void 0:i.secondaryAttributeConfigurable)&&((r=this.config)==null?void 0:r.subAttributeList)){const o=TagUtils.getDefaultResultByConfig((s=(n=this.config)==null?void 0:n.subAttributeList)!=null?s:[]);this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{subAttribute:o})}if(Object.assign(this.drawingRect,{order:CommonToolUtils.getMaxOrder(this.rectList.filter(o=>CommonToolUtils.isSameSourceID(o.sourceID,e)))+1}),this.firstClickCoord=__spreadValues({},h),this.firstCurrentPos=__spreadValues({},this.currentPos),this.dataInjectionAtCreation){const o=this.dataInjectionAtCreation(this.drawingRect);o&&Object.assign(this.drawingRect,o)}}checkSize({width:t,height:e,minWidth:i,minHeight:r,isAttributeConfig:n=!1}){return Math.round(t)<i||Math.round(e)<r?(this.emit("messageInfo",lbUtils.i18n.t(n?"TheSizeOfTheDrawingBoxIsSmallerThanTheMinimumDrawingSizeInTheMainPropertyConfiguration":"TheDrawFrameSizeIsSmallerThanTheMinimumDrawSizeInTheStepConfiguration")),this.clearDrawingStatus(),this.render(),!1):!0}addDrawingRectToRectList(){var t,e,i;if(!this.drawingRect)return;let{width:r,height:n}=this.drawingRect;r/=this.zoom,n/=this.zoom;const{attribute:s}=this.drawingRect;let a={minWidth:this.config.minWidth,minHeight:this.config.minHeight};if(s&&this.config.attributeConfigurable){const l=(i=((e=(t=this.config)==null?void 0:t.attributeList)!=null?e:[]).find(c=>c.value===s))==null?void 0:i.limit;l&&(a=__spreadProps(__spreadValues({},l),{isAttributeConfig:!0}))}if(!this.checkSize(__spreadValues({width:r,height:n},a)))return;const h=this.getDrawingRectWithRectList();this.setRectList(h,!0),this.history.pushHistory(this.rectList),this.setSelectedIdAfterAddingDrawingRect(),this.clearDrawingStatus()}setSelectedIdAfterAddingDrawingRect(){var t;!this.drawingRect||(this.config.textConfigurable||((t=this.config)==null?void 0:t.secondaryAttributeConfigurable)?this.setSelectedRectID(this.drawingRect.id):this.setSelectedRectID())}getDrawingRectWithRectList(){if(!this.drawingRect)return this.rectList;let{x:t,y:e,width:i,height:r}=this.drawingRect;return t/=this.zoom,e/=this.zoom,i/=this.zoom,r/=this.zoom,[...this.rectList,__spreadProps(__spreadValues({},this.drawingRect),{x:t,y:e,width:i,height:r})]}rightMouseUp(t){var e,i,r,n,s;const a=this.getHoverRectID(t),h=this.rectList.find(o=>o.id===a);if(this.selectedRectTextAttribute="",this.drawingRect)this.drawingRect=void 0,this.firstClickCoord=void 0;else{if(((e=this.dragInfo)==null?void 0:e.dragStartCoord)&&turf.distance((i=this.dragInfo)==null?void 0:i.dragStartCoord,this.getCoordinateUnderZoom(t))>3&&this.dblClickListener.clearRightDblClick(),this.setSelectedRectID(a,t.ctrlKey),h&&((r=this.selectedIDs)==null?void 0:r.length)===1&&(this.selectedRectTextAttribute=this.getSelectedRectTextAttribute(a),this.setDefaultAttribute(h.attribute)),this.hoverRectID="",(h==null?void 0:h.label)&&this.hasMarkerConfig){const o=CommonToolUtils.getCurrentMarkerIndex(h.label,this.config.markerList);o>=0&&(this.setMarkerIndex(o),this.emit("markIndexChange"))}((n=this.config)==null?void 0:n.secondaryAttributeConfigurable)&&((s=this.config)==null?void 0:s.subAttributeList)&&this.setDefaultSubAttribute()}return this.render(),h}shiftRightMouseUp(t){const e=this.getHoverRectID(t);this.emit("shiftRightMouseUp",e)}updateDragResult(){this.emit("updateDragResult",__spreadValues({},this.selectedRect))}setEnableAddRect(t){this.enableAddRect=t}onMouseUp(t){if(super.onMouseUp(t)||this.forbidMouseOperation||!this.imgInfo)return!0;if(this.dragInfo&&this.dragStatus===annotation.EDragStatus.Move){this.dragInfo=void 0,this.dragStatus=annotation.EDragStatus.Wait,this.history.pushHistory(this.rectList),this.emit("updateResult"),this.updateDragResult();return}if(t.button===2&&t.shiftKey===!0){this.shiftRightMouseUp(t);return}if(t.button===2){this.rightMouseUp(t);return}const e=CommonToolUtils.getSourceID(this.basicResult);if(this.drawingRect){this.enableAddRect?this.addDrawingRectToRectList():(this.clearDrawingStatus(),this.render());return}if(t.ctrlKey===!0&&t.button===0&&this.hoverRectID){this.setRectValidAndRender(this.hoverRectID);return}this.enableAddRect&&(this.createNewDrawingRect(t,e),this.render())}onRightDblClick(t){super.onRightDblClick(t);const e=this.getHoverRectID(t);this.selection.isIdSelected(e)&&this.deleteSelectedRect(t)}deleteSelectedRect(t){this.selectedRects.forEach(e=>{this.deleteRect(e.id)})}onKeyDown(t){if(!CommonToolUtils.hotkeyFilter(t)||super.onKeyDown(t)===!1||this.selection.triggerKeyboardEvent(t,this.setRectList.bind(this)))return;const{keyCode:e}=t;switch(e){case keyCode.Ctrl:this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{valid:!t.ctrlKey}),this.render());break;case keyCode.F:this.selectedIDs.length>0&&this.setRectValidAndRender(this.selectedRectID);break;case keyCode.Z:this.setIsHidden(!this.isHidden),this.render();break;case keyCode.Delete:this.deleteSelectedRect(t);break;case keyCode.Tab:{if(t.preventDefault(),this.drawingRect)return;let i=annotation.ESortDirection.ascend;t.shiftKey&&(i=annotation.ESortDirection.descend);const[r,n]=CommonToolUtils.getRenderResultList(this.rectList,CommonToolUtils.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);let s=[...r];n&&(s=[...s,...n]);const a=CanvasUtils.getViewPort(this.canvas,this.currentPos,this.zoom);s=s.filter(o=>CanvasUtils.inViewPort({x:o.x,y:o.y},a));const h=CommonToolUtils.getNextSelectedRectID(s,i,this.selectedRectID);h&&(this.setSelectedRectID(h.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(h.attribute));break}default:{if(this.config.attributeConfigurable){const i=AttributeUtils.default.getAttributeByKeycode(e,this.config.attributeList);i!==void 0&&this.setDefaultAttribute(i)}break}}return!0}onKeyUp(t){switch(super.onKeyUp(t),t.keyCode){case keyCode.Ctrl:this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{valid:!0}),this.render());break}}onWheel(t){const e=this.zoom;let i,r;this.drawingRect&&this.firstClickCoord&&(i=RectUtils.getRectUnderZoom(this.drawingRect,1/e),r=AxisUtils.default.changePointByZoom(this.firstClickCoord,1/e)),super.onWheel(t,!1),i&&r&&(this.drawingRect=RectUtils.getRectUnderZoom(i,this.zoom),this.firstClickCoord=AxisUtils.default.changePointByZoom(r,this.zoom)),this.render()}getCurrentSelectedData(){const{selectedRect:t}=this;if(!t)return;const e=this.getColor(t.attribute),i=t.valid?e==null?void 0:e.valid.stroke:e==null?void 0:e.invalid.stroke;return{width:t.width*this.zoom*.6,textAttribute:t.textAttribute,color:i}}getRenderStyle(t){const e=this.customRenderStyle&&this.customRenderStyle(t);if(e)return e;const i=this.getColor(t.attribute);let r,n;return t.valid===!1?(r=i==null?void 0:i.invalid.stroke,n=i==null?void 0:i.invalid.fill):(r=i==null?void 0:i.valid.stroke,n=i==null?void 0:i.valid.fill),{strokeColor:r,fillColor:n,textColor:r,toolColor:i}}renderTextAttribute(){var t;const{selectedRect:e}=this;if(!this.ctx||this.config.textConfigurable!==!0||!e)return;const{x:i,y:r,width:n,height:s,attribute:a,valid:h}=e,o=n*this.zoom*.6,l=AxisUtils.default.getOffsetCoordinate({x:i,y:r+s},this.currentPos,this.zoom),c=this.getColor(a),d=h?c==null?void 0:c.valid.stroke:c==null?void 0:c.invalid.stroke,u=4;this._textAttributeInstance||(this._textAttributeInstance=new textAttributeClass({width:o,container:this.container,icon:this.getTextIconSvg(a),color:d,getCurrentSelectedData:this.getCurrentSelectedData,updateSelectedTextAttribute:this.updateSelectedRectTextAttribute})),this._textAttributeInstance&&!((t=this._textAttributeInstance)==null?void 0:t.isExit)&&this._textAttributeInstance.appendToContainer(),this._textAttributeInstance.update(`${e.textAttribute}`,{left:l.x,top:l.y+u,color:d,width:o})}renderSelectedRect(t){if(!this.ctx||!t)return;const{ctx:e}=this;let i=10;const r=RectUtils.getRectPointList(t),n=r.length,s=this.getColor(t.attribute);r.forEach((a,h)=>{var o,l;if(e.save(),e.moveTo(a.x,a.y),e.beginPath(),this.hoverRectPointIndex===h?i=scope+6:i=scope,t.valid===!1?(e.strokeStyle=s==null?void 0:s.invalid.stroke,e.fillStyle=s==null?void 0:s.invalid.stroke):(e.strokeStyle=s==null?void 0:s.valid.stroke,e.fillStyle=s==null?void 0:s.valid.stroke),e.arc(a.x*this.zoom+this.currentPos.x,a.y*this.zoom+this.currentPos.y,i,0,2*Math.PI),e.fill(),this.hoverRectEdgeIndex===h){e.beginPath(),e.lineWidth=10;const c=this.getColor(t.attribute),d=t.valid===!1?(o=c==null?void 0:c.invalid)==null?void 0:o.stroke:(l=c==null?void 0:c.valid)==null?void 0:l.stroke;e.strokeStyle=d,e.moveTo(r[h].x*this.zoom+this.currentPos.x,r[h].y*this.zoom+this.currentPos.y),e.lineTo(r[(h+1)%n].x*this.zoom+this.currentPos.x,r[(h+1)%n].y*this.zoom+this.currentPos.y),e.stroke()}e.restore()}),this.renderTextAttribute()}renderDrawingRect(t,e=this.zoom,i=!1,r=!1){var n,s,a,h,o,l;if(this.ctx&&t){const{ctx:c,style:d}=this,{hiddenText:u=!1}=d;c.save();const{strokeColor:g,fillColor:R,textColor:b}=this.getRenderStyle(t);c.font="lighter 14px Arial";let x="";((n=this.config)==null?void 0:n.isShowOrder)&&t.order&&(t==null?void 0:t.order)>0&&(x=`${t.order}`),t.label&&this.hasMarkerConfig&&(x=`${CommonToolUtils.getCurrentMarkerIndex(t.label,this.config.markerList)+1}_${MarkerUtils.getMarkerShowText(t.label,this.config.markerList)}`),t.attribute&&(x=`${x} ${AttributeUtils.default.getAttributeShowText(t.attribute,(s=this.config)==null?void 0:s.attributeList)}`,(t==null?void 0:t.subAttribute)&&((a=this.config)==null?void 0:a.secondaryAttributeConfigurable)&&((h=this.config)==null?void 0:h.subAttributeList)&&TagUtils.getTagNameList(t.subAttribute,this.config.subAttributeList).forEach(I=>{x+=`
2
2
  ${I.keyName}: ${I.value.join("\u3001")}`}));const v=AxisUtils.default.changeRectByZoom(t,i?e:this.zoom,this.currentPos);u||DrawUtils.drawText(this.canvas,{x:v.x,y:v.y-6},x,__spreadProps(__spreadValues({color:g,font:"normal normal 900 14px SourceHanSansCN-Regular"},annotation.DEFAULT_TEXT_SHADOW),{textMaxWidth:300})),this.highlightVisible&&(t==null?void 0:t.isHighlight)&&DrawUtils.drawHighlightFlag({canvas:this.canvas,color:g,position:{x:v.x-5,y:v.y-16}});const D=(l=(o=this.style)==null?void 0:o.width)!=null?l:2,S=this.config.textConfigurable&&this.config.isHighlightSameTextAttribute&&this.selectedRectTextAttribute!==""&&t.textAttribute===this.selectedRectTextAttribute;(t.id===this.hoverRectID||S||t.id===this.selectedRectID||this.isMultiMoveMode||r)&&DrawUtils.drawRectWithFill(this.canvas,v,{color:R}),DrawUtils.drawRect(this.canvas,v,{color:g,thickness:D,hiddenText:!0,lineDash:t.lineDash}),c.restore();let m=`${Math.round(t.width)} * ${Math.round(t.height)}`;i===!0&&(m=`${Math.round(t.width/this.zoom)} * ${Math.round(v.height/this.zoom)}`);const y=m.length*7;if(u||DrawUtils.drawText(this.canvas,{x:v.x+v.width-y,y:v.y+v.height+15},m,__spreadValues({color:b,font:"normal normal 600 14px Arial"},annotation.DEFAULT_TEXT_SHADOW)),!u&&t.textAttribute&&t.id!==this.selectedRectID){const w=0,I=Math.max(20,v.width-y);DrawUtils.drawText(this.canvas,{x:v.x,y:v.y+v.height+20+w},t.textAttribute,__spreadValues({color:b,font:"italic normal 900 14px Arial",textMaxWidth:I},annotation.DEFAULT_TEXT_SHADOW))}}}renderStaticRect(){var t;if(!(((t=this.rectList)==null?void 0:t.length)>0&&JSON.stringify(this.rectList)))return;const{renderEnhance:e={}}=this,[i,r]=CommonToolUtils.getRenderResultList(this.rectList,CommonToolUtils.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs,this.highlightVisible);this.isHidden||i==null||i.forEach(n=>{this.renderDrawingRect(n),e.staticRender&&e.staticRender(this.canvas,AxisUtils.default.changeRectByZoom(n,this.zoom,this.currentPos),this.getRenderStyle(n))}),r&&r.forEach(n=>{this.renderDrawingRect(n),this.renderSelectedRect(n),e.selectedRender&&e.selectedRender(this.canvas,AxisUtils.default.changeRectByZoom(n,this.zoom,this.currentPos),this.getRenderStyle(n))}),this.renderPointCloud2DHighlight()}renderCreatingRect(){if(!this.drawingRect)return;const{renderEnhance:t={}}=this;this.renderDrawingRect(this.drawingRect,1,!0),t.creatingRender&&t.creatingRender(this.canvas,AxisUtils.default.changeRectByZoom(this.drawingRect,1,this.currentPos),this.getRenderStyle(this.drawingRect))}renderRect(t){t!=="move"&&this.renderStaticRect(),this.renderCreatingRect()}render(t){!this.ctx||(t!=="move"&&super.render(),t!=="drag"&&this.renderRect(t),this.renderCursorLine(this.getLineColor(this.defaultAttribute)))}renderCursorLine(t){this.clearOffscreenCanvas();const{x:e,y:i}=this.coord;DrawUtils.drawLine(this.offscreenCanvas,{x:0,y:i},{x:1e4,y:i},{color:t}),DrawUtils.drawLine(this.offscreenCanvas,{x:e,y:0},{x:e,y:1e4},{color:t}),DrawUtils.drawCircleWithFill(this.offscreenCanvas,{x:e,y:i},1,{color:"white"})}setDefaultAttribute(t){const e=this.defaultAttribute;if(this.defaultAttribute=t!=null?t:"",e!==t&&(this.changeStyle(t),this.emit("changeAttributeSidebar"),this.selectedRects&&(this.setRectList(this.rectList.map(i=>this.selection.isIdSelected(i.id)?__spreadProps(__spreadValues({},i),{attribute:this.defaultAttribute}):i),!0),this.history.pushHistory(this.rectList),this.render()),this.drawingRect&&(this.drawingRect=__spreadProps(__spreadValues({},this.drawingRect),{attribute:this.defaultAttribute}),this.render()),this._textAttributeInstance)){if(this.attributeLockList.length>0&&!this.attributeLockList.includes(this.defaultAttribute)){this._textAttributeInstance.clearTextAttribute();return}this._textAttributeInstance.updateIcon(this.getTextIconSvg(t))}}setValid(t){super.setValid(t),this.emit("updateResult")}clearDrawingStatus(){this.drawingRect=void 0,this.firstClickCoord=void 0,this.dragInfo=void 0,this.dragStatus=annotation.EDragStatus.Wait}clearActiveStatus(){this.clearDrawingStatus(),this.setSelectedRectID(void 0),this.setOperationMode(tool.EOperationMode.General)}clearResult(t=!0){const e=this.rectList.filter(i=>i.disableDelete===!0);e.length>0&&t&&this.emit("messageInfo",index.getMessagesByLocale(constants.EMessage.ClearPartialData,this.lang)),this.setRectList(e,!0),this.setSelectedRectID(void 0)}deleteRect(t){var e;if(!t)return;const i=this.rectList.find(r=>r.id===t);if((i==null?void 0:i.disableDelete)===!0){this.emit("messageInfo",index.getMessagesByLocale(constants.EMessage.DisableDelete,this.lang));return}this.setRectList(this.rectList.filter(r=>r.id!==t),!0),this.history.pushHistory(this.rectList),this.setSelectedRectID(void 0),(e=this._textAttributeInstance)==null||e.clearTextAttribute(),this.render()}exportData(){const{rectList:t}=this;return[t,this.basicImgInfo]}undo(){const t=this.history.undo();t&&(t.length!==this.rectList.length&&this.setSelectedRectID(""),this.setRectList(t,!0),this.render())}redo(){const t=this.history.redo();t&&(t.length!==this.rectList.length&&this.setSelectedRectID(""),this.setRectList(t,!0),this.render())}setHoverRectID(t){this.hoverRectID=t}}exports.RectOperation=RectOperation,exports.default=RectOperation;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * 2.5D QuadTree implementation
3
+ * For efficient indexing and querying of cuboids in point cloud data
4
+ * Uses quadtree division on XY plane, while storing Z-axis range information in each node
5
+ */
6
+ /**
7
+ * Preprocess cuboid by adding bounding box information and color
8
+ * @param {Object} cuboid - Cuboid object
9
+ * @param {Object} colorList - Color list
10
+ * @returns {Object} - Cuboid object with boundary info and color
11
+ */
12
+ export function preprocessCuboid(cuboid: Object, colorList: Object): Object;
13
+ /**
14
+ * Calculate point cloud boundaries
15
+ * @param {Array} points - Point cloud data array
16
+ * @returns {Object} - Boundary information
17
+ */
18
+ export function getBoundaryFromPoints(points: any[]): Object;
19
+ /**
20
+ * 2.5D QuadTree class - High performance implementation
21
+ */
22
+ export class QuadTree25D {
23
+ /**
24
+ * Create quadtree node
25
+ * @param {Object} boundary - Boundary
26
+ * @param {number} capacity - Node capacity
27
+ * @param {number} maxLevel - Max depth
28
+ * @param {number} level - Current depth
29
+ */
30
+ constructor(boundary: Object, capacity?: number, maxLevel?: number, level?: number);
31
+ minX: any;
32
+ maxX: any;
33
+ minY: any;
34
+ maxY: any;
35
+ minZ: any;
36
+ maxZ: any;
37
+ width: any;
38
+ height: any;
39
+ centerX: any;
40
+ centerY: any;
41
+ capacity: number;
42
+ maxLevel: number;
43
+ level: number;
44
+ cuboids: any[];
45
+ divided: boolean;
46
+ children: QuadTree25D[] | null;
47
+ pointCount: number;
48
+ /**
49
+ * Check if point is within boundary - Inline version
50
+ */
51
+ containsPoint(x: any, y: any, z: any): boolean;
52
+ /**
53
+ * Check if cuboid intersects with current boundary - Inline version
54
+ */
55
+ intersectsCuboid(cuboid: any): boolean;
56
+ /**
57
+ * Split node into four child nodes - Optimized version
58
+ */
59
+ subdivide(): void;
60
+ /**
61
+ * Insert cuboid into quadtree - Optimized version
62
+ */
63
+ insert(cuboid: any): boolean;
64
+ /**
65
+ * Find cuboid containing given point - Internal method
66
+ * @returns {Object|null} Returns first cuboid containing point, or null if not found
67
+ */
68
+ _findCuboidContainingPoint(x: any, y: any, z: any): Object | null;
69
+ /**
70
+ * Query cuboid and color info containing point - High performance version
71
+ * @returns {Object|null} Returns cuboid info containing point, or null if not found
72
+ */
73
+ queryPoint(point: any): Object | null;
74
+ /**
75
+ * Clear quadtree
76
+ */
77
+ clear(): void;
78
+ }
@@ -1 +1 @@
1
- import{createBase64WorkerFactory as b}from"./_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js";var l=b("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24ocCl7InVzZSBzdHJpY3QiO2NvbnN0IHY9Wy0xLC0xLC0xXTtsZXQgST0hMTtmdW5jdGlvbiBCKGUpe2NvbnN0IHQ9LTcsbz0zLG49by10O3JldHVybiBlPHQmJihlPXQpLGU+byYmKGU9byksTWF0aC5mbG9vcigoZS10KS9uKjI1NSl9ZnVuY3Rpb24gRSgpe2xldCBlO2NvbnN0IHQ9bmV3IEFycmF5KDI1NikuZmlsbCgiIikubWFwKCgpPT5uZXcgQXJyYXkoMykuZmlsbCgiIikpO2ZvcihsZXQgbz0wO288MjA7bysrKXtmb3IoZT0wO2U8MzI7ZSsrKXRbZV1bMF09MTI4KzQqZSx0W2VdWzFdPTAsdFtlXVsyXT0wO2Zvcih0WzMyXVswXT0yNTUsdFszMl1bMV09MCx0WzMyXVsyXT0wLGU9MDtlPDYzO2UrKyl0WzMzK2VdWzBdPTI1NSx0WzMzK2VdWzFdPTQrNCplLHRbMzMrZV1bMl09MDtmb3IodFs5Nl1bMF09MjU0LHRbOTZdWzFdPTI1NSx0Wzk2XVsyXT0yLGU9MDtlPDYyO2UrKyl0Wzk3K2VdWzBdPTI1MC00KmUsdFs5NytlXVsxXT0yNTUsdFs5NytlXVsyXT02KzQqZTtmb3IodFsxNTldWzBdPTEsdFsxNTldWzFdPTI1NSx0WzE1OV1bMl09MjU0LGU9MDtlPDY0O2UrKyl0WzE2MCtlXVswXT0wLHRbMTYwK2VdWzFdPTI1Mi1lKjQsdFsxNjArZV1bMl09MjU1O2ZvcihlPTA7ZTwzMjtlKyspdFsyMjQrZV1bMF09MCx0WzIyNCtlXVsxXT0wLHRbMjI0K2VdWzJdPTI1Mi00KmV9cmV0dXJuIHR9Y29uc3QgUj1FKCk7ZnVuY3Rpb24gaChlLHQsbz0wKXtsZXQgbj0wLGEseCxpLGw7dD1bLi4udF0sbz09PTEmJih0PWNyZWF0ZVNtb290aEN1cnZlUG9pbnRzKHQucmVkdWNlKCh5LGMpPT5bLi4ueSxjLngsYy55XSxbXSksLjUsITAsU0VHTUVOVF9OVU1CRVIpKSxbaV09dDtjb25zdCB1PXQubGVuZ3RoO2ZvcihhPTE7YTw9dTthKyspbD10W2EldV0sZS54Pk1hdGgubWluKGkueCxsLngpJiZlLng8PU1hdGgubWF4KGkueCxsLngpJiZlLnk8PU1hdGgubWF4KGkueSxsLnkpJiZpLnghPT1sLngmJih4PShlLngtaS54KSoobC55LWkueSkvKGwueC1pLngpK2kueSwoaS55PT09bC55fHxlLnk8PXgpJiZuKyspLGk9bDtyZXR1cm4gbiUyIT0wfWZ1bmN0aW9uIE8oe3pNaW46ZSx6TWF4OnQscG9seWdvblBvaW50TGlzdDpvLGF0dHJpYnV0ZTpuLHg6YSx5OngsejppLGNvbG9yTGlzdDpsLHZhbGlkOnV9KXtpZihoKHt4OmEseTp4fSxvKSYmaT49ZSYmaTw9dClyZXR1cm4gdT09PSExP1sxLDEwMy8yNTUsMTAyLzI1NV06bFtuXT9sW25dLnJnYmEuc2xpY2UoMCwzKS5tYXAoYz0+Yy8yNTUpOlsxLDAsMF19ZnVuY3Rpb24gbShlKXtjb25zdCB0PUIoZSksbz1SW3RdLFtuLGEseF09bztyZXR1cm5bbi8yNTUsYS8yNTUseC8yNTVdfXJldHVybiBvbm1lc3NhZ2U9ZnVuY3Rpb24odCl7Y29uc3R7cG9zaXRpb246byxjb2xvcjpuLGN1Ym9pZExpc3Q6YSxjb2xvckxpc3Q6eCxoaWdobGlnaHRJbmRleDppfT10LmRhdGE7bGV0e21vZGlmaWVkQm94SWRzOmw9W10scmVzZXRBcmVhczp1PVtdfT10LmRhdGEseT0wO2Z1bmN0aW9uIGMoKXt5Kz0xfWlmKCFvKXJldHVybjtjb25zdCBfPSEhKGk9PW51bGw/dm9pZCAwOmkubGVuZ3RoKTsoX3x8SSkmJihsPVtdLHU9W10pO2NvbnN0IHc9bC5sZW5ndGg/YS5maWx0ZXIocj0+bC5pbmNsdWRlcyhyLmlkKSk6YTtmb3IobGV0IHI9MDtyPG8ubGVuZ3RoO3IrPTMpe2NvbnN0IEM9b1tyXSxMPW9bcisxXSxkPW9bcisyXTtsZXQgZztpZih1Lmxlbmd0aD09PTEmJiFsLmxlbmd0aCloKHt4OkMseTpMfSx1WzBdKT9nPW0oZCk6Zz12O2Vsc2UgaWYodS5sZW5ndGh8fGwubGVuZ3RoKXtsZXQgcz0hMTt3LnNvbWUoZj0+e2NvbnN0IE09Tyh7cG9seWdvblBvaW50TGlzdDpmLnBvbHlnb25Qb2ludExpc3Qsek1pbjpmLnpNaW4sek1heDpmLnpNYXgseDpDLHk6TCx6OmQsYXR0cmlidXRlOmYuYXR0cmlidXRlLGNvbG9yTGlzdDp4LHZhbGlkOmYudmFsaWR9KTtyZXR1cm4gTT8oYygpLGc9TSxzPSEwLCEwKTohMX0pLCFzJiZ1Lmxlbmd0aCYmKHM9dS5zb21lKGY9Pmgoe3g6Qyx5Okx9LGYpPyhnPW0oZCksITApOiExKSksIXMmJiFfJiYoST9nPW0oZCk6Zz12KX1lbHNlIHcuc29tZShzPT57Y29uc3QgZj1PKHtwb2x5Z29uUG9pbnRMaXN0OnMucG9seWdvblBvaW50TGlzdCx6TWluOnMuek1pbix6TWF4OnMuek1heCx4OkMseTpMLHo6ZCxhdHRyaWJ1dGU6cy5hdHRyaWJ1dGUsY29sb3JMaXN0OngsdmFsaWQ6cy52YWxpZH0pO3JldHVybiBmPyhjKCksZz1mLCEwKTohMX0pO2NvbnN0IEE9cz0+e2NvbnN0IGY9TWF0aC5mbG9vcihzLzMpO3JldHVybiBpJiZpW2ZdPT09MX07aWYoZylpZihnWzBdPT09dlswXSYmQShyKSluW3JdPTAsbltyKzFdPTAsbltyKzJdPTA7ZWxzZXtjb25zdFtzLGYsTV09ZztuW3JdPXMsbltyKzFdPWYsbltyKzJdPU19ZWxzZSBpZihBKHIpKW5bcl09MCxuW3IrMV09MCxuW3IrMl09MDtlbHNle2NvbnN0W3MsZixNXT1tKGQpO25bcl09cyxuW3IrMV09ZixuW3IrMl09TX19ST1fLHBvc3RNZXNzYWdlKHtwb2ludHM6byxjb2xvcjpuLG51bTp5fSl9LHAuaXNJblBvbHlnb249aCxPYmplY3QuZGVmaW5lUHJvcGVydHkocCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkscH0oe30pOwoK",null,!1);export{l as default};
1
+ import{createBase64WorkerFactory as b}from"./_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js";var W=b("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24odyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHEoaSx0KXtjb25zdHtwb2x5Z29uUG9pbnRMaXN0OmUsek1pbjpuLHpNYXg6cixhdHRyaWJ1dGU6Yyx2YWxpZDpzLGlkOmh9PWk7bGV0IGw9SW5maW5pdHksbT0tSW5maW5pdHksZj1JbmZpbml0eSxkPS1JbmZpbml0eTtjb25zdCB1PWUubGVuZ3RoO2ZvcihsZXQgYT0wO2E8dTthKyspe2NvbnN0e3gseTpYfT1lW2FdO2w9eDxsP3g6bCxtPXg+bT94Om0sZj1YPGY/WDpmLGQ9WD5kP1g6ZH1sZXQgbztpZihzPT09ITEpbz1bMSwuNDAzOSwuNF07ZWxzZSBpZih0JiZ0W2NdKXtjb25zdHtyZ2JhOmF9PXRbY107bz1bYVswXS8yNTUsYVsxXS8yNTUsYVsyXS8yNTVdfWVsc2Ugbz1bMSwwLDBdO3JldHVybntpZDpoLG1pblg6bCxtYXhYOm0sbWluWTpmLG1heFk6ZCx6TWluOm4sek1heDpyLHdpZHRoOm0tbCxoZWlnaHQ6ZC1mLGRlcHRoOnItbixjZW50ZXJYOihsK20pKi41LGNlbnRlclk6KGYrZCkqLjUsY2VudGVyWjoobityKSouNSxwb2x5Z29uUG9pbnRMaXN0OmUsY29sb3JJbmZvOm8sYXR0cmlidXRlOmMsdmFsaWQ6c319ZnVuY3Rpb24gRShpKXtpZighaXx8aS5sZW5ndGg9PT0wKXJldHVybnttaW5YOjAsbWF4WDoxLG1pblk6MCxtYXhZOjEsbWluWjowLG1heFo6MSx3aWR0aDoxLGhlaWdodDoxLGRlcHRoOjF9O2xldCB0PUluZmluaXR5LGU9LUluZmluaXR5LG49SW5maW5pdHkscj0tSW5maW5pdHksYz1JbmZpbml0eSxzPS1JbmZpbml0eTtjb25zdCBoPWkubGVuZ3RoO2ZvcihsZXQgdT0wO3U8aDt1Kz0zKXtjb25zdCBvPWlbdV0sYT1pW3UrMV0seD1pW3UrMl07bzx0JiYodD1vKSxvPmUmJihlPW8pLGE8biYmKG49YSksYT5yJiYocj1hKSx4PGMmJihjPXgpLHg+cyYmKHM9eCl9Y29uc3QgbD1NYXRoLm1heChlLXQsci1uKSouMDEsbT1lLXQrbCoyLGY9ci1uK2wqMixkPXMtYztyZXR1cm57bWluWDp0LWwsbWF4WDplK2wsbWluWTpuLWwsbWF4WTpyK2wsbWluWjpjLG1heFo6cyx3aWR0aDptLGhlaWdodDpmLGRlcHRoOmQsY2VudGVyWDoodCtlKSouNSxjZW50ZXJZOihuK3IpKi41fX1jbGFzcyBae2NvbnN0cnVjdG9yKHQsZT0xNixuPTYscj0wKXt0aGlzLm1pblg9dC5taW5YLHRoaXMubWF4WD10Lm1heFgsdGhpcy5taW5ZPXQubWluWSx0aGlzLm1heFk9dC5tYXhZLHRoaXMubWluWj10Lm1pblp8fC1JbmZpbml0eSx0aGlzLm1heFo9dC5tYXhafHxJbmZpbml0eSx0aGlzLndpZHRoPXQud2lkdGh8fHRoaXMubWF4WC10aGlzLm1pblgsdGhpcy5oZWlnaHQ9dC5oZWlnaHR8fHRoaXMubWF4WS10aGlzLm1pblksdGhpcy5jZW50ZXJYPXQuY2VudGVyWHx8KHRoaXMubWluWCt0aGlzLm1heFgpKi41LHRoaXMuY2VudGVyWT10LmNlbnRlcll8fCh0aGlzLm1pblkrdGhpcy5tYXhZKSouNSx0aGlzLmNhcGFjaXR5PWUsdGhpcy5tYXhMZXZlbD1uLHRoaXMubGV2ZWw9cix0aGlzLmN1Ym9pZHM9W10sdGhpcy5kaXZpZGVkPSExLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLnBvaW50Q291bnQ9MH1jb250YWluc1BvaW50KHQsZSxuKXtyZXR1cm4odC10aGlzLm1pblgpKih0aGlzLm1heFgtdCk+PTAmJihlLXRoaXMubWluWSkqKHRoaXMubWF4WS1lKT49MCYmKG4tdGhpcy5taW5aKSoodGhpcy5tYXhaLW4pPj0wfWludGVyc2VjdHNDdWJvaWQodCl7cmV0dXJuISh0Lm1heFg8dGhpcy5taW5YfHx0Lm1pblg+dGhpcy5tYXhYfHx0Lm1heFk8dGhpcy5taW5ZfHx0Lm1pblk+dGhpcy5tYXhZfHx0LnpNYXg8dGhpcy5taW5afHx0LnpNaW4+dGhpcy5tYXhaKX1zdWJkaXZpZGUoKXtpZih0aGlzLmRpdmlkZWQpcmV0dXJuO2NvbnN0IHQ9dGhpcy53aWR0aCouNSxlPXRoaXMuaGVpZ2h0Ki41LG49dGhpcy5sZXZlbCsxO3RoaXMuY2hpbGRyZW49W25ldyBaKHttaW5YOnRoaXMubWluWCxtYXhYOnRoaXMuY2VudGVyWCxtaW5ZOnRoaXMubWluWSxtYXhZOnRoaXMuY2VudGVyWSxtaW5aOnRoaXMubWluWixtYXhaOnRoaXMubWF4Wix3aWR0aDp0LGhlaWdodDplfSx0aGlzLmNhcGFjaXR5LHRoaXMubWF4TGV2ZWwsbiksbmV3IFooe21pblg6dGhpcy5jZW50ZXJYLG1heFg6dGhpcy5tYXhYLG1pblk6dGhpcy5taW5ZLG1heFk6dGhpcy5jZW50ZXJZLG1pblo6dGhpcy5taW5aLG1heFo6dGhpcy5tYXhaLHdpZHRoOnQsaGVpZ2h0OmV9LHRoaXMuY2FwYWNpdHksdGhpcy5tYXhMZXZlbCxuKSxuZXcgWih7bWluWDp0aGlzLm1pblgsbWF4WDp0aGlzLmNlbnRlclgsbWluWTp0aGlzLmNlbnRlclksbWF4WTp0aGlzLm1heFksbWluWjp0aGlzLm1pblosbWF4Wjp0aGlzLm1heFosd2lkdGg6dCxoZWlnaHQ6ZX0sdGhpcy5jYXBhY2l0eSx0aGlzLm1heExldmVsLG4pLG5ldyBaKHttaW5YOnRoaXMuY2VudGVyWCxtYXhYOnRoaXMubWF4WCxtaW5ZOnRoaXMuY2VudGVyWSxtYXhZOnRoaXMubWF4WSxtaW5aOnRoaXMubWluWixtYXhaOnRoaXMubWF4Wix3aWR0aDp0LGhlaWdodDplfSx0aGlzLmNhcGFjaXR5LHRoaXMubWF4TGV2ZWwsbildLHRoaXMuZGl2aWRlZD0hMDtjb25zdCByPXRoaXMuY3Vib2lkcy5sZW5ndGg7Zm9yKGxldCBjPTA7YzxyO2MrKyl7Y29uc3Qgcz10aGlzLmN1Ym9pZHNbY107Zm9yKGxldCBoPTA7aDw0O2grKyl0aGlzLmNoaWxkcmVuW2hdLmludGVyc2VjdHNDdWJvaWQocykmJnRoaXMuY2hpbGRyZW5baF0uaW5zZXJ0KHMpfXRoaXMubGV2ZWw+MCYmKHRoaXMuY3Vib2lkcz1bXSl9aW5zZXJ0KHQpe2lmKCF0aGlzLmludGVyc2VjdHNDdWJvaWQodCkpcmV0dXJuITE7aWYodGhpcy5kaXZpZGVkKXtsZXQgZT0hMTtmb3IobGV0IG49MDtuPDQ7bisrKXRoaXMuY2hpbGRyZW5bbl0uaW5zZXJ0KHQpJiYoZT0hMCk7cmV0dXJuIHRoaXMubGV2ZWw9PT0wJiZ0aGlzLmN1Ym9pZHMucHVzaCh0KSxlfXJldHVybiB0aGlzLmN1Ym9pZHMucHVzaCh0KSx0aGlzLnBvaW50Q291bnQrKyx0aGlzLnBvaW50Q291bnQ+dGhpcy5jYXBhY2l0eSYmdGhpcy5sZXZlbDx0aGlzLm1heExldmVsJiZ0aGlzLnN1YmRpdmlkZSgpLCEwfV9maW5kQ3Vib2lkQ29udGFpbmluZ1BvaW50KHQsZSxuKXtjb25zdCByPXRoaXMuY3Vib2lkcy5sZW5ndGg7Zm9yKGxldCBjPTA7YzxyO2MrKyl7Y29uc3Qgcz10aGlzLmN1Ym9pZHNbY107aWYobjxzLnpNaW58fG4+cy56TWF4fHx0PHMubWluWHx8dD5zLm1heFh8fGU8cy5taW5ZfHxlPnMubWF4WSljb250aW51ZTtjb25zdCBoPXMucG9seWdvblBvaW50TGlzdDtsZXQgbD0hMTtmb3IobGV0IG09MCxmPWgubGVuZ3RoLTE7bTxoLmxlbmd0aDtmPW0rKyl7Y29uc3QgZD1oW21dLngsdT1oW21dLnksbz1oW2ZdLngsYT1oW2ZdLnk7dT5lIT1hPmUmJnQ8KG8tZCkqKGUtdSkvKGEtdSkrZCYmKGw9IWwpfWlmKGwpcmV0dXJue2N1Ym9pZDpzLGNvbG9ySW5mbzpzLmNvbG9ySW5mb319cmV0dXJuIG51bGx9cXVlcnlQb2ludCh0KXtjb25zdHt4OmUseTpuLHo6cn09dDtpZihlPHRoaXMubWluWHx8ZT50aGlzLm1heFh8fG48dGhpcy5taW5ZfHxuPnRoaXMubWF4WXx8cjx0aGlzLm1pblp8fHI+dGhpcy5tYXhaKXJldHVybiBudWxsO2lmKCF0aGlzLmRpdmlkZWQpcmV0dXJuIHRoaXMuX2ZpbmRDdWJvaWRDb250YWluaW5nUG9pbnQoZSxuLHIpO2NvbnN0IGM9KG48dGhpcy5jZW50ZXJZPzA6MikrKGU8dGhpcy5jZW50ZXJYPzA6MSk7bGV0IHM9dGhpcy5jaGlsZHJlbltjXS5xdWVyeVBvaW50KHQpO2lmKCFzKWZvcihsZXQgaD0wO2g8NCYmIShoIT09YyYmKHM9dGhpcy5jaGlsZHJlbltoXS5xdWVyeVBvaW50KHQpLHMpKTtoKyspO3JldHVybiFzJiZ0aGlzLmxldmVsPT09MCYmKHM9dGhpcy5fZmluZEN1Ym9pZENvbnRhaW5pbmdQb2ludChlLG4scikpLHN9Y2xlYXIoKXtpZih0aGlzLmN1Ym9pZHM9W10sdGhpcy5wb2ludENvdW50PTAsdGhpcy5kaXZpZGVkKXtmb3IobGV0IHQ9MDt0PDQ7dCsrKXRoaXMuY2hpbGRyZW5bdF0mJnRoaXMuY2hpbGRyZW5bdF0uY2xlYXIoKTt0aGlzLmRpdmlkZWQ9ITEsdGhpcy5jaGlsZHJlbj1udWxsfX19Y29uc3QgTT1bLTEsLTEsLTFdO2xldCBiPSExLEM9bnVsbDtjb25zdCBJPW5ldyBNYXA7ZnVuY3Rpb24gTyhpKXtjb25zdCB0PS03LGU9MyxuPWUtdDtyZXR1cm4gaTx0JiYoaT10KSxpPmUmJihpPWUpLE1hdGguZmxvb3IoKGktdCkvbioyNTUpfWZ1bmN0aW9uIF8oKXtsZXQgaTtjb25zdCB0PW5ldyBBcnJheSgyNTYpLmZpbGwoIiIpLm1hcCgoKT0+bmV3IEFycmF5KDMpLmZpbGwoIiIpKTtmb3IoaT0wO2k8MzI7aSsrKXRbaV1bMF09MTI4KzQqaSx0W2ldWzFdPTAsdFtpXVsyXT0wO2Zvcih0WzMyXVswXT0yNTUsdFszMl1bMV09MCx0WzMyXVsyXT0wLGk9MDtpPDYzO2krKyl0WzMzK2ldWzBdPTI1NSx0WzMzK2ldWzFdPTQrNCppLHRbMzMraV1bMl09MDtmb3IodFs5Nl1bMF09MjU0LHRbOTZdWzFdPTI1NSx0Wzk2XVsyXT0yLGk9MDtpPDYyO2krKyl0Wzk3K2ldWzBdPTI1MC00KmksdFs5NytpXVsxXT0yNTUsdFs5NytpXVsyXT02KzQqaTtmb3IodFsxNTldWzBdPTEsdFsxNTldWzFdPTI1NSx0WzE1OV1bMl09MjU0LGk9MDtpPDY0O2krKyl0WzE2MCtpXVswXT0wLHRbMTYwK2ldWzFdPTI1Mi1pKjQsdFsxNjAraV1bMl09MjU1O2ZvcihpPTA7aTwzMjtpKyspdFsyMjQraV1bMF09MCx0WzIyNCtpXVsxXT0wLHRbMjI0K2ldWzJdPTI1Mi00Kmk7cmV0dXJuIHR9Y29uc3QgQT1fKCk7ZnVuY3Rpb24gTChpLHQsZT0wKXtsZXQgbj0wLHIsYyxzLGg7ZT09PTEmJih0PWNyZWF0ZVNtb290aEN1cnZlUG9pbnRzKHQucmVkdWNlKChtLGYpPT5bLi4ubSxmLngsZi55XSxbXSksLjUsITAsU0VHTUVOVF9OVU1CRVIpKSxbc109dDtjb25zdCBsPXQubGVuZ3RoO2ZvcihyPTE7cjw9bDtyKyspaD10W3IlbF0saS54Pk1hdGgubWluKHMueCxoLngpJiZpLng8PU1hdGgubWF4KHMueCxoLngpJiZpLnk8PU1hdGgubWF4KHMueSxoLnkpJiZzLnghPT1oLngmJihjPShpLngtcy54KSooaC55LXMueSkvKGgueC1zLngpK3MueSwocy55PT09aC55fHxpLnk8PWMpJiZuKyspLHM9aDtyZXR1cm4gbiUyIT0wfWZ1bmN0aW9uIHAoaSl7Y29uc3QgdD1NYXRoLnJvdW5kKGkqMWUzKS8xZTM7aWYoSS5oYXModCkpcmV0dXJuIEkuZ2V0KHQpO2NvbnN0IGU9TyhpKSxuPUFbZV0sW3IsYyxzXT1uLGg9W3IvMjU1LGMvMjU1LHMvMjU1XTtyZXR1cm4gSS5zZXQodCxoKSxofXJldHVybiBvbm1lc3NhZ2U9ZnVuY3Rpb24odCl7Y29uc3R7cG9zaXRpb246ZSxjb2xvcjpuLGN1Ym9pZExpc3Q6cixjb2xvckxpc3Q6YyxoaWdobGlnaHRJbmRleDpzfT10LmRhdGE7bGV0e21vZGlmaWVkQm94SWRzOmg9W10scmVzZXRBcmVhczpsPVtdfT10LmRhdGE7SS5jbGVhcigpO2xldCBtPTA7ZnVuY3Rpb24gZigpe20rPTF9aWYoIWUpcmV0dXJuO2NvbnN0IGQ9ISEocz09bnVsbD92b2lkIDA6cy5sZW5ndGgpOyhkfHxiKSYmKGg9W10sbD1bXSk7Y29uc3QgdT1oLmxlbmd0aD9yLmZpbHRlcihvPT5oLmluY2x1ZGVzKG8uaWQpKTpyO2lmKEMpQy5jbGVhcigpO2Vsc2V7Y29uc3Qgbz1FKGUpO0M9bmV3IFoobywzMiw2KX11LmZvckVhY2gobz0+e2NvbnN0IGE9cShvLGMpO0MuaW5zZXJ0KGEpfSk7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKz0zKXtjb25zdCBhPWVbb10seD1lW28rMV0sWD1lW28rMl07bGV0IFk7aWYobC5sZW5ndGg9PT0xJiYhaC5sZW5ndGgpTCh7eDphLHk6eH0sbFswXSk/WT1wKFgpOlk9TTtlbHNlIGlmKGwubGVuZ3RofHxoLmxlbmd0aCl7bGV0IGc9ITE7Y29uc3QgeT1DLnF1ZXJ5UG9pbnQoe3g6YSx5OngsejpYfSk7eSYmKGYoKSxZPXkuY29sb3JJbmZvLGc9ITApLCFnJiZsLmxlbmd0aCYmKGc9bC5zb21lKHY9Pkwoe3g6YSx5Onh9LHYpPyhZPXAoWCksITApOiExKSksIWcmJiFkJiYoYj9ZPXAoWCk6WT1NKX1lbHNle2NvbnN0IGc9Qy5xdWVyeVBvaW50KHt4OmEseTp4LHo6WH0pO2cmJihmKCksWT1nLmNvbG9ySW5mbyl9Y29uc3QgUD1nPT57Y29uc3QgeT1NYXRoLmZsb29yKGcvMyk7cmV0dXJuIHMmJnNbeV09PT0xfTtpZihZKWlmKFlbMF09PT1NWzBdJiZQKG8pKW5bb109MCxuW28rMV09MCxuW28rMl09MDtlbHNle2NvbnN0W2cseSx2XT1ZO25bb109ZyxuW28rMV09eSxuW28rMl09dn1lbHNlIGlmKFAobykpbltvXT0wLG5bbysxXT0wLG5bbysyXT0wO2Vsc2V7Y29uc3RbZyx5LHZdPXAoWCk7bltvXT1nLG5bbysxXT15LG5bbysyXT12fX1iPWQscG9zdE1lc3NhZ2Uoe3BvaW50czplLGNvbG9yOm4sbnVtOm19KX0sdy5pc0luUG9seWdvbj1MLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx3fSh7fSk7Cgo=",null,!1);export{W as default};
@@ -1,2 +1,2 @@
1
- import $ from"lodash";import{distance as X}from"@turf/turf";import j from"../../utils/MathUtils.js";import y from"../../utils/tool/AxisUtils.js";import I from"../../utils/tool/RectUtils.js";import P from"../../utils/tool/TagUtils.js";import{EDragStatus as p,ESortDirection as W,DEFAULT_TEXT_SHADOW as z}from"../../constant/annotation.js";import{EDragTarget as S,EOperationMode as Y}from"../../constant/tool.js";import A from"../../constant/keyCode.js";import O from"../../locales/index.js";import{EMessage as U}from"../../locales/constants.js";import L from"../../utils/tool/AttributeUtils.js";import Z from"../../utils/tool/CanvasUtils.js";import R from"../../utils/tool/CommonToolUtils.js";import D from"../../utils/tool/DrawUtils.js";import q from"../../utils/tool/MarkerUtils.js";import{getPolygonPointUnderZoom as H}from"../../utils/tool/polygonTool.js";import G from"../../utils/uuid.js";import{BasicToolOperation as J}from"./basicToolOperation.js";import Q from"./textAttributeClass.js";import tt from"./Selection.js";import{i18n as et}from"@labelbee/lb-utils";var it=Object.defineProperty,st=Object.defineProperties,rt=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,N=(w,t,e)=>t in w?it(w,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):w[t]=e,u=(w,t)=>{for(var e in t||(t={}))nt.call(t,e)&&N(w,e,t[e]);if(B)for(var e of B(t))ot.call(t,e)&&N(w,e,t[e]);return w},f=(w,t)=>st(w,rt(t));const k=6;class V extends J{constructor(t){super(f(u({},t),{isOffscreenCanvas:!0}));this.highlightVisible=!1,this.enableAddRect=!0,this.setMarkerIndex=e=>{this.markerIndex=e},this.setMarkerIndexAndSelect=e=>{if(!this.config.markerList)return;this.markerIndex=e;const i=this.config.markerList[e].value,r=this.currentPageResult.find(n=>n.label===i);r&&(this.setSelectedRectID(r.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(r.attribute)),this.emit("markIndexChange")},this.getHoverRectID=e=>{const i=this.getCoordinateUnderZoom(e),r=k,{currentShowList:n}=this;if(n.length>0){if(this.selectedRectID){const{selectedRect:a}=this;if(a&&I.isInRect(i,a,r,this.zoom))return a.id}const s=n.filter(a=>I.isInRect(i,a,r,this.zoom));if(s.length===0)return"";if(s.length===1)return s[0].id;if(s.length>1)return s.map(h=>({size:h.width*h.height,id:h.id})).sort((h,o)=>h.size-o.size)[0].id}return""},this.getSelectedRectTextAttribute=e=>{if(e){const i=this.rectList.find(r=>r.id===e);return(i==null?void 0:i.textAttribute)||""}return""},this.lastMouseMoveTime=0,this.mouseMoveThrottle=16,this.setDefaultSubAttribute=()=>{var e,i,r,n;if(((e=this.config)==null?void 0:e.secondaryAttributeConfigurable)&&((i=this.config)==null?void 0:i.subAttributeList)){const s=P.getDefaultResultByConfig((n=(r=this.config)==null?void 0:r.subAttributeList)!=null?n:[]);this.setRectList(this.rectList.map(a=>{var h;if(a.id===this.selectedRectID){const o=(h=a==null?void 0:a.subAttribute)!=null?h:s;return f(u({},a),{subAttribute:o})}return a}),!0)}},this.textChange=e=>{this.config.textConfigurable!==!0||!this.selectedRectID||(this.setRectList(L.textChange(e,this.selectedRectID,this.rectList),!0),this.emit("selectedChange"),this.render())},this._drawOutSideTarget=t.drawOutSideTarget||!1,this.rectList=[],this.isFlow=!0,this.config=R.jsonParser(t.config),this.hoverRectEdgeIndex=-1,this.hoverRectPointIndex=-1,this.selectedRectTextAttribute="",this.markerIndex=0,this.createNewDrawingRect=this.createNewDrawingRect.bind(this),this.getDrawingRectWithRectList=this.getDrawingRectWithRectList.bind(this),this.setSelectedIdAfterAddingDrawingRect=this.setSelectedIdAfterAddingDrawingRect.bind(this),this.getCurrentSelectedData=this.getCurrentSelectedData.bind(this),this.updateSelectedRectTextAttribute=this.updateSelectedRectTextAttribute.bind(this),this.setSelectedID=this.setSelectedID.bind(this),this.updateSelectedRectSubAttribute=this.updateSelectedRectSubAttribute.bind(this),this.selection=new tt(this)}renderPointCloud2DHighlight(){}setResult(t){if(this.clearActiveStatus(),this.setRectList(t),this.hasMarkerConfig){const e=R.getNextMarker(this.getCurrentPageResult(t),this.config.markerList);e&&this.setMarkerIndex(e.index)}this.render()}destroy(){super.destroy(),this._textAttributeInstance&&this._textAttributeInstance.clearTextAttribute()}setConfig(t,e=!1){this.config=R.jsonParser(t),e===!0&&this.clearResult(!1)}setRectList(t,e=!1){const i=this.rectList.length;this.rectList=t,i!==t.length&&this.emit("updatePageNumber"),e&&this.emit("updateResult")}get selectedRectID(){return this.selectedIDs.length===1?this.selectedIDs[0]:void 0}get selectedID(){return this.selectedRectID}get drawOutSideTarget(){return this._drawOutSideTarget||this.config.drawOutsideTarget}get selectedRect(){return this.selectedRects.length===1?this.selectedRects[0]:void 0}get selectedIDs(){return this.selection.selectedIDs}get selectedRects(){return this.rectList.filter(t=>this.selectedIDs.includes(t.id))}get selectedText(){var t;return(t=this.selectedRect)==null?void 0:t.textAttribute}get dataList(){return this.rectList}get currentShowList(){let t=[];const[e,i]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);return t=e,this.isHidden&&(t=[]),i&&t.push(...i),t}get currentPageResult(){const[t]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),[]);return t}getCurrentPageResult(t){const[e]=R.getRenderResultList(t,R.getSourceID(this.basicResult),[]);return e}setSelectedID(t){this.setSelectedRectID(t)}setSelectedRectID(t,e=!1){this.selection.setSelectedIDs(t,e),this.render(),this.emit("selectedChange")}setStyle(t){var e;super.setStyle(t),this._textAttributeInstance&&this.config.attributeConfigurable===!1&&((e=this._textAttributeInstance)==null||e.updateIcon(this.getTextIconSvg()))}updateSelectedRectTextAttribute(t){if(this._textAttributeInstance&&t&&this.selectedRectID){let e=t;L.textAttributeValidate(this.config.textCheckType,"",e)===!1&&(this.emit("messageError",L.getErrorNotice(this.config.textCheckType,this.lang)),e=""),this.setRectList(this.rectList.map(i=>i.id===this.selectedRectID?f(u({},i),{textAttribute:e}):i),!0),this.emit("updateTextAttribute"),this.render()}}updateSelectedRectSubAttribute(t,e){e&&this.config.secondaryAttributeConfigurable===!0&&this.selectedRectID&&(this.setRectList(this.rectList.map(i=>{var r;if(i.id===this.selectedRectID){const n=(r=i==null?void 0:i.subAttribute)!=null?r:{};return f(u({},i),{subAttribute:f(u({},n),{[t]:e})})}return i}),!0),this.render())}getHoverRectPointIndex(t){return this.selectedRect?y.returnClosePointIndex(this.getCoordinateUnderZoom(t),I.getRectPointList(this.selectedRect,this.zoom),k+2):-1}getHoverRectEdgeIndex(t){if(!this.selectedRect)return-1;let e=-1;const{selectedRect:i}=this,r=I.getRectEdgeList(i,this.zoom),n=this.getCoordinateUnderZoom(t);for(let s=0;s<r.length;s++){const a=r[s],{length:h}=j.getFootOfPerpendicular(n,a.begin,a.end);h<k+10&&(e=s)}return e}getTextIconSvg(t=""){return L.getTextIconSvg(t,this.config.attributeList,this.config.attributeConfigurable,this.baseIcon)}onMouseDown(t){if(super.onMouseDown(t)||this.forbidMouseOperation||t.ctrlKey===!0)return;const e=this.getCoordinateUnderZoom(t),i=this.getHoverRectID(t);if(!(t.button===2||t.button===0&&this.isSpaceKey===!0)){if(this.selectedRectID){const r=this.currentShowList.find(n=>n.id===this.selectedRectID);if(!r)return;if(this.getHoverRectPointIndex(t)>-1){const n=S.Point;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=p.Start;return}if(this.getHoverRectEdgeIndex(t)>-1){const n=S.Line;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=p.Start;return}}if(this.selection.isIdSelected(i)&&!this.drawingRect){const r=S.Plane;this.dragInfo={dragStartCoord:e,dragTarget:r,firstRect:this.selectedRect,startTime:+new Date,originRectList:this.selectedRects},this.dragStatus=p.Start}}}appendOffsetRect(t,e){return f(u({},t),{x:t.x+e.x/this.zoom,y:t.y+e.y/this.zoom})}getRectsBoundaries(t,e){const i=t.reduce((r,n)=>r.concat(...I.getRectPointList(this.appendOffsetRect(n,e))),[]);return j.calcViewportBoundaries(i)}isRectsOutOfTarget(t,e){var i,r,n,s;if(this.drawOutSideTarget!==!1)return!1;const a=this.getRectsBoundaries(t,e),h={y:a.top,x:a.left,height:a.bottom-a.top,width:a.right-a.left};if(((r=(i=this.basicResult)==null?void 0:i.pointList)==null?void 0:r.length)>0)return I.isRectNotInPolygon(h,H(this.basicResult.pointList,this.zoom));if(this.basicResult||this.imgInfo){const o=this.basicResult?this.basicResult:{x:0,y:0,height:(n=this.imgNode)==null?void 0:n.height,width:(s=this.imgNode)==null?void 0:s.width};if(o)return[{x:a.left,y:a.top},{x:a.right,y:a.bottom}].some(d=>!I.isInRect(d,o))}return!1}moveRects(t){var e;if((e=this.dragInfo)==null?void 0:e.originRectList){let i=$.cloneDeep(this.dragInfo.originRectList);if(this.isRectsOutOfTarget(i,t))return;i=this.dragInfo.originRectList.map(r=>f(u({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom})),this.setRectList(this.rectList.map(r=>{const n=i.find(s=>s.id===r.id);return n||r}))}}onDragMoveAll(t){var e,i;!((i=(e=this.dragInfo)==null?void 0:e.originRectList)==null?void 0:i.length)||(this.setRectList(this.dragInfo.originRectList.map(r=>f(u({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom}))),this.render())}onDragMove(t){var e,i,r,n;if(!this.dragInfo)return;const s={x:t.x-this.dragInfo.dragStartCoord.x,y:t.y-this.dragInfo.dragStartCoord.y};if(this.dragStatus=p.Move,this.dragInfo.dragTarget===S.Plane){this.moveRects(s);return}if(!this.dragInfo.firstRect)return;const a=I.getRectUnderZoom(this.dragInfo.firstRect,this.zoom),{x:h,y:o,width:d,height:c}=a;let l=this.rectList.filter(g=>g.id===this.selectedRectID)[0];switch(this.dragInfo.dragTarget){case S.Point:{let g=h,b=o,m=d,x=c;switch(this.hoverRectPointIndex){case 0:{g=d-s.x<0?h+d:h+s.x,b=c-s.y<0?o+c:o+s.y,m=Math.abs(s.x-d),x=Math.abs(s.y-c);break}case 1:{g=d+s.x>0?h:h+d+s.x,b=c-s.y<0?o+c:o+s.y,m=Math.abs(d+s.x),x=Math.abs(c-s.y);break}case 2:{g=d+s.x>0?h:h+d+s.x,b=c+s.y>0?o:o+c+s.y,m=Math.abs(d+s.x),x=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{g=d-s.x<0?h+d:h+s.x,b=c+s.y>0?o:o+c+s.y,m=Math.abs(s.x-d),x=c+s.y>0?c+s.y:Math.abs(c+s.y);break}default:return}l=f(u({},l),{x:g,y:b,width:m,height:x})}break;case S.Line:{let g=h,b=o,m=d,x=c;switch(this.hoverRectEdgeIndex){case 0:{b=c-s.y<0?o+c:o+s.y,x=Math.abs(s.y-c);break}case 1:{g=d+s.x>0?h:h+d+s.x,m=Math.abs(d+s.x);break}case 2:{b=c+s.y>0?o:o+c+s.y,x=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{g=d-s.x<0?h+d:h+s.x,m=Math.abs(s.x-d);break}default:return}l=f(u({},l),{x:g,y:b,width:m,height:x});break}default:return}if(this.drawOutSideTarget===!1){if(this.basicResult){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&I.isRectNotInPolygon(l,H(this.basicResult.pointList,this.zoom)))return;const g=this.basicResult.x*this.zoom,b=this.basicResult.y*this.zoom,m=this.basicResult.width*this.zoom,x=this.basicResult.height*this.zoom;if(l.x<g-.01||l.y<b-.01||l.width>g+m-l.x+.01||l.height>b+x-l.y+.01)return;if(l.x<g&&(l.x=g),l.y<b&&(l.y=b),l.width>g+m-l.x)switch(this.dragInfo.dragTarget){case S.Point:case S.Line:s.x>0&&s.y>0&&(l.width=g+m-l.x);break;default:return}if(l.height>b+x-l.y)switch(this.dragInfo.dragTarget){}}else if(l.x<0&&(l.x=0),l.y<0&&(l.y=0),this.imgInfo)switch(this.dragInfo.dragTarget){default:if(l.x+l.width>((r=this.imgInfo)==null?void 0:r.width)+.01||l.y+l.height>((n=this.imgInfo)==null?void 0:n.height)+.01)return}}this.setRectList(this.rectList.map(g=>g.id===l.id?I.getRectUnderZoom(l,1/this.zoom):g)),this.render()}onMouseMove(t){requestAnimationFrame(()=>{var e,i;const r=Date.now();if(r-this.lastMouseMoveTime<this.mouseMoveThrottle||(this.lastMouseMoveTime=r,super.onMouseMove(t,!1)||this.forbidMouseOperation||!this.imgInfo))return;const n=this.getCoordinateUnderZoom(t),s=y.changeDrawOutsideTarget(n,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.selectedIDs.length>0&&this.dragInfo){this.onDragMove(s),this.render();return}if(this.selectedRectID){const o=this.getHoverRectPointIndex(t);if(o!==this.hoverRectPointIndex){this.hoverRectPointIndex=o,this.hoverRectEdgeIndex=-1,this.render();return}if(this.hoverRectPointIndex===-1){const d=this.getHoverRectEdgeIndex(t);if(d!==this.hoverRectEdgeIndex){this.hoverRectEdgeIndex=d,this.render();return}}}const a=this.getHoverRectID(t),h=this.hoverRectID;if(this.hoverRectID=a,a!==h&&this.render(),this.enableAddRect&&this.drawingRect&&this.firstClickCoord){let{x:o,y:d}=this.firstClickCoord,{width:c,height:l}=this.drawingRect;if(c=Math.abs(o-s.x),l=Math.abs(d-s.y),s.x<o&&(o=s.x),s.y<d&&(d=s.y),this.drawOutSideTarget===!1){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&I.isRectNotInPolygon(f(u({},this.drawingRect),{x:o,y:d,width:c,height:l}),H(this.basicResult.pointList,this.zoom)))return;s.x<0&&(c=Math.abs(this.firstClickCoord.x),o=0),s.y<0&&(l=Math.abs(this.firstClickCoord.y),d=0),this.imgInfo&&(o+c>this.imgInfo.width&&(c=Math.abs(this.imgInfo.width-o)),d+l>this.imgInfo.height&&(l=Math.abs(this.imgInfo.height-d)))}this.drawingRect=f(u({},this.drawingRect),{x:o,y:d,width:c,height:l}),this.render()}if(this.isDrag&&!this.dragInfo){this.render("drag");return}this.render("move")})}setHighlightVisible(t){this.highlightVisible=t,this.setAttributeLockList([])}setAttributeLockList(t){this.setSelectedRectID(void 0),(t==null?void 0:t.length)&&(this.highlightVisible=!1),super.setAttributeLockList(t)}setBasicResult(t){super.setBasicResult(t),this.clearActiveStatus()}setRectValidAndRender(t){const e=this.rectList.some(i=>i==null?void 0:i.valid);this.setRectList(this.rectList.map(i=>i.id===t?f(u({},i),{valid:!i.valid}):(this.selection.isIdSelected(i.id)&&(i.valid=!e),i)),!0),this.render(),this.emit("updateResult")}createNewDrawingRect(t,e){var i,r,n,s;if(!this.imgInfo)return;const a=this.getCoordinateUnderZoom(t),h=y.changeDrawOutsideTarget(a,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.setSelectedRectID(""),this.hoverRectID="",this.drawOutSideTarget&&(h.x<0&&(h.x=0),h.y<0&&(h.y=0)),this.drawingRect=f(u({},h),{width:0,height:0,attribute:this.defaultAttribute,valid:!t.ctrlKey,id:G(8,62),sourceID:e,textAttribute:""}),this.hasMarkerConfig){const o=R.getNextMarker(this.currentPageResult,this.config.markerList,this.markerIndex);if(o)this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{label:o.label})),this.markerIndex=o.index,this.emit("markIndexChange");else{this.emit("messageInfo",O.getMessagesByLocale(U.MarkerFinish,this.lang)),this.drawingRect=void 0;return}}if(this.config.textConfigurable){let o="";o=L.getTextAttribute(this.rectList.filter(d=>R.isSameSourceID(d.sourceID,e)),this.config.textCheckType),this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{textAttribute:o}))}if(((i=this.config)==null?void 0:i.secondaryAttributeConfigurable)&&((r=this.config)==null?void 0:r.subAttributeList)){const o=P.getDefaultResultByConfig((s=(n=this.config)==null?void 0:n.subAttributeList)!=null?s:[]);this.drawingRect=f(u({},this.drawingRect),{subAttribute:o})}if(Object.assign(this.drawingRect,{order:R.getMaxOrder(this.rectList.filter(o=>R.isSameSourceID(o.sourceID,e)))+1}),this.firstClickCoord=u({},h),this.firstCurrentPos=u({},this.currentPos),this.dataInjectionAtCreation){const o=this.dataInjectionAtCreation(this.drawingRect);o&&Object.assign(this.drawingRect,o)}}checkSize({width:t,height:e,minWidth:i,minHeight:r,isAttributeConfig:n=!1}){return Math.round(t)<i||Math.round(e)<r?(this.emit("messageInfo",et.t(n?"TheSizeOfTheDrawingBoxIsSmallerThanTheMinimumDrawingSizeInTheMainPropertyConfiguration":"TheDrawFrameSizeIsSmallerThanTheMinimumDrawSizeInTheStepConfiguration")),this.clearDrawingStatus(),this.render(),!1):!0}addDrawingRectToRectList(){var t,e,i;if(!this.drawingRect)return;let{width:r,height:n}=this.drawingRect;r/=this.zoom,n/=this.zoom;const{attribute:s}=this.drawingRect;let a={minWidth:this.config.minWidth,minHeight:this.config.minHeight};if(s&&this.config.attributeConfigurable){const d=(i=((e=(t=this.config)==null?void 0:t.attributeList)!=null?e:[]).find(c=>c.value===s))==null?void 0:i.limit;d&&(a=f(u({},d),{isAttributeConfig:!0}))}if(!this.checkSize(u({width:r,height:n},a)))return;const h=this.getDrawingRectWithRectList();this.setRectList(h,!0),this.history.pushHistory(this.rectList),this.setSelectedIdAfterAddingDrawingRect(),this.clearDrawingStatus()}setSelectedIdAfterAddingDrawingRect(){var t;!this.drawingRect||(this.config.textConfigurable||((t=this.config)==null?void 0:t.secondaryAttributeConfigurable)?this.setSelectedRectID(this.drawingRect.id):this.setSelectedRectID())}getDrawingRectWithRectList(){if(!this.drawingRect)return this.rectList;let{x:t,y:e,width:i,height:r}=this.drawingRect;return t/=this.zoom,e/=this.zoom,i/=this.zoom,r/=this.zoom,[...this.rectList,f(u({},this.drawingRect),{x:t,y:e,width:i,height:r})]}rightMouseUp(t){var e,i,r,n,s;const a=this.getHoverRectID(t),h=this.rectList.find(o=>o.id===a);if(this.selectedRectTextAttribute="",this.drawingRect)this.drawingRect=void 0,this.firstClickCoord=void 0;else{if(((e=this.dragInfo)==null?void 0:e.dragStartCoord)&&X((i=this.dragInfo)==null?void 0:i.dragStartCoord,this.getCoordinateUnderZoom(t))>3&&this.dblClickListener.clearRightDblClick(),this.setSelectedRectID(a,t.ctrlKey),h&&((r=this.selectedIDs)==null?void 0:r.length)===1&&(this.selectedRectTextAttribute=this.getSelectedRectTextAttribute(a),this.setDefaultAttribute(h.attribute)),this.hoverRectID="",(h==null?void 0:h.label)&&this.hasMarkerConfig){const o=R.getCurrentMarkerIndex(h.label,this.config.markerList);o>=0&&(this.setMarkerIndex(o),this.emit("markIndexChange"))}((n=this.config)==null?void 0:n.secondaryAttributeConfigurable)&&((s=this.config)==null?void 0:s.subAttributeList)&&this.setDefaultSubAttribute()}return this.render(),h}shiftRightMouseUp(t){const e=this.getHoverRectID(t);this.emit("shiftRightMouseUp",e)}updateDragResult(){this.emit("updateDragResult",u({},this.selectedRect))}setEnableAddRect(t){this.enableAddRect=t}onMouseUp(t){if(super.onMouseUp(t)||this.forbidMouseOperation||!this.imgInfo)return!0;if(this.dragInfo&&this.dragStatus===p.Move){this.dragInfo=void 0,this.dragStatus=p.Wait,this.history.pushHistory(this.rectList),this.emit("updateResult"),this.updateDragResult();return}if(t.button===2&&t.shiftKey===!0){this.shiftRightMouseUp(t);return}if(t.button===2){this.rightMouseUp(t);return}const e=R.getSourceID(this.basicResult);if(this.drawingRect){this.enableAddRect?this.addDrawingRectToRectList():(this.clearDrawingStatus(),this.render());return}if(t.ctrlKey===!0&&t.button===0&&this.hoverRectID){this.setRectValidAndRender(this.hoverRectID);return}this.enableAddRect&&(this.createNewDrawingRect(t,e),this.render())}onRightDblClick(t){super.onRightDblClick(t);const e=this.getHoverRectID(t);this.selection.isIdSelected(e)&&this.deleteSelectedRect(t)}deleteSelectedRect(t){this.selectedRects.forEach(e=>{this.deleteRect(e.id)})}onKeyDown(t){if(!R.hotkeyFilter(t)||super.onKeyDown(t)===!1||this.selection.triggerKeyboardEvent(t,this.setRectList.bind(this)))return;const{keyCode:e}=t;switch(e){case A.Ctrl:this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{valid:!t.ctrlKey}),this.render());break;case A.F:this.selectedIDs.length>0&&this.setRectValidAndRender(this.selectedRectID);break;case A.Z:this.setIsHidden(!this.isHidden),this.render();break;case A.Delete:this.deleteSelectedRect(t);break;case A.Tab:{if(t.preventDefault(),this.drawingRect)return;let i=W.ascend;t.shiftKey&&(i=W.descend);const[r,n]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);let s=[...r];n&&(s=[...s,...n]);const a=Z.getViewPort(this.canvas,this.currentPos,this.zoom);s=s.filter(o=>Z.inViewPort({x:o.x,y:o.y},a));const h=R.getNextSelectedRectID(s,i,this.selectedRectID);h&&(this.setSelectedRectID(h.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(h.attribute));break}default:{if(this.config.attributeConfigurable){const i=L.getAttributeByKeycode(e,this.config.attributeList);i!==void 0&&this.setDefaultAttribute(i)}break}}return!0}onKeyUp(t){switch(super.onKeyUp(t),t.keyCode){case A.Ctrl:this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{valid:!0}),this.render());break}}onWheel(t){const e=this.zoom;let i,r;this.drawingRect&&this.firstClickCoord&&(i=I.getRectUnderZoom(this.drawingRect,1/e),r=y.changePointByZoom(this.firstClickCoord,1/e)),super.onWheel(t,!1),i&&r&&(this.drawingRect=I.getRectUnderZoom(i,this.zoom),this.firstClickCoord=y.changePointByZoom(r,this.zoom)),this.render()}getCurrentSelectedData(){const{selectedRect:t}=this;if(!t)return;const e=this.getColor(t.attribute),i=t.valid?e==null?void 0:e.valid.stroke:e==null?void 0:e.invalid.stroke;return{width:t.width*this.zoom*.6,textAttribute:t.textAttribute,color:i}}getRenderStyle(t){const e=this.customRenderStyle&&this.customRenderStyle(t);if(e)return e;const i=this.getColor(t.attribute);let r,n;return t.valid===!1?(r=i==null?void 0:i.invalid.stroke,n=i==null?void 0:i.invalid.fill):(r=i==null?void 0:i.valid.stroke,n=i==null?void 0:i.valid.fill),{strokeColor:r,fillColor:n,textColor:r,toolColor:i}}renderTextAttribute(){var t;const{selectedRect:e}=this;if(!this.ctx||this.config.textConfigurable!==!0||!e)return;const{x:i,y:r,width:n,height:s,attribute:a,valid:h}=e,o=n*this.zoom*.6,d=y.getOffsetCoordinate({x:i,y:r+s},this.currentPos,this.zoom),c=this.getColor(a),l=h?c==null?void 0:c.valid.stroke:c==null?void 0:c.invalid.stroke,g=4;this._textAttributeInstance||(this._textAttributeInstance=new Q({width:o,container:this.container,icon:this.getTextIconSvg(a),color:l,getCurrentSelectedData:this.getCurrentSelectedData,updateSelectedTextAttribute:this.updateSelectedRectTextAttribute})),this._textAttributeInstance&&!((t=this._textAttributeInstance)==null?void 0:t.isExit)&&this._textAttributeInstance.appendToContainer(),this._textAttributeInstance.update(`${e.textAttribute}`,{left:d.x,top:d.y+g,color:l,width:o})}renderSelectedRect(t){if(!this.ctx||!t)return;const{ctx:e}=this;let i=10;const r=I.getRectPointList(t),n=r.length,s=this.getColor(t.attribute);r.forEach((a,h)=>{var o,d;if(e.save(),e.moveTo(a.x,a.y),e.beginPath(),this.hoverRectPointIndex===h?i=k+6:i=k,t.valid===!1?(e.strokeStyle=s==null?void 0:s.invalid.stroke,e.fillStyle=s==null?void 0:s.invalid.stroke):(e.strokeStyle=s==null?void 0:s.valid.stroke,e.fillStyle=s==null?void 0:s.valid.stroke),e.arc(a.x*this.zoom+this.currentPos.x,a.y*this.zoom+this.currentPos.y,i,0,2*Math.PI),e.fill(),this.hoverRectEdgeIndex===h){e.beginPath(),e.lineWidth=10;const c=this.getColor(t.attribute),l=t.valid===!1?(o=c==null?void 0:c.invalid)==null?void 0:o.stroke:(d=c==null?void 0:c.valid)==null?void 0:d.stroke;e.strokeStyle=l,e.moveTo(r[h].x*this.zoom+this.currentPos.x,r[h].y*this.zoom+this.currentPos.y),e.lineTo(r[(h+1)%n].x*this.zoom+this.currentPos.x,r[(h+1)%n].y*this.zoom+this.currentPos.y),e.stroke()}e.restore()}),this.renderTextAttribute()}renderDrawingRect(t,e=this.zoom,i=!1,r=!1){var n,s,a,h,o,d;if(this.ctx&&t){const{ctx:c,style:l}=this,{hiddenText:g=!1}=l;c.save();const{strokeColor:b,fillColor:m,textColor:x}=this.getRenderStyle(t);c.font="lighter 14px Arial";let C="";((n=this.config)==null?void 0:n.isShowOrder)&&t.order&&(t==null?void 0:t.order)>0&&(C=`${t.order}`),t.label&&this.hasMarkerConfig&&(C=`${R.getCurrentMarkerIndex(t.label,this.config.markerList)+1}_${q.getMarkerShowText(t.label,this.config.markerList)}`),t.attribute&&(C=`${C} ${L.getAttributeShowText(t.attribute,(s=this.config)==null?void 0:s.attributeList)}`,(t==null?void 0:t.subAttribute)&&((a=this.config)==null?void 0:a.secondaryAttributeConfigurable)&&((h=this.config)==null?void 0:h.subAttributeList)&&P.getTagNameList(t.subAttribute,this.config.subAttributeList).forEach(T=>{C+=`
2
- ${T.keyName}: ${T.value.join("\u3001")}`}));const v=y.changeRectByZoom(t,i?e:this.zoom,this.currentPos);g||D.drawText(this.canvas,{x:v.x,y:v.y-6},C,f(u({color:b,font:"normal normal 900 14px SourceHanSansCN-Regular"},z),{textMaxWidth:300})),this.highlightVisible&&(t==null?void 0:t.isHighlight)&&D.drawHighlightFlag({canvas:this.canvas,color:b,position:{x:v.x-5,y:v.y-16}});const K=(d=(o=this.style)==null?void 0:o.width)!=null?d:2,F=this.config.textConfigurable&&this.config.isHighlightSameTextAttribute&&this.selectedRectTextAttribute!==""&&t.textAttribute===this.selectedRectTextAttribute;(t.id===this.hoverRectID||F||t.id===this.selectedRectID||this.isMultiMoveMode||r)&&D.drawRectWithFill(this.canvas,v,{color:m}),D.drawRect(this.canvas,v,{color:b,thickness:K,hiddenText:!0,lineDash:t.lineDash}),c.restore();let M=`${Math.round(t.width)} * ${Math.round(t.height)}`;i===!0&&(M=`${Math.round(t.width/this.zoom)} * ${Math.round(v.height/this.zoom)}`);const E=M.length*7;if(g||D.drawText(this.canvas,{x:v.x+v.width-E,y:v.y+v.height+15},M,u({color:x,font:"normal normal 600 14px Arial"},z)),!g&&t.textAttribute&&t.id!==this.selectedRectID){const _=0,T=Math.max(20,v.width-E);D.drawText(this.canvas,{x:v.x,y:v.y+v.height+20+_},t.textAttribute,u({color:x,font:"italic normal 900 14px Arial",textMaxWidth:T},z))}}}renderStaticRect(){var t;if(!(((t=this.rectList)==null?void 0:t.length)>0&&JSON.stringify(this.rectList)))return;const{renderEnhance:e={}}=this,[i,r]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs,this.highlightVisible);this.isHidden||i==null||i.forEach(n=>{this.renderDrawingRect(n),e.staticRender&&e.staticRender(this.canvas,y.changeRectByZoom(n,this.zoom,this.currentPos),this.getRenderStyle(n))}),r&&r.forEach(n=>{this.renderDrawingRect(n),this.renderSelectedRect(n),e.selectedRender&&e.selectedRender(this.canvas,y.changeRectByZoom(n,this.zoom,this.currentPos),this.getRenderStyle(n))}),this.renderPointCloud2DHighlight()}renderCreatingRect(){if(!this.drawingRect)return;const{renderEnhance:t={}}=this;this.renderDrawingRect(this.drawingRect,1,!0),t.creatingRender&&t.creatingRender(this.canvas,y.changeRectByZoom(this.drawingRect,1,this.currentPos),this.getRenderStyle(this.drawingRect))}renderRect(t){t!=="move"&&this.renderStaticRect(),this.renderCreatingRect()}render(t){!this.ctx||(t!=="move"&&super.render(),t!=="drag"&&this.renderRect(t),this.renderCursorLine(this.getLineColor(this.defaultAttribute)))}renderCursorLine(t){this.clearOffscreenCanvas();const{x:e,y:i}=this.coord;D.drawLine(this.offscreenCanvas,{x:0,y:i},{x:1e4,y:i},{color:t}),D.drawLine(this.offscreenCanvas,{x:e,y:0},{x:e,y:1e4},{color:t}),D.drawCircleWithFill(this.offscreenCanvas,{x:e,y:i},1,{color:"white"})}setDefaultAttribute(t){const e=this.defaultAttribute;if(this.defaultAttribute=t!=null?t:"",e!==t&&(this.changeStyle(t),this.emit("changeAttributeSidebar"),this.selectedRects&&(this.setRectList(this.rectList.map(i=>this.selection.isIdSelected(i.id)?f(u({},i),{attribute:this.defaultAttribute}):i),!0),this.history.pushHistory(this.rectList),this.render()),this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{attribute:this.defaultAttribute}),this.render()),this._textAttributeInstance)){if(this.attributeLockList.length>0&&!this.attributeLockList.includes(this.defaultAttribute)){this._textAttributeInstance.clearTextAttribute();return}this._textAttributeInstance.updateIcon(this.getTextIconSvg(t))}}setValid(t){super.setValid(t),this.emit("updateResult")}clearDrawingStatus(){this.drawingRect=void 0,this.firstClickCoord=void 0,this.dragInfo=void 0,this.dragStatus=p.Wait}clearActiveStatus(){this.clearDrawingStatus(),this.setSelectedRectID(void 0),this.setOperationMode(Y.General)}clearResult(t=!0){const e=this.rectList.filter(i=>i.disableDelete===!0);e.length>0&&t&&this.emit("messageInfo",O.getMessagesByLocale(U.ClearPartialData,this.lang)),this.setRectList(e,!0),this.setSelectedRectID(void 0)}deleteRect(t){var e;if(!t)return;const i=this.rectList.find(r=>r.id===t);if((i==null?void 0:i.disableDelete)===!0){this.emit("messageInfo",O.getMessagesByLocale(U.DisableDelete,this.lang));return}this.setRectList(this.rectList.filter(r=>r.id!==t),!0),this.history.pushHistory(this.rectList),this.setSelectedRectID(void 0),(e=this._textAttributeInstance)==null||e.clearTextAttribute(),this.render()}exportData(){const{rectList:t}=this;return[t,this.basicImgInfo]}undo(){const t=this.history.undo();t&&(t.length!==this.rectList.length&&this.setSelectedRectID(""),this.setRectList(t,!0),this.render())}redo(){const t=this.history.redo();t&&(t.length!==this.rectList.length&&this.setSelectedRectID(""),this.setRectList(t,!0),this.render())}setHoverRectID(t){this.hoverRectID=t}}export{V as RectOperation,V as default};
1
+ import $ from"lodash";import{distance as X}from"@turf/turf";import j from"../../utils/MathUtils.js";import y from"../../utils/tool/AxisUtils.js";import I from"../../utils/tool/RectUtils.js";import P from"../../utils/tool/TagUtils.js";import{i18n as Y}from"@labelbee/lb-utils";import{EDragStatus as p,ESortDirection as W,DEFAULT_TEXT_SHADOW as z}from"../../constant/annotation.js";import{EDragTarget as S,EOperationMode as q}from"../../constant/tool.js";import A from"../../constant/keyCode.js";import O from"../../locales/index.js";import{EMessage as U}from"../../locales/constants.js";import L from"../../utils/tool/AttributeUtils.js";import Z from"../../utils/tool/CanvasUtils.js";import R from"../../utils/tool/CommonToolUtils.js";import D from"../../utils/tool/DrawUtils.js";import G from"../../utils/tool/MarkerUtils.js";import{getPolygonPointUnderZoom as H}from"../../utils/tool/polygonTool.js";import J from"../../utils/uuid.js";import{BasicToolOperation as Q}from"./basicToolOperation.js";import tt from"./textAttributeClass.js";import et from"./Selection.js";var it=Object.defineProperty,st=Object.defineProperties,rt=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,N=(w,t,e)=>t in w?it(w,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):w[t]=e,u=(w,t)=>{for(var e in t||(t={}))nt.call(t,e)&&N(w,e,t[e]);if(B)for(var e of B(t))ot.call(t,e)&&N(w,e,t[e]);return w},f=(w,t)=>st(w,rt(t));const k=6;class V extends Q{constructor(t){super(f(u({},t),{isOffscreenCanvas:!0}));this.highlightVisible=!1,this.enableAddRect=!0,this.setMarkerIndex=e=>{this.markerIndex=e},this.setMarkerIndexAndSelect=e=>{if(!this.config.markerList)return;this.markerIndex=e;const i=this.config.markerList[e].value,r=this.currentPageResult.find(n=>n.label===i);r&&(this.setSelectedRectID(r.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(r.attribute)),this.emit("markIndexChange")},this.getHoverRectID=e=>{const i=this.getCoordinateUnderZoom(e),r=k,{currentShowList:n}=this;if(n.length>0){if(this.selectedRectID){const{selectedRect:a}=this;if(a&&I.isInRect(i,a,r,this.zoom))return a.id}const s=n.filter(a=>I.isInRect(i,a,r,this.zoom));if(s.length===0)return"";if(s.length===1)return s[0].id;if(s.length>1)return s.map(h=>({size:h.width*h.height,id:h.id})).sort((h,o)=>h.size-o.size)[0].id}return""},this.getSelectedRectTextAttribute=e=>{if(e){const i=this.rectList.find(r=>r.id===e);return(i==null?void 0:i.textAttribute)||""}return""},this.lastMouseMoveTime=0,this.mouseMoveThrottle=16,this.setDefaultSubAttribute=()=>{var e,i,r,n;if(((e=this.config)==null?void 0:e.secondaryAttributeConfigurable)&&((i=this.config)==null?void 0:i.subAttributeList)){const s=P.getDefaultResultByConfig((n=(r=this.config)==null?void 0:r.subAttributeList)!=null?n:[]);this.setRectList(this.rectList.map(a=>{var h;if(a.id===this.selectedRectID){const o=(h=a==null?void 0:a.subAttribute)!=null?h:s;return f(u({},a),{subAttribute:o})}return a}),!0)}},this.textChange=e=>{this.config.textConfigurable!==!0||!this.selectedRectID||(this.setRectList(L.textChange(e,this.selectedRectID,this.rectList),!0),this.emit("selectedChange"),this.render())},this._drawOutSideTarget=t.drawOutSideTarget||!1,this.rectList=[],this.isFlow=!0,this.config=R.jsonParser(t.config),this.hoverRectEdgeIndex=-1,this.hoverRectPointIndex=-1,this.selectedRectTextAttribute="",this.markerIndex=0,this.createNewDrawingRect=this.createNewDrawingRect.bind(this),this.getDrawingRectWithRectList=this.getDrawingRectWithRectList.bind(this),this.setSelectedIdAfterAddingDrawingRect=this.setSelectedIdAfterAddingDrawingRect.bind(this),this.getCurrentSelectedData=this.getCurrentSelectedData.bind(this),this.updateSelectedRectTextAttribute=this.updateSelectedRectTextAttribute.bind(this),this.setSelectedID=this.setSelectedID.bind(this),this.updateSelectedRectSubAttribute=this.updateSelectedRectSubAttribute.bind(this),this.selection=new et(this)}renderPointCloud2DHighlight(){}setResult(t){if(this.clearActiveStatus(),this.setRectList(t),this.hasMarkerConfig){const e=R.getNextMarker(this.getCurrentPageResult(t),this.config.markerList);e&&this.setMarkerIndex(e.index)}this.render()}destroy(){super.destroy(),this._textAttributeInstance&&this._textAttributeInstance.clearTextAttribute()}setConfig(t,e=!1){this.config=R.jsonParser(t),e===!0&&this.clearResult(!1)}setRectList(t,e=!1){const i=this.rectList.length;this.rectList=t,i!==t.length&&this.emit("updatePageNumber"),e&&this.emit("updateResult")}get selectedRectID(){return this.selectedIDs.length===1?this.selectedIDs[0]:void 0}get selectedID(){return this.selectedRectID}get drawOutSideTarget(){return this._drawOutSideTarget||this.config.drawOutsideTarget}get selectedRect(){return this.selectedRects.length===1?this.selectedRects[0]:void 0}get selectedIDs(){return this.selection.selectedIDs}get selectedRects(){return this.rectList.filter(t=>this.selectedIDs.includes(t.id))}get selectedText(){var t;return(t=this.selectedRect)==null?void 0:t.textAttribute}get dataList(){return this.rectList}get currentShowList(){let t=[];const[e,i]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);return t=e,this.isHidden&&(t=[]),i&&t.push(...i),t}get currentPageResult(){const[t]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),[]);return t}getCurrentPageResult(t){const[e]=R.getRenderResultList(t,R.getSourceID(this.basicResult),[]);return e}setSelectedID(t){this.setSelectedRectID(t)}setSelectedRectID(t,e=!1){this.selection.setSelectedIDs(t,e),this.render(),this.emit("selectedChange")}setStyle(t){var e;super.setStyle(t),this._textAttributeInstance&&this.config.attributeConfigurable===!1&&((e=this._textAttributeInstance)==null||e.updateIcon(this.getTextIconSvg()))}updateSelectedRectTextAttribute(t){if(this._textAttributeInstance&&t&&this.selectedRectID){let e=t;L.textAttributeValidate(this.config.textCheckType,"",e)===!1&&(this.emit("messageError",L.getErrorNotice(this.config.textCheckType,this.lang)),e=""),this.setRectList(this.rectList.map(i=>i.id===this.selectedRectID?f(u({},i),{textAttribute:e}):i),!0),this.emit("updateTextAttribute"),this.render()}}updateSelectedRectSubAttribute(t,e){e&&this.config.secondaryAttributeConfigurable===!0&&this.selectedRectID&&(this.setRectList(this.rectList.map(i=>{var r;if(i.id===this.selectedRectID){const n=(r=i==null?void 0:i.subAttribute)!=null?r:{};return f(u({},i),{subAttribute:f(u({},n),{[t]:e})})}return i}),!0),this.render())}getHoverRectPointIndex(t){return this.selectedRect?y.returnClosePointIndex(this.getCoordinateUnderZoom(t),I.getRectPointList(this.selectedRect,this.zoom),k+2):-1}getHoverRectEdgeIndex(t){if(!this.selectedRect)return-1;let e=-1;const{selectedRect:i}=this,r=I.getRectEdgeList(i,this.zoom),n=this.getCoordinateUnderZoom(t);for(let s=0;s<r.length;s++){const a=r[s],{length:h}=j.getFootOfPerpendicular(n,a.begin,a.end);h<k+10&&(e=s)}return e}getTextIconSvg(t=""){return L.getTextIconSvg(t,this.config.attributeList,this.config.attributeConfigurable,this.baseIcon)}onMouseDown(t){if(super.onMouseDown(t)||this.forbidMouseOperation||t.ctrlKey===!0)return;const e=this.getCoordinateUnderZoom(t),i=this.getHoverRectID(t);if(!(t.button===2||t.button===0&&this.isSpaceKey===!0)){if(this.selectedRectID){const r=this.currentShowList.find(n=>n.id===this.selectedRectID);if(!r)return;if(this.getHoverRectPointIndex(t)>-1){const n=S.Point;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=p.Start;return}if(this.getHoverRectEdgeIndex(t)>-1){const n=S.Line;this.dragInfo={dragStartCoord:e,dragTarget:n,startTime:+new Date,firstRect:r},this.dragStatus=p.Start;return}}if(this.selection.isIdSelected(i)&&!this.drawingRect){const r=S.Plane;this.dragInfo={dragStartCoord:e,dragTarget:r,firstRect:this.selectedRect,startTime:+new Date,originRectList:this.selectedRects},this.dragStatus=p.Start}}}appendOffsetRect(t,e){return f(u({},t),{x:t.x+e.x/this.zoom,y:t.y+e.y/this.zoom})}getRectsBoundaries(t,e){const i=t.reduce((r,n)=>r.concat(...I.getRectPointList(this.appendOffsetRect(n,e))),[]);return j.calcViewportBoundaries(i)}isRectsOutOfTarget(t,e){var i,r,n,s;if(this.drawOutSideTarget!==!1)return!1;const a=this.getRectsBoundaries(t,e),h={y:a.top,x:a.left,height:a.bottom-a.top,width:a.right-a.left};if(((r=(i=this.basicResult)==null?void 0:i.pointList)==null?void 0:r.length)>0)return I.isRectNotInPolygon(h,H(this.basicResult.pointList,this.zoom));if(this.basicResult||this.imgInfo){const o=this.basicResult?this.basicResult:{x:0,y:0,height:(n=this.imgNode)==null?void 0:n.height,width:(s=this.imgNode)==null?void 0:s.width};if(o)return[{x:a.left,y:a.top},{x:a.right,y:a.bottom}].some(d=>!I.isInRect(d,o))}return!1}moveRects(t){var e;if((e=this.dragInfo)==null?void 0:e.originRectList){let i=$.cloneDeep(this.dragInfo.originRectList);if(this.isRectsOutOfTarget(i,t))return;i=this.dragInfo.originRectList.map(r=>f(u({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom})),this.setRectList(this.rectList.map(r=>{const n=i.find(s=>s.id===r.id);return n||r}))}}onDragMoveAll(t){var e,i;!((i=(e=this.dragInfo)==null?void 0:e.originRectList)==null?void 0:i.length)||(this.setRectList(this.dragInfo.originRectList.map(r=>f(u({},r),{x:r.x+t.x/this.zoom,y:r.y+t.y/this.zoom}))),this.render())}onDragMove(t){var e,i,r,n;if(!this.dragInfo)return;const s={x:t.x-this.dragInfo.dragStartCoord.x,y:t.y-this.dragInfo.dragStartCoord.y};if(this.dragStatus=p.Move,this.dragInfo.dragTarget===S.Plane){this.moveRects(s);return}if(!this.dragInfo.firstRect)return;const a=I.getRectUnderZoom(this.dragInfo.firstRect,this.zoom),{x:h,y:o,width:d,height:c}=a;let l=this.rectList.filter(g=>g.id===this.selectedRectID)[0];switch(this.dragInfo.dragTarget){case S.Point:{let g=h,b=o,m=d,x=c;switch(this.hoverRectPointIndex){case 0:{g=d-s.x<0?h+d:h+s.x,b=c-s.y<0?o+c:o+s.y,m=Math.abs(s.x-d),x=Math.abs(s.y-c);break}case 1:{g=d+s.x>0?h:h+d+s.x,b=c-s.y<0?o+c:o+s.y,m=Math.abs(d+s.x),x=Math.abs(c-s.y);break}case 2:{g=d+s.x>0?h:h+d+s.x,b=c+s.y>0?o:o+c+s.y,m=Math.abs(d+s.x),x=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{g=d-s.x<0?h+d:h+s.x,b=c+s.y>0?o:o+c+s.y,m=Math.abs(s.x-d),x=c+s.y>0?c+s.y:Math.abs(c+s.y);break}default:return}l=f(u({},l),{x:g,y:b,width:m,height:x})}break;case S.Line:{let g=h,b=o,m=d,x=c;switch(this.hoverRectEdgeIndex){case 0:{b=c-s.y<0?o+c:o+s.y,x=Math.abs(s.y-c);break}case 1:{g=d+s.x>0?h:h+d+s.x,m=Math.abs(d+s.x);break}case 2:{b=c+s.y>0?o:o+c+s.y,x=c+s.y>0?c+s.y:Math.abs(c+s.y);break}case 3:{g=d-s.x<0?h+d:h+s.x,m=Math.abs(s.x-d);break}default:return}l=f(u({},l),{x:g,y:b,width:m,height:x});break}default:return}if(this.drawOutSideTarget===!1){if(this.basicResult){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&I.isRectNotInPolygon(l,H(this.basicResult.pointList,this.zoom)))return;const g=this.basicResult.x*this.zoom,b=this.basicResult.y*this.zoom,m=this.basicResult.width*this.zoom,x=this.basicResult.height*this.zoom;if(l.x<g-.01||l.y<b-.01||l.width>g+m-l.x+.01||l.height>b+x-l.y+.01)return;if(l.x<g&&(l.x=g),l.y<b&&(l.y=b),l.width>g+m-l.x)switch(this.dragInfo.dragTarget){case S.Point:case S.Line:s.x>0&&s.y>0&&(l.width=g+m-l.x);break;default:return}if(l.height>b+x-l.y)switch(this.dragInfo.dragTarget){}}else if(l.x<0&&(l.x=0),l.y<0&&(l.y=0),this.imgInfo)switch(this.dragInfo.dragTarget){default:if(l.x+l.width>((r=this.imgInfo)==null?void 0:r.width)+.01||l.y+l.height>((n=this.imgInfo)==null?void 0:n.height)+.01)return}}this.setRectList(this.rectList.map(g=>g.id===l.id?I.getRectUnderZoom(l,1/this.zoom):g)),this.render()}onMouseMove(t){requestAnimationFrame(()=>{var e,i;const r=Date.now();if(r-this.lastMouseMoveTime<this.mouseMoveThrottle||(this.lastMouseMoveTime=r,super.onMouseMove(t,!1)||this.forbidMouseOperation||!this.imgInfo))return;const n=this.getCoordinateUnderZoom(t),s=y.changeDrawOutsideTarget(n,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.selectedIDs.length>0&&this.dragInfo){this.onDragMove(s),this.render();return}if(this.selectedRectID){const o=this.getHoverRectPointIndex(t);if(o!==this.hoverRectPointIndex){this.hoverRectPointIndex=o,this.hoverRectEdgeIndex=-1,this.render();return}if(this.hoverRectPointIndex===-1){const d=this.getHoverRectEdgeIndex(t);if(d!==this.hoverRectEdgeIndex){this.hoverRectEdgeIndex=d,this.render();return}}}const a=this.getHoverRectID(t),h=this.hoverRectID;if(this.hoverRectID=a,a!==h&&this.render(),this.enableAddRect&&this.drawingRect&&this.firstClickCoord){let{x:o,y:d}=this.firstClickCoord,{width:c,height:l}=this.drawingRect;if(c=Math.abs(o-s.x),l=Math.abs(d-s.y),s.x<o&&(o=s.x),s.y<d&&(d=s.y),this.drawOutSideTarget===!1){if(((i=(e=this.basicResult)==null?void 0:e.pointList)==null?void 0:i.length)>0&&I.isRectNotInPolygon(f(u({},this.drawingRect),{x:o,y:d,width:c,height:l}),H(this.basicResult.pointList,this.zoom)))return;s.x<0&&(c=Math.abs(this.firstClickCoord.x),o=0),s.y<0&&(l=Math.abs(this.firstClickCoord.y),d=0),this.imgInfo&&(o+c>this.imgInfo.width&&(c=Math.abs(this.imgInfo.width-o)),d+l>this.imgInfo.height&&(l=Math.abs(this.imgInfo.height-d)))}this.drawingRect=f(u({},this.drawingRect),{x:o,y:d,width:c,height:l}),this.render()}if(this.isDrag&&!this.dragInfo){this.render("drag");return}this.render("move")})}setHighlightVisible(t){this.highlightVisible=t,this.setAttributeLockList([])}setAttributeLockList(t){this.setSelectedRectID(void 0),(t==null?void 0:t.length)&&(this.highlightVisible=!1),super.setAttributeLockList(t)}setBasicResult(t){super.setBasicResult(t),this.clearActiveStatus()}setRectValidAndRender(t){const e=this.rectList.some(i=>i==null?void 0:i.valid);this.setRectList(this.rectList.map(i=>i.id===t?f(u({},i),{valid:!i.valid}):(this.selection.isIdSelected(i.id)&&(i.valid=!e),i)),!0),this.render(),this.emit("updateResult")}createNewDrawingRect(t,e){var i,r,n,s;if(!this.imgInfo)return;const a=this.getCoordinateUnderZoom(t),h=y.changeDrawOutsideTarget(a,{x:0,y:0},this.imgInfo,this.drawOutSideTarget,this.basicResult,this.zoom);if(this.setSelectedRectID(""),this.hoverRectID="",this.drawOutSideTarget&&(h.x<0&&(h.x=0),h.y<0&&(h.y=0)),this.drawingRect=f(u({},h),{width:0,height:0,attribute:this.defaultAttribute,valid:!t.ctrlKey,id:J(8,62),sourceID:e,textAttribute:""}),this.hasMarkerConfig){const o=R.getNextMarker(this.currentPageResult,this.config.markerList,this.markerIndex);if(o)this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{label:o.label})),this.markerIndex=o.index,this.emit("markIndexChange");else{this.emit("messageInfo",O.getMessagesByLocale(U.MarkerFinish,this.lang)),this.drawingRect=void 0;return}}if(this.config.textConfigurable){let o="";o=L.getTextAttribute(this.rectList.filter(d=>R.isSameSourceID(d.sourceID,e)),this.config.textCheckType),this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{textAttribute:o}))}if(((i=this.config)==null?void 0:i.secondaryAttributeConfigurable)&&((r=this.config)==null?void 0:r.subAttributeList)){const o=P.getDefaultResultByConfig((s=(n=this.config)==null?void 0:n.subAttributeList)!=null?s:[]);this.drawingRect=f(u({},this.drawingRect),{subAttribute:o})}if(Object.assign(this.drawingRect,{order:R.getMaxOrder(this.rectList.filter(o=>R.isSameSourceID(o.sourceID,e)))+1}),this.firstClickCoord=u({},h),this.firstCurrentPos=u({},this.currentPos),this.dataInjectionAtCreation){const o=this.dataInjectionAtCreation(this.drawingRect);o&&Object.assign(this.drawingRect,o)}}checkSize({width:t,height:e,minWidth:i,minHeight:r,isAttributeConfig:n=!1}){return Math.round(t)<i||Math.round(e)<r?(this.emit("messageInfo",Y.t(n?"TheSizeOfTheDrawingBoxIsSmallerThanTheMinimumDrawingSizeInTheMainPropertyConfiguration":"TheDrawFrameSizeIsSmallerThanTheMinimumDrawSizeInTheStepConfiguration")),this.clearDrawingStatus(),this.render(),!1):!0}addDrawingRectToRectList(){var t,e,i;if(!this.drawingRect)return;let{width:r,height:n}=this.drawingRect;r/=this.zoom,n/=this.zoom;const{attribute:s}=this.drawingRect;let a={minWidth:this.config.minWidth,minHeight:this.config.minHeight};if(s&&this.config.attributeConfigurable){const d=(i=((e=(t=this.config)==null?void 0:t.attributeList)!=null?e:[]).find(c=>c.value===s))==null?void 0:i.limit;d&&(a=f(u({},d),{isAttributeConfig:!0}))}if(!this.checkSize(u({width:r,height:n},a)))return;const h=this.getDrawingRectWithRectList();this.setRectList(h,!0),this.history.pushHistory(this.rectList),this.setSelectedIdAfterAddingDrawingRect(),this.clearDrawingStatus()}setSelectedIdAfterAddingDrawingRect(){var t;!this.drawingRect||(this.config.textConfigurable||((t=this.config)==null?void 0:t.secondaryAttributeConfigurable)?this.setSelectedRectID(this.drawingRect.id):this.setSelectedRectID())}getDrawingRectWithRectList(){if(!this.drawingRect)return this.rectList;let{x:t,y:e,width:i,height:r}=this.drawingRect;return t/=this.zoom,e/=this.zoom,i/=this.zoom,r/=this.zoom,[...this.rectList,f(u({},this.drawingRect),{x:t,y:e,width:i,height:r})]}rightMouseUp(t){var e,i,r,n,s;const a=this.getHoverRectID(t),h=this.rectList.find(o=>o.id===a);if(this.selectedRectTextAttribute="",this.drawingRect)this.drawingRect=void 0,this.firstClickCoord=void 0;else{if(((e=this.dragInfo)==null?void 0:e.dragStartCoord)&&X((i=this.dragInfo)==null?void 0:i.dragStartCoord,this.getCoordinateUnderZoom(t))>3&&this.dblClickListener.clearRightDblClick(),this.setSelectedRectID(a,t.ctrlKey),h&&((r=this.selectedIDs)==null?void 0:r.length)===1&&(this.selectedRectTextAttribute=this.getSelectedRectTextAttribute(a),this.setDefaultAttribute(h.attribute)),this.hoverRectID="",(h==null?void 0:h.label)&&this.hasMarkerConfig){const o=R.getCurrentMarkerIndex(h.label,this.config.markerList);o>=0&&(this.setMarkerIndex(o),this.emit("markIndexChange"))}((n=this.config)==null?void 0:n.secondaryAttributeConfigurable)&&((s=this.config)==null?void 0:s.subAttributeList)&&this.setDefaultSubAttribute()}return this.render(),h}shiftRightMouseUp(t){const e=this.getHoverRectID(t);this.emit("shiftRightMouseUp",e)}updateDragResult(){this.emit("updateDragResult",u({},this.selectedRect))}setEnableAddRect(t){this.enableAddRect=t}onMouseUp(t){if(super.onMouseUp(t)||this.forbidMouseOperation||!this.imgInfo)return!0;if(this.dragInfo&&this.dragStatus===p.Move){this.dragInfo=void 0,this.dragStatus=p.Wait,this.history.pushHistory(this.rectList),this.emit("updateResult"),this.updateDragResult();return}if(t.button===2&&t.shiftKey===!0){this.shiftRightMouseUp(t);return}if(t.button===2){this.rightMouseUp(t);return}const e=R.getSourceID(this.basicResult);if(this.drawingRect){this.enableAddRect?this.addDrawingRectToRectList():(this.clearDrawingStatus(),this.render());return}if(t.ctrlKey===!0&&t.button===0&&this.hoverRectID){this.setRectValidAndRender(this.hoverRectID);return}this.enableAddRect&&(this.createNewDrawingRect(t,e),this.render())}onRightDblClick(t){super.onRightDblClick(t);const e=this.getHoverRectID(t);this.selection.isIdSelected(e)&&this.deleteSelectedRect(t)}deleteSelectedRect(t){this.selectedRects.forEach(e=>{this.deleteRect(e.id)})}onKeyDown(t){if(!R.hotkeyFilter(t)||super.onKeyDown(t)===!1||this.selection.triggerKeyboardEvent(t,this.setRectList.bind(this)))return;const{keyCode:e}=t;switch(e){case A.Ctrl:this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{valid:!t.ctrlKey}),this.render());break;case A.F:this.selectedIDs.length>0&&this.setRectValidAndRender(this.selectedRectID);break;case A.Z:this.setIsHidden(!this.isHidden),this.render();break;case A.Delete:this.deleteSelectedRect(t);break;case A.Tab:{if(t.preventDefault(),this.drawingRect)return;let i=W.ascend;t.shiftKey&&(i=W.descend);const[r,n]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs);let s=[...r];n&&(s=[...s,...n]);const a=Z.getViewPort(this.canvas,this.currentPos,this.zoom);s=s.filter(o=>Z.inViewPort({x:o.x,y:o.y},a));const h=R.getNextSelectedRectID(s,i,this.selectedRectID);h&&(this.setSelectedRectID(h.id),this.config.attributeConfigurable===!0&&this.setDefaultAttribute(h.attribute));break}default:{if(this.config.attributeConfigurable){const i=L.getAttributeByKeycode(e,this.config.attributeList);i!==void 0&&this.setDefaultAttribute(i)}break}}return!0}onKeyUp(t){switch(super.onKeyUp(t),t.keyCode){case A.Ctrl:this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{valid:!0}),this.render());break}}onWheel(t){const e=this.zoom;let i,r;this.drawingRect&&this.firstClickCoord&&(i=I.getRectUnderZoom(this.drawingRect,1/e),r=y.changePointByZoom(this.firstClickCoord,1/e)),super.onWheel(t,!1),i&&r&&(this.drawingRect=I.getRectUnderZoom(i,this.zoom),this.firstClickCoord=y.changePointByZoom(r,this.zoom)),this.render()}getCurrentSelectedData(){const{selectedRect:t}=this;if(!t)return;const e=this.getColor(t.attribute),i=t.valid?e==null?void 0:e.valid.stroke:e==null?void 0:e.invalid.stroke;return{width:t.width*this.zoom*.6,textAttribute:t.textAttribute,color:i}}getRenderStyle(t){const e=this.customRenderStyle&&this.customRenderStyle(t);if(e)return e;const i=this.getColor(t.attribute);let r,n;return t.valid===!1?(r=i==null?void 0:i.invalid.stroke,n=i==null?void 0:i.invalid.fill):(r=i==null?void 0:i.valid.stroke,n=i==null?void 0:i.valid.fill),{strokeColor:r,fillColor:n,textColor:r,toolColor:i}}renderTextAttribute(){var t;const{selectedRect:e}=this;if(!this.ctx||this.config.textConfigurable!==!0||!e)return;const{x:i,y:r,width:n,height:s,attribute:a,valid:h}=e,o=n*this.zoom*.6,d=y.getOffsetCoordinate({x:i,y:r+s},this.currentPos,this.zoom),c=this.getColor(a),l=h?c==null?void 0:c.valid.stroke:c==null?void 0:c.invalid.stroke,g=4;this._textAttributeInstance||(this._textAttributeInstance=new tt({width:o,container:this.container,icon:this.getTextIconSvg(a),color:l,getCurrentSelectedData:this.getCurrentSelectedData,updateSelectedTextAttribute:this.updateSelectedRectTextAttribute})),this._textAttributeInstance&&!((t=this._textAttributeInstance)==null?void 0:t.isExit)&&this._textAttributeInstance.appendToContainer(),this._textAttributeInstance.update(`${e.textAttribute}`,{left:d.x,top:d.y+g,color:l,width:o})}renderSelectedRect(t){if(!this.ctx||!t)return;const{ctx:e}=this;let i=10;const r=I.getRectPointList(t),n=r.length,s=this.getColor(t.attribute);r.forEach((a,h)=>{var o,d;if(e.save(),e.moveTo(a.x,a.y),e.beginPath(),this.hoverRectPointIndex===h?i=k+6:i=k,t.valid===!1?(e.strokeStyle=s==null?void 0:s.invalid.stroke,e.fillStyle=s==null?void 0:s.invalid.stroke):(e.strokeStyle=s==null?void 0:s.valid.stroke,e.fillStyle=s==null?void 0:s.valid.stroke),e.arc(a.x*this.zoom+this.currentPos.x,a.y*this.zoom+this.currentPos.y,i,0,2*Math.PI),e.fill(),this.hoverRectEdgeIndex===h){e.beginPath(),e.lineWidth=10;const c=this.getColor(t.attribute),l=t.valid===!1?(o=c==null?void 0:c.invalid)==null?void 0:o.stroke:(d=c==null?void 0:c.valid)==null?void 0:d.stroke;e.strokeStyle=l,e.moveTo(r[h].x*this.zoom+this.currentPos.x,r[h].y*this.zoom+this.currentPos.y),e.lineTo(r[(h+1)%n].x*this.zoom+this.currentPos.x,r[(h+1)%n].y*this.zoom+this.currentPos.y),e.stroke()}e.restore()}),this.renderTextAttribute()}renderDrawingRect(t,e=this.zoom,i=!1,r=!1){var n,s,a,h,o,d;if(this.ctx&&t){const{ctx:c,style:l}=this,{hiddenText:g=!1}=l;c.save();const{strokeColor:b,fillColor:m,textColor:x}=this.getRenderStyle(t);c.font="lighter 14px Arial";let C="";((n=this.config)==null?void 0:n.isShowOrder)&&t.order&&(t==null?void 0:t.order)>0&&(C=`${t.order}`),t.label&&this.hasMarkerConfig&&(C=`${R.getCurrentMarkerIndex(t.label,this.config.markerList)+1}_${G.getMarkerShowText(t.label,this.config.markerList)}`),t.attribute&&(C=`${C} ${L.getAttributeShowText(t.attribute,(s=this.config)==null?void 0:s.attributeList)}`,(t==null?void 0:t.subAttribute)&&((a=this.config)==null?void 0:a.secondaryAttributeConfigurable)&&((h=this.config)==null?void 0:h.subAttributeList)&&P.getTagNameList(t.subAttribute,this.config.subAttributeList).forEach(T=>{C+=`
2
+ ${T.keyName}: ${T.value.join("\u3001")}`}));const v=y.changeRectByZoom(t,i?e:this.zoom,this.currentPos);g||D.drawText(this.canvas,{x:v.x,y:v.y-6},C,f(u({color:b,font:"normal normal 900 14px SourceHanSansCN-Regular"},z),{textMaxWidth:300})),this.highlightVisible&&(t==null?void 0:t.isHighlight)&&D.drawHighlightFlag({canvas:this.canvas,color:b,position:{x:v.x-5,y:v.y-16}});const K=(d=(o=this.style)==null?void 0:o.width)!=null?d:2,F=this.config.textConfigurable&&this.config.isHighlightSameTextAttribute&&this.selectedRectTextAttribute!==""&&t.textAttribute===this.selectedRectTextAttribute;(t.id===this.hoverRectID||F||t.id===this.selectedRectID||this.isMultiMoveMode||r)&&D.drawRectWithFill(this.canvas,v,{color:m}),D.drawRect(this.canvas,v,{color:b,thickness:K,hiddenText:!0,lineDash:t.lineDash}),c.restore();let M=`${Math.round(t.width)} * ${Math.round(t.height)}`;i===!0&&(M=`${Math.round(t.width/this.zoom)} * ${Math.round(v.height/this.zoom)}`);const E=M.length*7;if(g||D.drawText(this.canvas,{x:v.x+v.width-E,y:v.y+v.height+15},M,u({color:x,font:"normal normal 600 14px Arial"},z)),!g&&t.textAttribute&&t.id!==this.selectedRectID){const _=0,T=Math.max(20,v.width-E);D.drawText(this.canvas,{x:v.x,y:v.y+v.height+20+_},t.textAttribute,u({color:x,font:"italic normal 900 14px Arial",textMaxWidth:T},z))}}}renderStaticRect(){var t;if(!(((t=this.rectList)==null?void 0:t.length)>0&&JSON.stringify(this.rectList)))return;const{renderEnhance:e={}}=this,[i,r]=R.getRenderResultList(this.rectList,R.getSourceID(this.basicResult),this.attributeLockList,this.selectedIDs,this.highlightVisible);this.isHidden||i==null||i.forEach(n=>{this.renderDrawingRect(n),e.staticRender&&e.staticRender(this.canvas,y.changeRectByZoom(n,this.zoom,this.currentPos),this.getRenderStyle(n))}),r&&r.forEach(n=>{this.renderDrawingRect(n),this.renderSelectedRect(n),e.selectedRender&&e.selectedRender(this.canvas,y.changeRectByZoom(n,this.zoom,this.currentPos),this.getRenderStyle(n))}),this.renderPointCloud2DHighlight()}renderCreatingRect(){if(!this.drawingRect)return;const{renderEnhance:t={}}=this;this.renderDrawingRect(this.drawingRect,1,!0),t.creatingRender&&t.creatingRender(this.canvas,y.changeRectByZoom(this.drawingRect,1,this.currentPos),this.getRenderStyle(this.drawingRect))}renderRect(t){t!=="move"&&this.renderStaticRect(),this.renderCreatingRect()}render(t){!this.ctx||(t!=="move"&&super.render(),t!=="drag"&&this.renderRect(t),this.renderCursorLine(this.getLineColor(this.defaultAttribute)))}renderCursorLine(t){this.clearOffscreenCanvas();const{x:e,y:i}=this.coord;D.drawLine(this.offscreenCanvas,{x:0,y:i},{x:1e4,y:i},{color:t}),D.drawLine(this.offscreenCanvas,{x:e,y:0},{x:e,y:1e4},{color:t}),D.drawCircleWithFill(this.offscreenCanvas,{x:e,y:i},1,{color:"white"})}setDefaultAttribute(t){const e=this.defaultAttribute;if(this.defaultAttribute=t!=null?t:"",e!==t&&(this.changeStyle(t),this.emit("changeAttributeSidebar"),this.selectedRects&&(this.setRectList(this.rectList.map(i=>this.selection.isIdSelected(i.id)?f(u({},i),{attribute:this.defaultAttribute}):i),!0),this.history.pushHistory(this.rectList),this.render()),this.drawingRect&&(this.drawingRect=f(u({},this.drawingRect),{attribute:this.defaultAttribute}),this.render()),this._textAttributeInstance)){if(this.attributeLockList.length>0&&!this.attributeLockList.includes(this.defaultAttribute)){this._textAttributeInstance.clearTextAttribute();return}this._textAttributeInstance.updateIcon(this.getTextIconSvg(t))}}setValid(t){super.setValid(t),this.emit("updateResult")}clearDrawingStatus(){this.drawingRect=void 0,this.firstClickCoord=void 0,this.dragInfo=void 0,this.dragStatus=p.Wait}clearActiveStatus(){this.clearDrawingStatus(),this.setSelectedRectID(void 0),this.setOperationMode(q.General)}clearResult(t=!0){const e=this.rectList.filter(i=>i.disableDelete===!0);e.length>0&&t&&this.emit("messageInfo",O.getMessagesByLocale(U.ClearPartialData,this.lang)),this.setRectList(e,!0),this.setSelectedRectID(void 0)}deleteRect(t){var e;if(!t)return;const i=this.rectList.find(r=>r.id===t);if((i==null?void 0:i.disableDelete)===!0){this.emit("messageInfo",O.getMessagesByLocale(U.DisableDelete,this.lang));return}this.setRectList(this.rectList.filter(r=>r.id!==t),!0),this.history.pushHistory(this.rectList),this.setSelectedRectID(void 0),(e=this._textAttributeInstance)==null||e.clearTextAttribute(),this.render()}exportData(){const{rectList:t}=this;return[t,this.basicImgInfo]}undo(){const t=this.history.undo();t&&(t.length!==this.rectList.length&&this.setSelectedRectID(""),this.setRectList(t,!0),this.render())}redo(){const t=this.history.redo();t&&(t.length!==this.rectList.length&&this.setSelectedRectID(""),this.setRectList(t,!0),this.render())}setHoverRectID(t){this.hoverRectID=t}}export{V as RectOperation,V as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-annotation",
3
- "version": "1.28.0-alpha.22",
3
+ "version": "1.28.0-alpha.24",
4
4
  "description": "Annotation tool collection",
5
5
  "keywords": [
6
6
  "annotation",