vue2-client 1.15.114 → 1.15.115

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.
Files changed (558) hide show
  1. package/.cursorrules +19 -19
  2. package/.env.apply +19 -19
  3. package/.env.gaslink +19 -19
  4. package/.env.his +19 -19
  5. package/.env.liuli +20 -20
  6. package/.env.scada +19 -19
  7. package/.eslintrc.js +90 -90
  8. package/CHANGELOG.md +824 -824
  9. package/Components.md +60 -60
  10. package/docs/LowCode/lowcode.md +155 -155
  11. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  12. package/docs/index.md +30 -30
  13. package/index.js +31 -31
  14. package/jest-transform-stub.js +8 -8
  15. package/jest.setup.js +7 -7
  16. package/jsconfig.json +19 -19
  17. package/package.json +1 -1
  18. package/public/his/editor/editor.html +51 -51
  19. package/public/his/editor/mock/bind_data.html +779 -779
  20. package/public/his/editor/mock/data_table.html +40 -40
  21. package/public/his/editor/mock/sign.html +75 -75
  22. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  23. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  24. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  25. package/public/his/editor/vender/date97/calendar.js +4 -4
  26. package/public/his/editor/vender/date97/lang/en.js +13 -13
  27. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  28. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  29. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  30. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  31. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  32. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  33. package/public/his/editor/vender/diff.js +1627 -1627
  34. package/public/his/editor/vender/editor.js +1 -1
  35. package/public/his/editor/vender/fabric.js +31187 -31187
  36. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  37. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  38. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  39. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  40. package/public/his/editor/vender/mui/mui.min.css +4 -4
  41. package/public/his/editor/vender/mui/mui.min.js +5 -5
  42. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  43. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  44. package/public/his/editor/vender/qrcode.js +7 -7
  45. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  46. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  47. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  48. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  49. package/public/his/editor/vender/validator.js +5094 -5094
  50. package/public/his/editor/vender/weui/weui.css +5659 -5659
  51. package/public/his/editor/vender/weui/weui.min.css +4 -4
  52. package/public/his/editor/vender/weui/weui.min.js +11 -11
  53. package/public/index.html +27 -27
  54. package/src/assets/img/querySlotDemo.svg +15 -15
  55. package/src/assets/svg/badtwo.svg +1 -1
  56. package/src/assets/svg/goodtwo.svg +1 -1
  57. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  58. package/src/base-client/components/AI/demo.vue +31 -31
  59. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  60. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  61. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  62. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  63. package/src/base-client/components/common/CitySelect/index.js +3 -3
  64. package/src/base-client/components/common/CitySelect/index.md +109 -109
  65. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  66. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  67. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  68. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  69. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  70. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  71. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  72. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  73. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  74. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  75. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  76. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  77. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  78. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  79. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  80. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  81. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  82. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  83. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  84. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  85. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  86. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  87. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  88. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  89. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  90. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  91. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  92. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  93. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  94. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  95. package/src/base-client/components/common/Recording/index.js +3 -3
  96. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  97. package/src/base-client/components/common/Tree/index.js +2 -2
  98. package/src/base-client/components/common/Upload/index.js +3 -3
  99. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  100. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  101. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  102. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  103. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  104. package/src/base-client/components/common/XAddReport/index.js +3 -3
  105. package/src/base-client/components/common/XAddReport/index.md +56 -56
  106. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  107. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  108. package/src/base-client/components/common/XButtons/index.js +3 -3
  109. package/src/base-client/components/common/XButtons/index.md +61 -61
  110. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  111. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  112. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  113. package/src/base-client/components/common/XDataCard/index.js +3 -3
  114. package/src/base-client/components/common/XDataCard/index.md +1 -1
  115. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  116. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  117. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  118. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  119. package/src/base-client/components/common/XDescriptions/demo.vue +50 -4
  120. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  121. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  122. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  123. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  124. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  125. package/src/base-client/components/common/XForm/index.md +178 -178
  126. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  127. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  128. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  129. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  130. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  131. package/src/base-client/components/common/XFormTable/index.md +92 -92
  132. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  133. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  134. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  135. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  136. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  137. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  138. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  139. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  140. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  141. package/src/base-client/components/common/XPrint/index.vue +97 -97
  142. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  143. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  144. package/src/base-client/components/common/XReport/index.js +3 -3
  145. package/src/base-client/components/common/XReport/print.js +186 -186
  146. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  147. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  148. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  149. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  150. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  151. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  152. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  153. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  154. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  155. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  156. package/src/base-client/components/common/XStepView/index.js +3 -3
  157. package/src/base-client/components/common/XStepView/index.md +31 -31
  158. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  159. package/src/base-client/components/common/XTab/index.js +3 -3
  160. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  161. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  162. package/src/base-client/components/common/XTable/index.md +255 -255
  163. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  164. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  165. package/src/base-client/components/common/XTree/index.js +3 -3
  166. package/src/base-client/components/common/XTree/index.md +36 -36
  167. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  168. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  169. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  170. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  171. package/src/base-client/components/his/XChart/XChart.vue +282 -282
  172. package/src/base-client/components/his/XChart/dome.vue +19 -19
  173. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +2 -51
  174. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  175. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  176. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  177. package/src/base-client/components/index.js +51 -51
  178. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  179. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  180. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  181. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  182. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  183. package/src/base-client/plugins/Config.js +19 -19
  184. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  185. package/src/base-client/plugins/Recording.js +258 -258
  186. package/src/base-client/plugins/index.js +23 -23
  187. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  188. package/src/components/Charts/Bar.vue +62 -62
  189. package/src/components/Charts/ChartCard.vue +134 -134
  190. package/src/components/Charts/Liquid.vue +67 -67
  191. package/src/components/Charts/MiniArea.vue +39 -39
  192. package/src/components/Charts/MiniBar.vue +39 -39
  193. package/src/components/Charts/MiniProgress.vue +75 -75
  194. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  195. package/src/components/Charts/Radar.vue +68 -68
  196. package/src/components/Charts/RankList.vue +77 -77
  197. package/src/components/Charts/TagCloud.vue +113 -113
  198. package/src/components/Charts/TransferBar.vue +64 -64
  199. package/src/components/Charts/Trend.vue +82 -82
  200. package/src/components/Charts/chart.less +12 -12
  201. package/src/components/Charts/smooth.area.less +13 -13
  202. package/src/components/CodeMirror/inedx.vue +118 -118
  203. package/src/components/CodeMirror/setting.js +40 -40
  204. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  205. package/src/components/NumberInfo/index.js +3 -3
  206. package/src/components/NumberInfo/index.less +54 -54
  207. package/src/components/NumberInfo/index.md +43 -43
  208. package/src/components/card/ChartCard.vue +79 -79
  209. package/src/components/chart/Bar.vue +60 -60
  210. package/src/components/chart/MiniArea.vue +67 -67
  211. package/src/components/chart/MiniBar.vue +59 -59
  212. package/src/components/chart/MiniProgress.vue +57 -57
  213. package/src/components/chart/Radar.vue +80 -80
  214. package/src/components/chart/RankingList.vue +60 -60
  215. package/src/components/chart/Trend.vue +79 -79
  216. package/src/components/chart/index.less +9 -9
  217. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  218. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  219. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  220. package/src/components/checkbox/index.js +9 -9
  221. package/src/components/exception/ExceptionPage.vue +70 -70
  222. package/src/components/g2Charts/constants.js +202 -202
  223. package/src/components/g2Charts/demo.vue +808 -808
  224. package/src/components/g2Charts/designer.vue +228 -228
  225. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  226. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  227. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  228. package/src/components/g2Charts/index.vue +397 -397
  229. package/src/components/index.js +36 -36
  230. package/src/components/input/IInput.vue +66 -66
  231. package/src/components/menu/SideMenu.vue +75 -75
  232. package/src/components/menu/menu.js +273 -273
  233. package/src/components/setting/Setting.vue +234 -234
  234. package/src/components/tool/AStepItem.vue +60 -60
  235. package/src/config/CreateQueryConfig.js +325 -325
  236. package/src/config/default/antd.config.js +89 -89
  237. package/src/config/default/setting.config.js +55 -55
  238. package/src/font-style/font.css +4 -4
  239. package/src/layouts/CommonLayout.vue +56 -56
  240. package/src/layouts/PageLayout.vue +151 -151
  241. package/src/layouts/SinglePageView.vue +136 -136
  242. package/src/layouts/header/AdminHeader.vue +132 -132
  243. package/src/layouts/header/HeaderNotice.vue +177 -177
  244. package/src/layouts/header/InstitutionDetail.vue +181 -181
  245. package/src/layouts/tabs/TabsHead.vue +189 -189
  246. package/src/lib.js +1 -1
  247. package/src/mock/extend/index.js +84 -84
  248. package/src/mock/goods/index.js +108 -108
  249. package/src/pages/DefaultExample/index.vue +77 -77
  250. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  251. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  252. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  253. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  254. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  255. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  256. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  257. package/src/pages/DynamicStatistics/index.vue +282 -282
  258. package/src/pages/Example/childIndex.vue +15 -15
  259. package/src/pages/Example/index.vue +30 -30
  260. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  261. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  262. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  263. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  264. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  265. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  266. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  267. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  268. package/src/pages/Recording/index.vue +77 -77
  269. package/src/pages/ServiceReview/index.vue +284 -284
  270. package/src/pages/SubExample/index.vue +26 -26
  271. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  272. package/src/pages/XReportView/index.vue +64 -64
  273. package/src/pages/XTreeOneProExample/index.vue +67 -67
  274. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  275. package/src/pages/login/Login.vue +380 -380
  276. package/src/pages/login/LoginV3.vue +389 -389
  277. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  278. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  279. package/src/pages/report/ReportTable.js +124 -124
  280. package/src/pages/resourceManage/orgListManage.vue +98 -98
  281. package/src/pages/system/dictionary/index.vue +44 -44
  282. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  283. package/src/pages/system/monitor/operLog/index.vue +37 -37
  284. package/src/pages/system/settings/modifyPassword.vue +117 -117
  285. package/src/pages/system/ticket/index.vue +480 -480
  286. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  287. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  288. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  289. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  290. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  291. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  292. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  293. package/src/plugins/EventLogPlugin.js +33 -33
  294. package/src/plugins/FindParentsData.js +17 -17
  295. package/src/router/async/config.async.js +35 -35
  296. package/src/router/async/router.map.js +2 -2
  297. package/src/router/index.js +27 -27
  298. package/src/services/DataModel.js +30 -30
  299. package/src/services/LodopFuncs.js +137 -137
  300. package/src/services/api/TicketDetailsViewApi.js +46 -46
  301. package/src/services/api/cas.js +79 -79
  302. package/src/services/api/common.js +346 -346
  303. package/src/services/api/entity.js +18 -18
  304. package/src/services/api/index.js +17 -17
  305. package/src/store/modules/account.js +115 -115
  306. package/src/store/modules/index.js +5 -5
  307. package/src/store/modules/lowCode.js +33 -33
  308. package/src/store/modules/setting.js +119 -119
  309. package/src/theme/default/style.less +58 -58
  310. package/src/utils/authority-utils.js +85 -85
  311. package/src/utils/errorCode.js +6 -6
  312. package/src/utils/formatter.js +74 -74
  313. package/src/utils/htmlToPDF.js +108 -108
  314. package/src/utils/htmlToPDFApi.js +5 -5
  315. package/src/utils/login.js +188 -188
  316. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  317. package/src/utils/lowcode/lowcodeLog.js +29 -29
  318. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  319. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  320. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  321. package/src/utils/map-utils.js +47 -47
  322. package/src/utils/reg.js +95 -95
  323. package/src/utils/runEvalFunction.js +14 -14
  324. package/src/utils/theme-color-replacer-extend.js +92 -92
  325. package/src/utils/util.js +329 -329
  326. package/src/utils/waterMark.js +31 -31
  327. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  328. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  329. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  330. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  331. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  332. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  333. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +0 -207
  334. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +0 -211
  335. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +0 -212
  336. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +0 -212
  337. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  338. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  339. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  340. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  341. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  342. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  343. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +0 -731
  344. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +0 -748
  345. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +0 -748
  346. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +0 -1071
  347. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +0 -1078
  348. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +0 -1077
  349. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +0 -1077
  350. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +0 -1077
  351. package/.history/src/base-client/components/his/XChart/XChart_20250812134005.vue +0 -160
  352. package/.history/src/base-client/components/his/XChart/XChart_20250812134010.vue +0 -160
  353. package/.history/src/base-client/components/his/XChart/XChart_20250812134019.vue +0 -160
  354. package/.history/src/base-client/components/his/XChart/XChart_20250812134037.vue +0 -160
  355. package/.history/src/base-client/components/his/XChart/XChart_20250812134112.vue +0 -160
  356. package/.history/src/base-client/components/his/XChart/XChart_20250812134114.vue +0 -160
  357. package/.history/src/base-client/components/his/XChart/XChart_20250812134828.vue +0 -148
  358. package/.history/src/base-client/components/his/XChart/XChart_20250812134838.vue +0 -155
  359. package/.history/src/base-client/components/his/XChart/XChart_20250812134846.vue +0 -155
  360. package/.history/src/base-client/components/his/XChart/XChart_20250812134917.vue +0 -155
  361. package/.history/src/base-client/components/his/XChart/XChart_20250812151145.vue +0 -149
  362. package/.history/src/base-client/components/his/XChart/XChart_20250812151810.vue +0 -153
  363. package/.history/src/base-client/components/his/XChart/XChart_20250812151822.vue +0 -153
  364. package/.history/src/base-client/components/his/XChart/XChart_20250812151910.vue +0 -153
  365. package/.history/src/base-client/components/his/XChart/XChart_20250812152858.vue +0 -258
  366. package/.history/src/base-client/components/his/XChart/XChart_20250812152902.vue +0 -258
  367. package/.history/src/base-client/components/his/XChart/XChart_20250812152907.vue +0 -258
  368. package/.history/src/base-client/components/his/XChart/XChart_20250812152919.vue +0 -258
  369. package/.history/src/base-client/components/his/XChart/XChart_20250812153141.vue +0 -269
  370. package/.history/src/base-client/components/his/XChart/XChart_20250812153149.vue +0 -276
  371. package/.history/src/base-client/components/his/XChart/XChart_20250812153153.vue +0 -276
  372. package/.history/src/base-client/components/his/XChart/XChart_20250812153155.vue +0 -276
  373. package/.history/src/base-client/components/his/XChart/XChart_20250812153157.vue +0 -276
  374. package/.history/src/base-client/components/his/XChart/XChart_20250812153158.vue +0 -276
  375. package/.history/src/base-client/components/his/XChart/XChart_20250812153200.vue +0 -276
  376. package/.history/src/base-client/components/his/XChart/XChart_20250812153210.vue +0 -276
  377. package/.history/src/base-client/components/his/XChart/XChart_20250812153918.vue +0 -275
  378. package/.history/src/base-client/components/his/XChart/XChart_20250812154157.vue +0 -280
  379. package/.history/src/base-client/components/his/XChart/XChart_20250812154212.vue +0 -280
  380. package/.history/src/base-client/components/his/XChart/XChart_20250812154250.vue +0 -280
  381. package/.history/src/base-client/components/his/XChart/XChart_20250812154252.vue +0 -280
  382. package/.history/src/base-client/components/his/XChart/XChart_20250812154444.vue +0 -280
  383. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +0 -442
  384. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +0 -442
  385. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +0 -442
  386. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +0 -475
  387. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +0 -475
  388. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +0 -475
  389. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +0 -477
  390. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +0 -477
  391. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +0 -477
  392. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +0 -473
  393. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +0 -473
  394. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +0 -473
  395. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +0 -473
  396. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +0 -473
  397. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +0 -473
  398. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +0 -473
  399. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +0 -473
  400. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +0 -473
  401. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +0 -473
  402. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +0 -474
  403. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +0 -474
  404. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +0 -474
  405. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +0 -472
  406. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +0 -472
  407. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +0 -472
  408. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +0 -472
  409. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +0 -472
  410. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +0 -472
  411. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +0 -501
  412. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +0 -501
  413. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +0 -501
  414. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +0 -504
  415. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +0 -504
  416. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +0 -504
  417. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +0 -131
  418. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +0 -160
  419. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +0 -160
  420. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +0 -160
  421. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +0 -158
  422. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +0 -173
  423. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +0 -222
  424. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +0 -229
  425. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +0 -229
  426. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +0 -229
  427. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +0 -241
  428. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +0 -241
  429. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +0 -241
  430. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +0 -245
  431. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +0 -245
  432. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +0 -245
  433. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +0 -255
  434. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +0 -255
  435. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +0 -255
  436. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +0 -270
  437. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +0 -270
  438. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +0 -270
  439. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +0 -270
  440. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +0 -294
  441. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +0 -294
  442. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +0 -294
  443. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +0 -303
  444. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +0 -303
  445. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +0 -303
  446. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +0 -288
  447. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +0 -288
  448. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +0 -288
  449. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +0 -317
  450. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +0 -306
  451. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +0 -306
  452. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +0 -306
  453. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +0 -495
  454. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +0 -495
  455. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +0 -494
  456. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +0 -494
  457. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +0 -494
  458. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +0 -495
  459. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +0 -495
  460. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +0 -492
  461. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +0 -492
  462. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +0 -485
  463. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +0 -485
  464. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +0 -488
  465. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134604.vue +0 -263
  466. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134615.vue +0 -302
  467. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134621.vue +0 -301
  468. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134634.vue +0 -311
  469. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134644.vue +0 -330
  470. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134653.vue +0 -330
  471. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134836.vue +0 -330
  472. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135247.vue +0 -330
  473. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135303.vue +0 -354
  474. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135316.vue +0 -363
  475. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135323.vue +0 -363
  476. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135334.vue +0 -366
  477. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135342.vue +0 -364
  478. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135349.vue +0 -364
  479. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135351.vue +0 -346
  480. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135354.vue +0 -346
  481. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135401.vue +0 -346
  482. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135406.vue +0 -346
  483. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135424.vue +0 -346
  484. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807143043.vue +0 -254
  485. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155506.vue +0 -329
  486. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155535.vue +0 -330
  487. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155543.vue +0 -330
  488. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155926.vue +0 -304
  489. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155928.vue +0 -304
  490. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172548.vue +0 -298
  491. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172609.vue +0 -298
  492. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172623.vue +0 -298
  493. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172631.vue +0 -298
  494. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172701.vue +0 -298
  495. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172704.vue +0 -298
  496. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175937.vue +0 -290
  497. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175942.vue +0 -290
  498. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180210.vue +0 -290
  499. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180424.vue +0 -290
  500. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180448.vue +0 -290
  501. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180915.vue +0 -262
  502. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180917.vue +0 -262
  503. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101106.vue +0 -283
  504. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101112.vue +0 -289
  505. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101118.vue +0 -289
  506. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101129.vue +0 -294
  507. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101137.vue +0 -318
  508. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101145.vue +0 -320
  509. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101154.vue +0 -320
  510. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101211.vue +0 -320
  511. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101236.vue +0 -320
  512. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101239.vue +0 -320
  513. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114001.vue +0 -342
  514. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114005.vue +0 -342
  515. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114014.vue +0 -345
  516. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114020.vue +0 -345
  517. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114028.vue +0 -345
  518. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114108.vue +0 -345
  519. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114115.vue +0 -345
  520. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114333.vue +0 -346
  521. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114339.vue +0 -350
  522. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114344.vue +0 -355
  523. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114351.vue +0 -355
  524. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114408.vue +0 -355
  525. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114410.vue +0 -355
  526. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154330.vue +0 -389
  527. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154338.vue +0 -389
  528. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154402.vue +0 -389
  529. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154425.vue +0 -389
  530. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154428.vue +0 -389
  531. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813171922.vue +0 -391
  532. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813171957.vue +0 -391
  533. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172004.vue +0 -391
  534. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172012.vue +0 -391
  535. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172241.vue +0 -391
  536. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172242.vue +0 -391
  537. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103845.vue +0 -142
  538. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103852.vue +0 -142
  539. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103857.vue +0 -142
  540. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103859.vue +0 -142
  541. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103907.vue +0 -142
  542. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103910.vue +0 -142
  543. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103911.vue +0 -142
  544. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103913.vue +0 -142
  545. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103916.vue +0 -142
  546. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103931.vue +0 -142
  547. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145127.vue +0 -85
  548. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145136.vue +0 -81
  549. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145142.vue +0 -81
  550. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145145.vue +0 -81
  551. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145148.vue +0 -81
  552. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145151.vue +0 -81
  553. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145155.vue +0 -81
  554. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -213
  555. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  556. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  557. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
  558. package/src/base-client/components/his/XHisEditor/dome.vue +0 -144
@@ -1,519 +1,519 @@
1
- /** @license
2
- jSignature v2 SVG export plugin.
3
-
4
- */
5
- /**
6
- Copyright (c) 2012 Willow Systems Corp http://willow-systems.com
7
- MIT License <http://www.opensource.org/licenses/mit-license.php>
8
- */
9
-
10
- ;(function(){
11
- 'use strict'
12
-
13
- /** @preserve
14
- Simplify.js BSD
15
- (c) 2012, Vladimir Agafonkin
16
- mourner.github.com/simplify-js
17
-
18
- */
19
- ;(function(a,b){function c(a,b){var c=a.x-b.x,d=a.y-b.y;return c*c+d*d}function d(a,b,c){var d=b.x,e=b.y,f=c.x-d,g=c.y-e,h;if(f!==0||g!==0)h=((a.x-d)*f+(a.y-e)*g)/(f*f+g*g),h>1?(d=c.x,e=c.y):h>0&&(d+=f*h,e+=g*h);return f=a.x-d,g=a.y-e,f*f+g*g}function e(a,b){var d,e=a.length,f,g=a[0],h=[g];for(d=1;d<e;d++)f=a[d],c(f,g)>b&&(h.push(f),g=f);return g!==f&&h.push(f),h}function f(a,c){var e=a.length,f=typeof Uint8Array!=b+""?Uint8Array:Array,g=new f(e),h=0,i=e-1,j,k,l,m,n=[],o=[],p=[];g[h]=g[i]=1;while(i){k=0;for(j=h+1;j<i;j++)l=d(a[j],a[h],a[i]),l>k&&(m=j,k=l);k>c&&(g[m]=1,n.push(h),o.push(m),n.push(m),o.push(i)),h=n.pop(),i=o.pop()}for(j=0;j<e;j++)g[j]&&p.push(a[j]);return p}"use strict";var g=a;g.simplify=function(a,c,d){var g=c!==b?c*c:1;return d||(a=e(a,g)),a=f(a,g),a}})(window);
20
-
21
-
22
- /**
23
- Vector class. Allows us to simplify representation and manipulation of coordinate-pair
24
- representing shift against (0, 0)
25
-
26
- @public
27
- @class
28
- @param
29
- @returns {Type}
30
- */
31
- function Vector(x,y){
32
- this.x = x
33
- this.y = y
34
- this.reverse = function(){
35
- return new this.constructor(
36
- this.x * -1
37
- , this.y * -1
38
- )
39
- }
40
- this._length = null
41
- this.getLength = function(){
42
- if (!this._length){
43
- this._length = Math.sqrt( Math.pow(this.x, 2) + Math.pow(this.y, 2) )
44
- }
45
- return this._length
46
- }
47
-
48
- var polarity = function (e){
49
- return Math.round(e / Math.abs(e))
50
- }
51
- this.resizeTo = function(length){
52
- // proportionally changes x,y such that the hypotenuse (vector length) is = new length
53
- if (this.x === 0 && this.y === 0){
54
- this._length = 0
55
- } else if (this.x === 0){
56
- this._length = length
57
- this.y = length * polarity(this.y)
58
- } else if(this.y === 0){
59
- this._length = length
60
- this.x = length * polarity(this.x)
61
- } else {
62
- var proportion = Math.abs(this.y / this.x)
63
- , x = Math.sqrt(Math.pow(length, 2) / (1 + Math.pow(proportion, 2)))
64
- , y = proportion * x
65
- this._length = length
66
- this.x = x * polarity(this.x)
67
- this.y = y * polarity(this.y)
68
- }
69
- return this
70
- }
71
-
72
- /**
73
- * Calculates the angle between 'this' vector and another.
74
- * @public
75
- * @function
76
- * @returns {Number} The angle between the two vectors as measured in PI.
77
- */
78
- this.angleTo = function(vectorB) {
79
- var divisor = this.getLength() * vectorB.getLength()
80
- if (divisor === 0) {
81
- return 0
82
- } else {
83
- // JavaScript floating point math is screwed up.
84
- // because of it, the core of the formula can, on occasion, have values
85
- // over 1.0 and below -1.0.
86
- return Math.acos(
87
- Math.min(
88
- Math.max(
89
- ( this.x * vectorB.x + this.y * vectorB.y ) / divisor
90
- , -1.0
91
- )
92
- , 1.0
93
- )
94
- ) / Math.PI
95
- }
96
- }
97
- }
98
-
99
- function Point(x,y){
100
- this.x = x
101
- this.y = y
102
-
103
- this.getVectorToCoordinates = function (x, y) {
104
- return new Vector(x - this.x, y - this.y)
105
- }
106
- this.getVectorFromCoordinates = function (x, y) {
107
- return this.getVectorToCoordinates(x, y).reverse()
108
- }
109
- this.getVectorToPoint = function (point) {
110
- return new Vector(point.x - this.x, point.y - this.y)
111
- }
112
- this.getVectorFromPoint = function (point) {
113
- return this.getVectorToPoint(point).reverse()
114
- }
115
- }
116
-
117
- /**
118
- Allows one to round a number to arbitrary precision.
119
- Math.round() rounds to whole only.
120
- Number.toFixed(precision) returns a string.
121
- I need float to float, but with arbitrary precision, hence:
122
-
123
- @public
124
- @function
125
- @param number {Number}
126
- @param position {Number} number of digits right of decimal point to keep. If negative, rounding to the left of decimal.
127
- @returns {Type}
128
- */
129
- function round (number, position){
130
- var tmp = Math.pow(10, position)
131
- return Math.round( number * tmp ) / tmp
132
- }
133
-
134
- // /**
135
- // * This is a simple, points-to-lines (not curves) renderer.
136
- // * Keeping it around so we can activate it from time to time and see
137
- // * if smoothing logic is off much.
138
- // * @public
139
- // * @function
140
- // * @returns {String} Like so "l 1 2 3 5' with stroke as long line chain.
141
- // */
142
- // function compressstroke(stroke, shiftx, shifty){
143
- // // we combine strokes data into string like this:
144
- // // 'M 53 7 l 1 2 3 4 -5 -6 5 -6'
145
- // // see SVG documentation for Path element's 'd' argument.
146
- // var lastx = stroke.x[0]
147
- // , lasty = stroke.y[0]
148
- // , i
149
- // , l = stroke.x.length
150
- // , answer = ['M', lastx - shiftx, lasty - shifty, 'l']
151
- //
152
- // if (l === 1){
153
- // // meaning this was just a DOT, not a stroke.
154
- // // instead of creating a circle, we just create a short line
155
- // answer.concat(1, -1)
156
- // } else {
157
- // for(i = 1; i < l; i++){
158
- // answer = answer.concat(stroke.x[i] - lastx, stroke.y[i] - lasty)
159
- // lastx = stroke.x[i]
160
- // lasty = stroke.y[i]
161
- // }
162
- // }
163
- // return answer.join(' ')
164
- // }
165
-
166
- function segmentToCurve(stroke, positionInStroke, lineCurveThreshold){
167
- 'use strict'
168
- // long lines (ones with many pixels between them) do not look good when they are part of a large curvy stroke.
169
- // You know, the jaggedy crocodile spine instead of a pretty, smooth curve. Yuck!
170
- // We want to approximate pretty curves in-place of those ugly lines.
171
- // To approximate a very nice curve we need to know the direction of line before and after.
172
- // Hence, on long lines we actually wait for another point beyond it to come back from
173
- // mousemoved before we draw this curve.
174
-
175
- // So for "prior curve" to be calc'ed we need 4 points
176
- // A, B, C, D (we are on D now, A is 3 points in the past.)
177
- // and 3 lines:
178
- // pre-line (from points A to B),
179
- // this line (from points B to C), (we call it "this" because if it was not yet, it's the only one we can draw for sure.)
180
- // post-line (from points C to D) (even through D point is 'current' we don't know how we can draw it yet)
181
- //
182
- // Well, actually, we don't need to *know* the point A, just the vector A->B
183
-
184
- // Again, we can only derive curve between points positionInStroke-1 and positionInStroke
185
- // Thus, since we can only draw a line if we know one point ahead of it, we need to shift our focus one point ahead.
186
- positionInStroke += 1
187
- // Let's hope the code that calls us knows we do that and does not call us with positionInStroke = index of last point.
188
-
189
- var Cpoint = new Point(stroke.x[positionInStroke-1], stroke.y[positionInStroke-1])
190
- , Dpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke])
191
- , CDvector = Cpoint.getVectorToPoint(Dpoint)
192
- // Again, we have a chance here to draw only PREVIOUS line segment - BC
193
-
194
- // So, let's start with BC curve.
195
- // if there is only 2 points in stroke array (C, D), we don't have "history" long enough to have point B, let alone point A.
196
- // so positionInStroke should start with 2, ie
197
- // we are here when there are at least 3 points in stroke array.
198
- var Bpoint = new Point(stroke.x[positionInStroke-2], stroke.y[positionInStroke-2])
199
- , BCvector = Bpoint.getVectorToPoint(Cpoint)
200
- , ABvector
201
- , rounding = 2
202
-
203
- if ( BCvector.getLength() > lineCurveThreshold ){
204
- // Yey! Pretty curves, here we come!
205
- if(positionInStroke > 2) {
206
- ABvector = (new Point(stroke.x[positionInStroke-3], stroke.y[positionInStroke-3])).getVectorToPoint(Bpoint)
207
- } else {
208
- ABvector = new Vector(0,0)
209
- }
210
- var minlenfraction = 0.05
211
- , maxlen = BCvector.getLength() * 0.35
212
- , ABCangle = BCvector.angleTo(ABvector.reverse())
213
- , BCDangle = CDvector.angleTo(BCvector.reverse())
214
- , BtoCP1vector = new Vector(ABvector.x + BCvector.x, ABvector.y + BCvector.y).resizeTo(
215
- Math.max(minlenfraction, ABCangle) * maxlen
216
- )
217
- , CtoCP2vector = (new Vector(BCvector.x + CDvector.x, BCvector.y + CDvector.y)).reverse().resizeTo(
218
- Math.max(minlenfraction, BCDangle) * maxlen
219
- )
220
- , BtoCP2vector = new Vector(BCvector.x + CtoCP2vector.x, BCvector.y + CtoCP2vector.y)
221
-
222
- // returing curve for BC segment
223
- // all coords are vectors against Bpoint
224
- return [
225
- 'c' // bezier curve
226
- , round( BtoCP1vector.x, rounding )
227
- , round( BtoCP1vector.y, rounding )
228
- , round( BtoCP2vector.x, rounding )
229
- , round( BtoCP2vector.y, rounding )
230
- , round( BCvector.x, rounding )
231
- , round( BCvector.y, rounding )
232
- ]
233
- } else {
234
- return [
235
- 'l' // line
236
- , round( BCvector.x, rounding )
237
- , round( BCvector.y, rounding )
238
- ]
239
- }
240
- }
241
-
242
- function lastSegmentToCurve(stroke, lineCurveThreshold){
243
- 'use strict'
244
- // Here we tidy up things left unfinished
245
-
246
- // What's left unfinished there is the curve between the last points
247
- // in the stroke
248
- // We can also be called when there is only one point in the stroke (meaning, the
249
- // stroke was just a dot), in which case there is nothing for us to do.
250
-
251
- // So for "this curve" to be calc'ed we need 3 points
252
- // A, B, C
253
- // and 2 lines:
254
- // pre-line (from points A to B),
255
- // this line (from points B to C)
256
- // Well, actually, we don't need to *know* the point A, just the vector A->B
257
- // so, we really need points B, C and AB vector.
258
- var positionInStroke = stroke.x.length - 1
259
-
260
- // there must be at least 2 points in the stroke.for us to work. Hope calling code checks for that.
261
- var Cpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke])
262
- , Bpoint = new Point(stroke.x[positionInStroke-1], stroke.y[positionInStroke-1])
263
- , BCvector = Bpoint.getVectorToPoint(Cpoint)
264
- , rounding = 2
265
-
266
- if (positionInStroke > 1 && BCvector.getLength() > lineCurveThreshold){
267
- // we have at least 3 elems in stroke
268
- var ABvector = (new Point(stroke.x[positionInStroke-2], stroke.y[positionInStroke-2])).getVectorToPoint(Bpoint)
269
- , ABCangle = BCvector.angleTo(ABvector.reverse())
270
- , minlenfraction = 0.05
271
- , maxlen = BCvector.getLength() * 0.35
272
- , BtoCP1vector = new Vector(ABvector.x + BCvector.x, ABvector.y + BCvector.y).resizeTo(
273
- Math.max(minlenfraction, ABCangle) * maxlen
274
- )
275
-
276
- return [
277
- 'c' // bezier curve
278
- , round( BtoCP1vector.x, rounding )
279
- , round( BtoCP1vector.y, rounding )
280
- , round( BCvector.x, rounding ) // CP2 is same as Cpoint
281
- , round( BCvector.y, rounding ) // CP2 is same as Cpoint
282
- , round( BCvector.x, rounding )
283
- , round( BCvector.y, rounding )
284
- ]
285
- } else {
286
- // Since there is no AB leg, there is no curve to draw. This is just line
287
- return [
288
- 'l' // simple line
289
- , round( BCvector.x, rounding )
290
- , round( BCvector.y, rounding )
291
- ]
292
- }
293
- }
294
-
295
- function addstroke(stroke, shiftx, shifty){
296
- 'use strict'
297
- // we combine strokes data into string like this:
298
- // 'M 53 7 l 1 2 c 3 4 -5 -6 5 -6'
299
- // see SVG documentation for Path element's 'd' argument.
300
- var lines = [
301
- 'M' // move to
302
- , round( (stroke.x[0] - shiftx), 2)
303
- , round( (stroke.y[0] - shifty), 2)
304
- ]
305
- // processing all points but first and last.
306
- , i = 1 // index zero item in there is STARTING point. we already extracted it.
307
- , l = stroke.x.length - 1 // this is a trick. We are leaving last point coordinates for separate processing.
308
- , lineCurveThreshold = 1
309
-
310
- for(; i < l; i++){
311
- lines.push.apply(lines, segmentToCurve(stroke, i, lineCurveThreshold))
312
- }
313
- if (l > 0 /* effectively more than 1, since we "-1" above */){
314
- lines.push.apply(lines, lastSegmentToCurve(stroke, i, lineCurveThreshold))
315
- } else if (l === 0){
316
- // meaning we only have ONE point in the stroke (and otherwise refer to the stroke as "dot")
317
- lines.push.apply(lines, ['l' , 1, 1])
318
- }
319
- return lines.join(' ')
320
- }
321
-
322
- function simplifystroke(stroke){
323
- var d = []
324
- , newstroke = {'x':[], 'y':[]}
325
- , i, l
326
-
327
- for (i = 0, l = stroke.x.length; i < l; i++){
328
- d.push({'x':stroke.x[i], 'y':stroke.y[i]})
329
- }
330
- d = simplify(d, 0.7, true)
331
- for (i = 0, l = d.length; i < l; i++){
332
- newstroke.x.push(d[i].x)
333
- newstroke.y.push(d[i].y)
334
- }
335
- return newstroke
336
- }
337
-
338
- // generate SVG style from settings
339
- function styleFromSettings(settings){
340
- var styles = [];
341
- var meta = [
342
- // ["style attr", "key in settings", "default value"]
343
- ["fill", undefined, "none"],
344
- ["stroke", "color", "#000000"],
345
- ["stroke-width", "lineWidth", 2],
346
- ["stroke-linecap", undefined, "round"],
347
- ["stroke-linejoin", undefined, "round"]
348
- ];
349
- for (var i = meta.length - 1; i >= 0; i--){
350
- var attr = meta[i][0]
351
- , key = meta[i][1]
352
- , defaultVal = meta[i][2];
353
- styles.push(attr + '="' + (key in settings && settings[key] ? settings[key] : defaultVal) + '"');
354
- }
355
- return styles.join(' ');
356
- }
357
-
358
- function compressstrokes(data, settings){
359
- 'use strict'
360
- var answer = [
361
- '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'
362
- , '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'
363
- ]
364
- , i , l = data.length
365
- , stroke
366
- , xlimits = []
367
- , ylimits = []
368
- , sizex = 0
369
- , sizey = 0
370
- , shiftx = 0
371
- , shifty = 0
372
- , minx, maxx, miny, maxy, padding = 1
373
- , simplifieddata = []
374
-
375
- if(l !== 0){
376
- for(i = 0; i < l; i++){
377
- stroke = simplifystroke( data[i] )
378
- simplifieddata.push(stroke)
379
- xlimits = xlimits.concat(stroke.x)
380
- ylimits = ylimits.concat(stroke.y)
381
- }
382
-
383
- minx = Math.min.apply(null, xlimits) - padding
384
- maxx = Math.max.apply(null, xlimits) + padding
385
- miny = Math.min.apply(null, ylimits) - padding
386
- maxy = Math.max.apply(null, ylimits) + padding
387
- shiftx = minx < 0? 0 : minx
388
- shifty = miny < 0? 0 : miny
389
- sizex = maxx - minx
390
- sizey = maxy - miny
391
- }
392
-
393
- answer.push(
394
- '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="'+
395
- sizex.toString() +
396
- '" height="'+
397
- sizey.toString() +
398
- '">'
399
- )
400
-
401
- // // This is a nice idea: use style declaration on top, and mark the lines with 'class="f"'
402
- // // thus saving space in svg...
403
- // // alas, many SVG renderers don't understand "class" and render the strokes in default "fill = black, no stroke" style. Ugh!!!
404
- // // TODO: Rewrite ImageMagic / GraphicsMagic, InkScape, http://svg.codeplex.com/ to support style + class. until then, we hardcode the stroke style within the path.
405
- // answer.push(
406
- // '<style type="text/css"><![CDATA[.f {fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}]]></style>'
407
- // )
408
-
409
- // // This set is accompaniment to "simple line renderer" - compressstroke
410
- // answer.push(
411
- // '<style type="text/css"><![CDATA[.t {fill:none;stroke:#FF0000;stroke-width:2}]]></style>'
412
- // )
413
- // for(i = 0; i < l; i++){
414
- // stroke = data[i]
415
- // // This one is accompaniment to "simple line renderer"
416
- // answer.push('<path class="t" d="'+ compressstroke(stroke, shiftx, shifty) +'"/>')
417
- // }
418
-
419
- for(i = 0, l = simplifieddata.length; i < l; i++){
420
- stroke = simplifieddata[i]
421
- answer.push('<path ' + styleFromSettings(settings) + ' d="'+ addstroke(stroke, shiftx, shifty) + '"/>')
422
- }
423
- answer.push('</svg>')
424
- return answer.join('')
425
- }
426
-
427
- if (typeof btoa !== 'function')
428
- {
429
- var btoa = function(data) {
430
- /** @preserve
431
- base64 encoder
432
- MIT, GPL
433
- http://phpjs.org/functions/base64_encode
434
- + original by: Tyler Akins (http://rumkin.com)
435
- + improved by: Bayron Guevara
436
- + improved by: Thunder.m
437
- + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
438
- + bugfixed by: Pellentesque Malesuada
439
- + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
440
- + improved by: Rafal Kukawski (http://kukawski.pl)
441
-
442
- */
443
- var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
444
- , b64a = b64.split('')
445
- , o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
446
- ac = 0,
447
- enc = "",
448
- tmp_arr = [];
449
-
450
- do { // pack three octets into four hexets
451
- o1 = data.charCodeAt(i++);
452
- o2 = data.charCodeAt(i++);
453
- o3 = data.charCodeAt(i++);
454
-
455
- bits = o1 << 16 | o2 << 8 | o3;
456
-
457
- h1 = bits >> 18 & 0x3f;
458
- h2 = bits >> 12 & 0x3f;
459
- h3 = bits >> 6 & 0x3f;
460
- h4 = bits & 0x3f;
461
-
462
- // use hexets to index into b64, and append result to encoded string
463
- tmp_arr[ac++] = b64a[h1] + b64a[h2] + b64a[h3] + b64a[h4];
464
- } while (i < data.length);
465
-
466
- enc = tmp_arr.join('');
467
- var r = data.length % 3;
468
- return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
469
-
470
- // end of base64 encoder MIT, GPL
471
- }
472
- }
473
-
474
- var unencodedmime = 'image/svg+xml'
475
- function getUnencodedSVG(data, settings){
476
- return [unencodedmime , compressstrokes(data, settings)];
477
- }
478
-
479
- var base64encodedmime = 'image/svg+xml;base64'
480
- function getBase64encodedSVG(data, settings){
481
-
482
- return [base64encodedmime , btoa( compressstrokes(data, settings) )];
483
- }
484
-
485
- function Initializer($){
486
- var mothership = $.fn['jSignature']
487
- mothership(
488
- 'addPlugin'
489
- ,'export'
490
- ,'svg' // alias
491
- ,getUnencodedSVG
492
- )
493
- mothership(
494
- 'addPlugin'
495
- ,'export'
496
- ,unencodedmime // full name
497
- ,getUnencodedSVG
498
- )
499
- mothership(
500
- 'addPlugin'
501
- ,'export'
502
- ,'svgbase64' // alias
503
- ,getBase64encodedSVG
504
- )
505
- mothership(
506
- 'addPlugin'
507
- ,'export'
508
- ,base64encodedmime // full name
509
- ,getBase64encodedSVG
510
- )
511
- }
512
-
513
- // //Because plugins are minified together with jSignature, multiple defines per (minified) file blow up and dont make sense
514
- // //Need to revisit this later.
515
-
516
- if(typeof $ === 'undefined') {throw new Error("We need jQuery for some of the functionality. jQuery is not detected. Failing to initialize...")}
517
- Initializer($)
518
-
1
+ /** @license
2
+ jSignature v2 SVG export plugin.
3
+
4
+ */
5
+ /**
6
+ Copyright (c) 2012 Willow Systems Corp http://willow-systems.com
7
+ MIT License <http://www.opensource.org/licenses/mit-license.php>
8
+ */
9
+
10
+ ;(function(){
11
+ 'use strict'
12
+
13
+ /** @preserve
14
+ Simplify.js BSD
15
+ (c) 2012, Vladimir Agafonkin
16
+ mourner.github.com/simplify-js
17
+
18
+ */
19
+ ;(function(a,b){function c(a,b){var c=a.x-b.x,d=a.y-b.y;return c*c+d*d}function d(a,b,c){var d=b.x,e=b.y,f=c.x-d,g=c.y-e,h;if(f!==0||g!==0)h=((a.x-d)*f+(a.y-e)*g)/(f*f+g*g),h>1?(d=c.x,e=c.y):h>0&&(d+=f*h,e+=g*h);return f=a.x-d,g=a.y-e,f*f+g*g}function e(a,b){var d,e=a.length,f,g=a[0],h=[g];for(d=1;d<e;d++)f=a[d],c(f,g)>b&&(h.push(f),g=f);return g!==f&&h.push(f),h}function f(a,c){var e=a.length,f=typeof Uint8Array!=b+""?Uint8Array:Array,g=new f(e),h=0,i=e-1,j,k,l,m,n=[],o=[],p=[];g[h]=g[i]=1;while(i){k=0;for(j=h+1;j<i;j++)l=d(a[j],a[h],a[i]),l>k&&(m=j,k=l);k>c&&(g[m]=1,n.push(h),o.push(m),n.push(m),o.push(i)),h=n.pop(),i=o.pop()}for(j=0;j<e;j++)g[j]&&p.push(a[j]);return p}"use strict";var g=a;g.simplify=function(a,c,d){var g=c!==b?c*c:1;return d||(a=e(a,g)),a=f(a,g),a}})(window);
20
+
21
+
22
+ /**
23
+ Vector class. Allows us to simplify representation and manipulation of coordinate-pair
24
+ representing shift against (0, 0)
25
+
26
+ @public
27
+ @class
28
+ @param
29
+ @returns {Type}
30
+ */
31
+ function Vector(x,y){
32
+ this.x = x
33
+ this.y = y
34
+ this.reverse = function(){
35
+ return new this.constructor(
36
+ this.x * -1
37
+ , this.y * -1
38
+ )
39
+ }
40
+ this._length = null
41
+ this.getLength = function(){
42
+ if (!this._length){
43
+ this._length = Math.sqrt( Math.pow(this.x, 2) + Math.pow(this.y, 2) )
44
+ }
45
+ return this._length
46
+ }
47
+
48
+ var polarity = function (e){
49
+ return Math.round(e / Math.abs(e))
50
+ }
51
+ this.resizeTo = function(length){
52
+ // proportionally changes x,y such that the hypotenuse (vector length) is = new length
53
+ if (this.x === 0 && this.y === 0){
54
+ this._length = 0
55
+ } else if (this.x === 0){
56
+ this._length = length
57
+ this.y = length * polarity(this.y)
58
+ } else if(this.y === 0){
59
+ this._length = length
60
+ this.x = length * polarity(this.x)
61
+ } else {
62
+ var proportion = Math.abs(this.y / this.x)
63
+ , x = Math.sqrt(Math.pow(length, 2) / (1 + Math.pow(proportion, 2)))
64
+ , y = proportion * x
65
+ this._length = length
66
+ this.x = x * polarity(this.x)
67
+ this.y = y * polarity(this.y)
68
+ }
69
+ return this
70
+ }
71
+
72
+ /**
73
+ * Calculates the angle between 'this' vector and another.
74
+ * @public
75
+ * @function
76
+ * @returns {Number} The angle between the two vectors as measured in PI.
77
+ */
78
+ this.angleTo = function(vectorB) {
79
+ var divisor = this.getLength() * vectorB.getLength()
80
+ if (divisor === 0) {
81
+ return 0
82
+ } else {
83
+ // JavaScript floating point math is screwed up.
84
+ // because of it, the core of the formula can, on occasion, have values
85
+ // over 1.0 and below -1.0.
86
+ return Math.acos(
87
+ Math.min(
88
+ Math.max(
89
+ ( this.x * vectorB.x + this.y * vectorB.y ) / divisor
90
+ , -1.0
91
+ )
92
+ , 1.0
93
+ )
94
+ ) / Math.PI
95
+ }
96
+ }
97
+ }
98
+
99
+ function Point(x,y){
100
+ this.x = x
101
+ this.y = y
102
+
103
+ this.getVectorToCoordinates = function (x, y) {
104
+ return new Vector(x - this.x, y - this.y)
105
+ }
106
+ this.getVectorFromCoordinates = function (x, y) {
107
+ return this.getVectorToCoordinates(x, y).reverse()
108
+ }
109
+ this.getVectorToPoint = function (point) {
110
+ return new Vector(point.x - this.x, point.y - this.y)
111
+ }
112
+ this.getVectorFromPoint = function (point) {
113
+ return this.getVectorToPoint(point).reverse()
114
+ }
115
+ }
116
+
117
+ /**
118
+ Allows one to round a number to arbitrary precision.
119
+ Math.round() rounds to whole only.
120
+ Number.toFixed(precision) returns a string.
121
+ I need float to float, but with arbitrary precision, hence:
122
+
123
+ @public
124
+ @function
125
+ @param number {Number}
126
+ @param position {Number} number of digits right of decimal point to keep. If negative, rounding to the left of decimal.
127
+ @returns {Type}
128
+ */
129
+ function round (number, position){
130
+ var tmp = Math.pow(10, position)
131
+ return Math.round( number * tmp ) / tmp
132
+ }
133
+
134
+ // /**
135
+ // * This is a simple, points-to-lines (not curves) renderer.
136
+ // * Keeping it around so we can activate it from time to time and see
137
+ // * if smoothing logic is off much.
138
+ // * @public
139
+ // * @function
140
+ // * @returns {String} Like so "l 1 2 3 5' with stroke as long line chain.
141
+ // */
142
+ // function compressstroke(stroke, shiftx, shifty){
143
+ // // we combine strokes data into string like this:
144
+ // // 'M 53 7 l 1 2 3 4 -5 -6 5 -6'
145
+ // // see SVG documentation for Path element's 'd' argument.
146
+ // var lastx = stroke.x[0]
147
+ // , lasty = stroke.y[0]
148
+ // , i
149
+ // , l = stroke.x.length
150
+ // , answer = ['M', lastx - shiftx, lasty - shifty, 'l']
151
+ //
152
+ // if (l === 1){
153
+ // // meaning this was just a DOT, not a stroke.
154
+ // // instead of creating a circle, we just create a short line
155
+ // answer.concat(1, -1)
156
+ // } else {
157
+ // for(i = 1; i < l; i++){
158
+ // answer = answer.concat(stroke.x[i] - lastx, stroke.y[i] - lasty)
159
+ // lastx = stroke.x[i]
160
+ // lasty = stroke.y[i]
161
+ // }
162
+ // }
163
+ // return answer.join(' ')
164
+ // }
165
+
166
+ function segmentToCurve(stroke, positionInStroke, lineCurveThreshold){
167
+ 'use strict'
168
+ // long lines (ones with many pixels between them) do not look good when they are part of a large curvy stroke.
169
+ // You know, the jaggedy crocodile spine instead of a pretty, smooth curve. Yuck!
170
+ // We want to approximate pretty curves in-place of those ugly lines.
171
+ // To approximate a very nice curve we need to know the direction of line before and after.
172
+ // Hence, on long lines we actually wait for another point beyond it to come back from
173
+ // mousemoved before we draw this curve.
174
+
175
+ // So for "prior curve" to be calc'ed we need 4 points
176
+ // A, B, C, D (we are on D now, A is 3 points in the past.)
177
+ // and 3 lines:
178
+ // pre-line (from points A to B),
179
+ // this line (from points B to C), (we call it "this" because if it was not yet, it's the only one we can draw for sure.)
180
+ // post-line (from points C to D) (even through D point is 'current' we don't know how we can draw it yet)
181
+ //
182
+ // Well, actually, we don't need to *know* the point A, just the vector A->B
183
+
184
+ // Again, we can only derive curve between points positionInStroke-1 and positionInStroke
185
+ // Thus, since we can only draw a line if we know one point ahead of it, we need to shift our focus one point ahead.
186
+ positionInStroke += 1
187
+ // Let's hope the code that calls us knows we do that and does not call us with positionInStroke = index of last point.
188
+
189
+ var Cpoint = new Point(stroke.x[positionInStroke-1], stroke.y[positionInStroke-1])
190
+ , Dpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke])
191
+ , CDvector = Cpoint.getVectorToPoint(Dpoint)
192
+ // Again, we have a chance here to draw only PREVIOUS line segment - BC
193
+
194
+ // So, let's start with BC curve.
195
+ // if there is only 2 points in stroke array (C, D), we don't have "history" long enough to have point B, let alone point A.
196
+ // so positionInStroke should start with 2, ie
197
+ // we are here when there are at least 3 points in stroke array.
198
+ var Bpoint = new Point(stroke.x[positionInStroke-2], stroke.y[positionInStroke-2])
199
+ , BCvector = Bpoint.getVectorToPoint(Cpoint)
200
+ , ABvector
201
+ , rounding = 2
202
+
203
+ if ( BCvector.getLength() > lineCurveThreshold ){
204
+ // Yey! Pretty curves, here we come!
205
+ if(positionInStroke > 2) {
206
+ ABvector = (new Point(stroke.x[positionInStroke-3], stroke.y[positionInStroke-3])).getVectorToPoint(Bpoint)
207
+ } else {
208
+ ABvector = new Vector(0,0)
209
+ }
210
+ var minlenfraction = 0.05
211
+ , maxlen = BCvector.getLength() * 0.35
212
+ , ABCangle = BCvector.angleTo(ABvector.reverse())
213
+ , BCDangle = CDvector.angleTo(BCvector.reverse())
214
+ , BtoCP1vector = new Vector(ABvector.x + BCvector.x, ABvector.y + BCvector.y).resizeTo(
215
+ Math.max(minlenfraction, ABCangle) * maxlen
216
+ )
217
+ , CtoCP2vector = (new Vector(BCvector.x + CDvector.x, BCvector.y + CDvector.y)).reverse().resizeTo(
218
+ Math.max(minlenfraction, BCDangle) * maxlen
219
+ )
220
+ , BtoCP2vector = new Vector(BCvector.x + CtoCP2vector.x, BCvector.y + CtoCP2vector.y)
221
+
222
+ // returing curve for BC segment
223
+ // all coords are vectors against Bpoint
224
+ return [
225
+ 'c' // bezier curve
226
+ , round( BtoCP1vector.x, rounding )
227
+ , round( BtoCP1vector.y, rounding )
228
+ , round( BtoCP2vector.x, rounding )
229
+ , round( BtoCP2vector.y, rounding )
230
+ , round( BCvector.x, rounding )
231
+ , round( BCvector.y, rounding )
232
+ ]
233
+ } else {
234
+ return [
235
+ 'l' // line
236
+ , round( BCvector.x, rounding )
237
+ , round( BCvector.y, rounding )
238
+ ]
239
+ }
240
+ }
241
+
242
+ function lastSegmentToCurve(stroke, lineCurveThreshold){
243
+ 'use strict'
244
+ // Here we tidy up things left unfinished
245
+
246
+ // What's left unfinished there is the curve between the last points
247
+ // in the stroke
248
+ // We can also be called when there is only one point in the stroke (meaning, the
249
+ // stroke was just a dot), in which case there is nothing for us to do.
250
+
251
+ // So for "this curve" to be calc'ed we need 3 points
252
+ // A, B, C
253
+ // and 2 lines:
254
+ // pre-line (from points A to B),
255
+ // this line (from points B to C)
256
+ // Well, actually, we don't need to *know* the point A, just the vector A->B
257
+ // so, we really need points B, C and AB vector.
258
+ var positionInStroke = stroke.x.length - 1
259
+
260
+ // there must be at least 2 points in the stroke.for us to work. Hope calling code checks for that.
261
+ var Cpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke])
262
+ , Bpoint = new Point(stroke.x[positionInStroke-1], stroke.y[positionInStroke-1])
263
+ , BCvector = Bpoint.getVectorToPoint(Cpoint)
264
+ , rounding = 2
265
+
266
+ if (positionInStroke > 1 && BCvector.getLength() > lineCurveThreshold){
267
+ // we have at least 3 elems in stroke
268
+ var ABvector = (new Point(stroke.x[positionInStroke-2], stroke.y[positionInStroke-2])).getVectorToPoint(Bpoint)
269
+ , ABCangle = BCvector.angleTo(ABvector.reverse())
270
+ , minlenfraction = 0.05
271
+ , maxlen = BCvector.getLength() * 0.35
272
+ , BtoCP1vector = new Vector(ABvector.x + BCvector.x, ABvector.y + BCvector.y).resizeTo(
273
+ Math.max(minlenfraction, ABCangle) * maxlen
274
+ )
275
+
276
+ return [
277
+ 'c' // bezier curve
278
+ , round( BtoCP1vector.x, rounding )
279
+ , round( BtoCP1vector.y, rounding )
280
+ , round( BCvector.x, rounding ) // CP2 is same as Cpoint
281
+ , round( BCvector.y, rounding ) // CP2 is same as Cpoint
282
+ , round( BCvector.x, rounding )
283
+ , round( BCvector.y, rounding )
284
+ ]
285
+ } else {
286
+ // Since there is no AB leg, there is no curve to draw. This is just line
287
+ return [
288
+ 'l' // simple line
289
+ , round( BCvector.x, rounding )
290
+ , round( BCvector.y, rounding )
291
+ ]
292
+ }
293
+ }
294
+
295
+ function addstroke(stroke, shiftx, shifty){
296
+ 'use strict'
297
+ // we combine strokes data into string like this:
298
+ // 'M 53 7 l 1 2 c 3 4 -5 -6 5 -6'
299
+ // see SVG documentation for Path element's 'd' argument.
300
+ var lines = [
301
+ 'M' // move to
302
+ , round( (stroke.x[0] - shiftx), 2)
303
+ , round( (stroke.y[0] - shifty), 2)
304
+ ]
305
+ // processing all points but first and last.
306
+ , i = 1 // index zero item in there is STARTING point. we already extracted it.
307
+ , l = stroke.x.length - 1 // this is a trick. We are leaving last point coordinates for separate processing.
308
+ , lineCurveThreshold = 1
309
+
310
+ for(; i < l; i++){
311
+ lines.push.apply(lines, segmentToCurve(stroke, i, lineCurveThreshold))
312
+ }
313
+ if (l > 0 /* effectively more than 1, since we "-1" above */){
314
+ lines.push.apply(lines, lastSegmentToCurve(stroke, i, lineCurveThreshold))
315
+ } else if (l === 0){
316
+ // meaning we only have ONE point in the stroke (and otherwise refer to the stroke as "dot")
317
+ lines.push.apply(lines, ['l' , 1, 1])
318
+ }
319
+ return lines.join(' ')
320
+ }
321
+
322
+ function simplifystroke(stroke){
323
+ var d = []
324
+ , newstroke = {'x':[], 'y':[]}
325
+ , i, l
326
+
327
+ for (i = 0, l = stroke.x.length; i < l; i++){
328
+ d.push({'x':stroke.x[i], 'y':stroke.y[i]})
329
+ }
330
+ d = simplify(d, 0.7, true)
331
+ for (i = 0, l = d.length; i < l; i++){
332
+ newstroke.x.push(d[i].x)
333
+ newstroke.y.push(d[i].y)
334
+ }
335
+ return newstroke
336
+ }
337
+
338
+ // generate SVG style from settings
339
+ function styleFromSettings(settings){
340
+ var styles = [];
341
+ var meta = [
342
+ // ["style attr", "key in settings", "default value"]
343
+ ["fill", undefined, "none"],
344
+ ["stroke", "color", "#000000"],
345
+ ["stroke-width", "lineWidth", 2],
346
+ ["stroke-linecap", undefined, "round"],
347
+ ["stroke-linejoin", undefined, "round"]
348
+ ];
349
+ for (var i = meta.length - 1; i >= 0; i--){
350
+ var attr = meta[i][0]
351
+ , key = meta[i][1]
352
+ , defaultVal = meta[i][2];
353
+ styles.push(attr + '="' + (key in settings && settings[key] ? settings[key] : defaultVal) + '"');
354
+ }
355
+ return styles.join(' ');
356
+ }
357
+
358
+ function compressstrokes(data, settings){
359
+ 'use strict'
360
+ var answer = [
361
+ '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'
362
+ , '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'
363
+ ]
364
+ , i , l = data.length
365
+ , stroke
366
+ , xlimits = []
367
+ , ylimits = []
368
+ , sizex = 0
369
+ , sizey = 0
370
+ , shiftx = 0
371
+ , shifty = 0
372
+ , minx, maxx, miny, maxy, padding = 1
373
+ , simplifieddata = []
374
+
375
+ if(l !== 0){
376
+ for(i = 0; i < l; i++){
377
+ stroke = simplifystroke( data[i] )
378
+ simplifieddata.push(stroke)
379
+ xlimits = xlimits.concat(stroke.x)
380
+ ylimits = ylimits.concat(stroke.y)
381
+ }
382
+
383
+ minx = Math.min.apply(null, xlimits) - padding
384
+ maxx = Math.max.apply(null, xlimits) + padding
385
+ miny = Math.min.apply(null, ylimits) - padding
386
+ maxy = Math.max.apply(null, ylimits) + padding
387
+ shiftx = minx < 0? 0 : minx
388
+ shifty = miny < 0? 0 : miny
389
+ sizex = maxx - minx
390
+ sizey = maxy - miny
391
+ }
392
+
393
+ answer.push(
394
+ '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="'+
395
+ sizex.toString() +
396
+ '" height="'+
397
+ sizey.toString() +
398
+ '">'
399
+ )
400
+
401
+ // // This is a nice idea: use style declaration on top, and mark the lines with 'class="f"'
402
+ // // thus saving space in svg...
403
+ // // alas, many SVG renderers don't understand "class" and render the strokes in default "fill = black, no stroke" style. Ugh!!!
404
+ // // TODO: Rewrite ImageMagic / GraphicsMagic, InkScape, http://svg.codeplex.com/ to support style + class. until then, we hardcode the stroke style within the path.
405
+ // answer.push(
406
+ // '<style type="text/css"><![CDATA[.f {fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}]]></style>'
407
+ // )
408
+
409
+ // // This set is accompaniment to "simple line renderer" - compressstroke
410
+ // answer.push(
411
+ // '<style type="text/css"><![CDATA[.t {fill:none;stroke:#FF0000;stroke-width:2}]]></style>'
412
+ // )
413
+ // for(i = 0; i < l; i++){
414
+ // stroke = data[i]
415
+ // // This one is accompaniment to "simple line renderer"
416
+ // answer.push('<path class="t" d="'+ compressstroke(stroke, shiftx, shifty) +'"/>')
417
+ // }
418
+
419
+ for(i = 0, l = simplifieddata.length; i < l; i++){
420
+ stroke = simplifieddata[i]
421
+ answer.push('<path ' + styleFromSettings(settings) + ' d="'+ addstroke(stroke, shiftx, shifty) + '"/>')
422
+ }
423
+ answer.push('</svg>')
424
+ return answer.join('')
425
+ }
426
+
427
+ if (typeof btoa !== 'function')
428
+ {
429
+ var btoa = function(data) {
430
+ /** @preserve
431
+ base64 encoder
432
+ MIT, GPL
433
+ http://phpjs.org/functions/base64_encode
434
+ + original by: Tyler Akins (http://rumkin.com)
435
+ + improved by: Bayron Guevara
436
+ + improved by: Thunder.m
437
+ + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
438
+ + bugfixed by: Pellentesque Malesuada
439
+ + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
440
+ + improved by: Rafal Kukawski (http://kukawski.pl)
441
+
442
+ */
443
+ var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
444
+ , b64a = b64.split('')
445
+ , o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
446
+ ac = 0,
447
+ enc = "",
448
+ tmp_arr = [];
449
+
450
+ do { // pack three octets into four hexets
451
+ o1 = data.charCodeAt(i++);
452
+ o2 = data.charCodeAt(i++);
453
+ o3 = data.charCodeAt(i++);
454
+
455
+ bits = o1 << 16 | o2 << 8 | o3;
456
+
457
+ h1 = bits >> 18 & 0x3f;
458
+ h2 = bits >> 12 & 0x3f;
459
+ h3 = bits >> 6 & 0x3f;
460
+ h4 = bits & 0x3f;
461
+
462
+ // use hexets to index into b64, and append result to encoded string
463
+ tmp_arr[ac++] = b64a[h1] + b64a[h2] + b64a[h3] + b64a[h4];
464
+ } while (i < data.length);
465
+
466
+ enc = tmp_arr.join('');
467
+ var r = data.length % 3;
468
+ return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
469
+
470
+ // end of base64 encoder MIT, GPL
471
+ }
472
+ }
473
+
474
+ var unencodedmime = 'image/svg+xml'
475
+ function getUnencodedSVG(data, settings){
476
+ return [unencodedmime , compressstrokes(data, settings)];
477
+ }
478
+
479
+ var base64encodedmime = 'image/svg+xml;base64'
480
+ function getBase64encodedSVG(data, settings){
481
+
482
+ return [base64encodedmime , btoa( compressstrokes(data, settings) )];
483
+ }
484
+
485
+ function Initializer($){
486
+ var mothership = $.fn['jSignature']
487
+ mothership(
488
+ 'addPlugin'
489
+ ,'export'
490
+ ,'svg' // alias
491
+ ,getUnencodedSVG
492
+ )
493
+ mothership(
494
+ 'addPlugin'
495
+ ,'export'
496
+ ,unencodedmime // full name
497
+ ,getUnencodedSVG
498
+ )
499
+ mothership(
500
+ 'addPlugin'
501
+ ,'export'
502
+ ,'svgbase64' // alias
503
+ ,getBase64encodedSVG
504
+ )
505
+ mothership(
506
+ 'addPlugin'
507
+ ,'export'
508
+ ,base64encodedmime // full name
509
+ ,getBase64encodedSVG
510
+ )
511
+ }
512
+
513
+ // //Because plugins are minified together with jSignature, multiple defines per (minified) file blow up and dont make sense
514
+ // //Need to revisit this later.
515
+
516
+ if(typeof $ === 'undefined') {throw new Error("We need jQuery for some of the functionality. jQuery is not detected. Failing to initialize...")}
517
+ Initializer($)
518
+
519
519
  })();