uview-plus 3.8.55 → 3.8.106

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 (229) hide show
  1. package/changelog.md +2147 -1828
  2. package/components/u-action-sheet/props.js +3 -1
  3. package/components/u-action-sheet/u-action-sheet.vue +22 -2
  4. package/components/u-album/props.js +3 -1
  5. package/components/u-alert/props.js +4 -2
  6. package/components/u-avatar/props.js +4 -1
  7. package/components/u-avatar-group/props.js +4 -1
  8. package/components/u-back-top/props.js +4 -1
  9. package/components/u-badge/props.js +4 -1
  10. package/components/u-barcode/u-barcode.vue +44 -15
  11. package/components/u-box/props.js +5 -2
  12. package/components/u-button/props.js +4 -1
  13. package/components/u-button/u-button.vue +2 -5
  14. package/components/u-button/vue.scss +3 -3
  15. package/components/u-calendar/calendar.js +8 -0
  16. package/components/u-calendar/props.js +43 -1
  17. package/components/u-calendar/u-calendar.vue +16 -0
  18. package/components/u-calendar-strip/props.js +3 -1
  19. package/components/u-canvas/u-canvas.vue +1028 -423
  20. package/components/u-car-keyboard/props.js +3 -1
  21. package/components/u-card/props.js +3 -1
  22. package/components/u-cell/props.js +4 -1
  23. package/components/u-cell/u-cell.vue +9 -1
  24. package/components/u-cell-group/props.js +4 -1
  25. package/components/u-checkbox/props.js +4 -1
  26. package/components/u-checkbox/u-checkbox.vue +7 -3
  27. package/components/u-checkbox-group/props.js +3 -1
  28. package/components/u-circle-progress/props.js +4 -1
  29. package/components/u-code/props.js +4 -1
  30. package/components/u-code-input/props.js +4 -1
  31. package/components/u-col/props.js +4 -1
  32. package/components/u-collapse/props.js +4 -1
  33. package/components/u-collapse-item/props.js +4 -1
  34. package/components/u-color-picker/u-color-picker.vue +1 -0
  35. package/components/u-column-notice/props.js +4 -1
  36. package/components/u-count-down/props.js +4 -1
  37. package/components/u-count-to/props.js +4 -1
  38. package/components/u-cropper/u-cropper.vue +95 -51
  39. package/components/u-datetime-picker/props.js +4 -1
  40. package/components/u-datetime-picker/u-datetime-picker.vue +53 -4
  41. package/components/u-divider/props.js +4 -1
  42. package/components/u-dragsort/u-dragsort.vue +57 -32
  43. package/components/u-dropdown/props.js +3 -1
  44. package/components/u-dropdown-item/props.js +3 -1
  45. package/components/u-empty/props.js +4 -1
  46. package/components/u-form/props.js +4 -1
  47. package/components/u-form-item/props.js +4 -1
  48. package/components/u-gap/props.js +4 -1
  49. package/components/u-grid/props.js +4 -1
  50. package/components/u-grid-item/props.js +4 -1
  51. package/components/u-guide/props.js +3 -1
  52. package/components/u-icon/props.js +4 -1
  53. package/components/u-icon/u-icon.vue +11 -2
  54. package/components/u-icon/upicon.ttf +0 -0
  55. package/components/u-icon/util.js +103 -10
  56. package/components/u-image/props.js +4 -1
  57. package/components/u-image/u-image.vue +280 -267
  58. package/components/u-index-anchor/props.js +4 -1
  59. package/components/u-index-item/props.js +2 -1
  60. package/components/u-index-item/u-index-item.vue +1 -1
  61. package/components/u-index-list/props.js +4 -1
  62. package/components/u-index-list/u-index-list.vue +1 -1
  63. package/components/u-input/props.js +3 -1
  64. package/components/u-keyboard/props.js +4 -1
  65. package/components/u-line/props.js +4 -1
  66. package/components/u-line-progress/props.js +6 -3
  67. package/components/u-link/props.js +4 -1
  68. package/components/u-list/props.js +4 -1
  69. package/components/u-list-item/props.js +4 -1
  70. package/components/u-loading-icon/props.js +4 -1
  71. package/components/u-loading-page/props.js +3 -1
  72. package/components/u-loadmore/props.js +4 -1
  73. package/components/u-markdown/u-markdown.vue +45 -3
  74. package/components/u-modal/props.js +4 -1
  75. package/components/u-navbar/props.js +4 -2
  76. package/components/u-navbar/u-navbar.vue +15 -9
  77. package/components/u-no-network/props.js +4 -1
  78. package/components/u-notice-bar/props.js +4 -1
  79. package/components/u-notify/props.js +4 -1
  80. package/components/u-novel-reader/content-normalizer.js +80 -0
  81. package/components/u-novel-reader/layout-engine.js +225 -0
  82. package/components/u-novel-reader/measure-adapter.js +69 -0
  83. package/components/u-novel-reader/novelReader.js +35 -0
  84. package/components/u-novel-reader/persistence.js +144 -0
  85. package/components/u-novel-reader/props.js +100 -0
  86. package/components/u-novel-reader/reader-catalog.vue +234 -0
  87. package/components/u-novel-reader/reader-content.vue +226 -0
  88. package/components/u-novel-reader/reader-core.js +151 -0
  89. package/components/u-novel-reader/reader-settings.vue +325 -0
  90. package/components/u-novel-reader/reader-toolbar.vue +313 -0
  91. package/components/u-novel-reader/theme-vars.scss +49 -0
  92. package/components/u-novel-reader/u-novel-reader.vue +836 -0
  93. package/components/u-number-box/props.js +4 -1
  94. package/components/u-number-box/u-number-box.vue +2 -2
  95. package/components/u-number-keyboard/props.js +4 -1
  96. package/components/u-overlay/props.js +4 -1
  97. package/components/u-pagination/u-pagination.vue +60 -39
  98. package/components/u-parse/props.js +4 -1
  99. package/components/u-picker/props.js +4 -1
  100. package/components/u-picker-column/props.js +3 -1
  101. package/components/u-popover/props.js +2 -1
  102. package/components/u-popup/props.js +4 -1
  103. package/components/u-poster/u-poster.vue +246 -214
  104. package/components/u-qrcode/qrcode.js +105 -97
  105. package/components/u-qrcode/u-qrcode.vue +242 -289
  106. package/components/u-radio/props.js +4 -1
  107. package/components/u-radio/u-radio.vue +7 -3
  108. package/components/u-radio-group/props.js +4 -1
  109. package/components/u-rate/props.js +4 -1
  110. package/components/u-read-more/props.js +4 -1
  111. package/components/u-row/props.js +4 -1
  112. package/components/u-row-notice/props.js +4 -1
  113. package/components/u-safe-bottom/props.js +2 -1
  114. package/components/u-scroll-list/props.js +4 -1
  115. package/components/u-scroll-list/scrollWxs.wxs +1 -1
  116. package/components/u-search/props.js +3 -1
  117. package/components/u-skeleton/props.js +4 -1
  118. package/components/u-slider/props.js +3 -1
  119. package/components/u-slider/u-slider.vue +71 -29
  120. package/components/u-status-bar/props.js +4 -1
  121. package/components/u-steps/props.js +4 -1
  122. package/components/u-steps-item/props.js +4 -1
  123. package/components/u-sticky/props.js +4 -1
  124. package/components/u-sticky/u-sticky.vue +11 -0
  125. package/components/u-subsection/props.js +3 -1
  126. package/components/u-swipe-action/props.js +4 -1
  127. package/components/u-swipe-action-item/index.wxs +43 -25
  128. package/components/u-swipe-action-item/nvue.js +9 -0
  129. package/components/u-swipe-action-item/other.js +32 -21
  130. package/components/u-swipe-action-item/props.js +9 -1
  131. package/components/u-swipe-action-item/swipeActionItem.js +1 -0
  132. package/components/u-swipe-action-item/u-swipe-action-item.vue +42 -4
  133. package/components/u-swiper/props.js +9 -1
  134. package/components/u-swiper/swiper.js +1 -0
  135. package/components/u-swiper/u-swiper.vue +2 -0
  136. package/components/u-swiper-indicator/props.js +4 -1
  137. package/components/u-switch/props.js +4 -1
  138. package/components/u-switch/u-switch.vue +1 -1
  139. package/components/u-tabbar/props.js +3 -1
  140. package/components/u-tabbar/u-tabbar.vue +2 -1
  141. package/components/u-tabbar-item/props.js +4 -1
  142. package/components/u-tabbar-item/u-tabbar-item.vue +64 -21
  143. package/components/u-table/props.js +3 -1
  144. package/components/u-table2/tableRow.vue +155 -69
  145. package/components/u-table2/u-table2.vue +327 -137
  146. package/components/u-tabs/props.js +4 -1
  147. package/components/u-tabs/u-tabs.vue +11 -8
  148. package/components/u-tabs-item/props.js +3 -1
  149. package/components/u-tabs-pro/u-tabs-pro.vue +212 -0
  150. package/components/u-tag/props.js +4 -1
  151. package/components/u-td/props.js +3 -1
  152. package/components/u-text/props.js +4 -1
  153. package/components/u-text/text.js +1 -1
  154. package/components/u-text/u-text.vue +18 -6
  155. package/components/u-textarea/props.js +3 -1
  156. package/components/u-textarea/u-textarea.vue +16 -5
  157. package/components/u-th/props.js +3 -1
  158. package/components/u-toolbar/props.js +4 -1
  159. package/components/u-tooltip/props.js +10 -2
  160. package/components/u-tooltip/tooltip.js +2 -1
  161. package/components/u-tooltip/u-tooltip.vue +31 -3
  162. package/components/u-tr/props.js +3 -1
  163. package/components/u-transition/nvue-ani-map.js +75 -68
  164. package/components/u-transition/props.js +4 -1
  165. package/components/u-transition/transitionMixin.js +164 -163
  166. package/components/u-upload/props.js +4 -1
  167. package/components/u-upload/u-upload.vue +48 -41
  168. package/components/u-waterfall/u-waterfall.vue +162 -110
  169. package/index.js +65 -8
  170. package/libs/config/config.js +1 -1
  171. package/libs/config/props.js +180 -204
  172. package/libs/css/components.scss +3 -0
  173. package/libs/function/index.js +66 -0
  174. package/libs/function/uni-api-shims.js +29 -0
  175. package/libs/i18n/index.js +71 -36
  176. package/libs/i18n/locale-packs.js +11 -0
  177. package/libs/i18n/locales/all.js +23 -0
  178. package/libs/i18n/locales/{de.json → de.js} +1 -1
  179. package/libs/i18n/locales/{en.json → en.js} +2 -2
  180. package/libs/i18n/locales/{es.json → es.js} +1 -1
  181. package/libs/i18n/locales/{fr.json → fr.js} +2 -2
  182. package/libs/i18n/locales/{ja.json → ja.js} +1 -1
  183. package/libs/i18n/locales/{ko.json → ko.js} +1 -1
  184. package/libs/i18n/locales/{ru.json → ru.js} +1 -1
  185. package/libs/i18n/locales/{th.json → th.js} +1 -1
  186. package/libs/i18n/locales/{zh-Hans.json → zh-Hans.js} +1 -1
  187. package/libs/i18n/locales/{zh-Hant.json → zh-Hant.js} +1 -1
  188. package/libs/mixin/mixin.js +18 -54
  189. package/libs/root/index.js +78 -5
  190. package/libs/root/page.js +7 -7
  191. package/libs/root/root.js +73 -3
  192. package/libs/util/app-nvue-webview-canvas.js +486 -0
  193. package/libs/util/gcanvas/bridge/bridge-weex.js +10 -7
  194. package/libs/util/gcanvas/context-2d/FillStyleLinearGradient.js +0 -0
  195. package/libs/util/gcanvas/context-2d/FillStylePattern.js +0 -0
  196. package/libs/util/gcanvas/context-2d/FillStyleRadialGradient.js +0 -0
  197. package/libs/util/gcanvas/context-2d/RenderingContext.js +0 -0
  198. package/libs/util/gcanvas/context-webgl/ActiveInfo.js +0 -0
  199. package/libs/util/gcanvas/context-webgl/Buffer.js +0 -0
  200. package/libs/util/gcanvas/context-webgl/Framebuffer.js +0 -0
  201. package/libs/util/gcanvas/context-webgl/GLenum.js +0 -0
  202. package/libs/util/gcanvas/context-webgl/GLmethod.js +0 -0
  203. package/libs/util/gcanvas/context-webgl/GLtype.js +0 -0
  204. package/libs/util/gcanvas/context-webgl/Program.js +0 -0
  205. package/libs/util/gcanvas/context-webgl/Renderbuffer.js +0 -0
  206. package/libs/util/gcanvas/context-webgl/RenderingContext.js +0 -0
  207. package/libs/util/gcanvas/context-webgl/Shader.js +0 -0
  208. package/libs/util/gcanvas/context-webgl/ShaderPrecisionFormat.js +0 -0
  209. package/libs/util/gcanvas/context-webgl/Texture.js +0 -0
  210. package/libs/util/gcanvas/context-webgl/UniformLocation.js +0 -0
  211. package/libs/util/gcanvas/context-webgl/classUtils.js +0 -0
  212. package/libs/util/gcanvas/env/canvas.js +0 -0
  213. package/libs/util/gcanvas/env/image.js +0 -0
  214. package/libs/util/gcanvas/env/tool.js +0 -0
  215. package/libs/util/gcanvas/index.js +3 -3
  216. package/package.json +4 -5
  217. package/tsconfig.json +18 -0
  218. package/types/comps/calendar.d.ts +38 -0
  219. package/types/comps/checkbox.d.ts +12 -0
  220. package/types/comps/lineProgress.d.ts +5 -0
  221. package/types/comps/navbar.d.ts +3 -3
  222. package/types/comps/swipeActionItem.d.ts +13 -0
  223. package/types/comps/swiper.d.ts +5 -0
  224. package/types/comps/tabs.d.ts +2 -1
  225. package/types/comps/text.d.ts +1 -1
  226. package/types/comps/tooltip.d.ts +36 -1
  227. package/types/func.d.ts +23 -0
  228. package/types/index.d.ts +1 -0
  229. /package/components/u-markdown/{marked.esm.js → marked.esm.mjs} +0 -0
@@ -1032,9 +1032,10 @@ let QRCode = {};
1032
1032
  pdground: '#000000',
1033
1033
  image: '',
1034
1034
  imageSize: 30,
1035
- canvasId: opt.canvasId,
1036
- ctx: opt.ctx,
1037
- isNvue: opt.isNvue,
1035
+ canvasId: opt.canvasId,
1036
+ ctx: opt.ctx,
1037
+ canvasHost: opt.canvasHost,
1038
+ isNvue: opt.isNvue,
1038
1039
  vuectx: opt.vuectx,
1039
1040
  usingComponents: opt.usingComponents,
1040
1041
  showLoading: opt.showLoading,
@@ -1126,11 +1127,7 @@ let QRCode = {};
1126
1127
  count: count,
1127
1128
  options: options
1128
1129
  });
1129
- if (options.isNvue) {
1130
- ctx.setFillStyle(isDark ? foreground : options.background);
1131
- } else {
1132
- ctx.fillStyle = isDark ? foreground : options.background;
1133
- }
1130
+ setFillStyle(ctx, isDark ? foreground : options.background);
1134
1131
  ctx.fillRect(Math.round(col * tileW), Math.round(row * tileH), w, h);
1135
1132
  }
1136
1133
  }
@@ -1138,19 +1135,12 @@ let QRCode = {};
1138
1135
  var x = Number(((ratioSize - ratioImgSize) / 2).toFixed(2));
1139
1136
  var y = Number(((ratioSize - ratioImgSize) / 2).toFixed(2));
1140
1137
  drawRoundedRect(ctx, x, y, ratioImgSize, ratioImgSize, 2, 6, true, true)
1141
- options.vuectx.drawImage(options.image, x, y, ratioImgSize, ratioImgSize);
1142
- // 画圆角矩形
1143
- function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) {
1144
- if (options.isNvue || isApp) {
1145
- ctxi.setLineWidth(lineWidth);
1146
- ctxi.setFillStyle(options.background);
1147
- ctxi.setStrokeStyle(options.background);
1148
- }
1149
- else {
1150
- ctxi.lineWidth = lineWidth;
1151
- ctxi.fillStyle = options.background;
1152
- ctxi.strokeStyle = options.background;
1153
- }
1138
+ await options.vuectx.drawImage(options.image, x, y, ratioImgSize, ratioImgSize);
1139
+ // 画圆角矩形
1140
+ function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) {
1141
+ setLineWidth(ctxi, lineWidth);
1142
+ setFillStyle(ctxi, options.background);
1143
+ setStrokeStyle(ctxi, options.background);
1154
1144
  ctxi.beginPath(); // draw top and top right corner
1155
1145
  ctxi.moveTo(x + r, y);
1156
1146
  ctxi.lineTo(x + width, y); // move to top-right corner
@@ -1174,72 +1164,69 @@ let QRCode = {};
1174
1164
  }
1175
1165
  }
1176
1166
  }
1177
- setTimeout(() => {
1178
- // canvas2 绘制是自动的不需要手动绘制
1179
- if(options.isNvue || isApp){
1180
- ctx.draw(true, () => {
1181
- // 保存到临时区域
1182
- setTimeout(() => {
1183
- if (options.isNvue) {
1184
- ctx.toTempFilePath(
1185
- 0,
1186
- 0,
1187
- options.width,
1188
- options.height,
1189
- options.width,
1190
- options.height,
1191
- "",
1192
- 1,
1193
- function(res) {
1194
- if (options.cbResult) {
1195
- options.cbResult(res.tempFilePath)
1196
- }
1197
- }
1198
- );
1199
- } else {
1200
- uni.canvasToTempFilePath({
1201
- width: options.width,
1202
- height: options.height,
1203
- destWidth: options.width,
1204
- destHeight: options.height,
1205
- canvasId: options.canvasId,
1206
- quality: Number(1),
1207
- success: function (res) {
1208
- // console.log('绘制成功', res)
1209
- if (options.cbResult) {
1210
- // 由于官方还没有统一此接口的输出字段,所以先判定下 支付宝为 res.apFilePath
1211
- if (!empty(res.tempFilePath)) {
1212
- options.cbResult(res.tempFilePath)
1213
- } else if (!empty(res.apFilePath)) {
1214
- options.cbResult(res.apFilePath)
1215
- } else {
1216
- options.cbResult(res.tempFilePath)
1217
- }
1218
- }
1219
- },
1220
- fail: function (res) {
1221
- console.log('绘制失败', res)
1222
- if (options.cbResult) {
1223
- options.cbResult(res)
1224
- }
1225
- },
1226
- complete: function () {
1227
- uni.hideLoading();
1228
- },
1229
- }, options.vuectx);
1230
- }
1231
- }, options.text.length + 100);
1232
- });
1233
- }
1234
- else{
1235
- options.cbResult("")
1236
- }
1237
-
1238
- }, options.usingComponents ? 100 : 200);
1239
- }
1240
- createCanvas(this.options);
1167
+ // canvas2 绘制是自动的不需要手动绘制
1168
+ if(options.isNvue || isApp){
1169
+ let exportStarted = false;
1170
+ const reportFailure = function(error) {
1171
+ uni.hideLoading();
1172
+ if (options.cbResult) {
1173
+ options.cbResult(error instanceof Error ? error : new Error(String(error || '绘制失败')))
1174
+ }
1175
+ };
1176
+ const exportCode = async function() {
1177
+ if (exportStarted) return;
1178
+ exportStarted = true;
1179
+ try {
1180
+ if (!options.canvasHost || typeof options.canvasHost.toTempFilePath !== 'function') {
1181
+ throw new Error('无法获取二维码画布导出方法');
1182
+ }
1183
+ const res = await options.canvasHost.toTempFilePath({
1184
+ width: options.width || options.size,
1185
+ height: options.height || options.size,
1186
+ quality: Number(1)
1187
+ });
1188
+ const tempFilePath = res && (res.tempFilePath || res.apFilePath);
1189
+ if (empty(tempFilePath)) {
1190
+ throw new Error('二维码导出未返回文件路径');
1191
+ }
1192
+ if (options.cbResult) {
1193
+ options.cbResult(tempFilePath)
1194
+ }
1195
+ uni.hideLoading();
1196
+ } catch (error) {
1197
+ reportFailure(error);
1198
+ }
1199
+ };
1200
+ try {
1201
+ let drawResult;
1202
+ if (options.canvasHost && typeof options.canvasHost.draw === 'function') {
1203
+ drawResult = options.canvasHost.draw(true, exportCode);
1204
+ } else if (ctx && typeof ctx.draw === 'function') {
1205
+ drawResult = ctx.draw(true, exportCode);
1206
+ } else {
1207
+ exportCode();
1208
+ }
1209
+ if (drawResult && typeof drawResult.then === 'function') {
1210
+ drawResult.then(exportCode, reportFailure);
1211
+ }
1212
+ } catch (error) {
1213
+ reportFailure(error);
1214
+ }
1215
+ }
1216
+ else{
1217
+ setTimeout(function() {
1218
+ options.cbResult("")
1219
+ }, options.usingComponents ? 100 : 200);
1220
+ }
1221
+ }
1222
+ createCanvas(this.options).catch(function(error) {
1223
+ uni.hideLoading();
1224
+ if (opt.cbResult) {
1225
+ opt.cbResult(error instanceof Error ? error : new Error(String(error || '二维码绘制失败')))
1226
+ }
1227
+ });
1241
1228
  // 空判定
1242
- let empty = function (v) {
1229
+ let empty = function (v) {
1243
1230
  let tp = typeof v,
1244
1231
  rt = false;
1245
1232
  if (tp == "number" && String(v) == "") {
@@ -1253,17 +1240,38 @@ let QRCode = {};
1253
1240
  } else if (tp == "function") {
1254
1241
  rt = false
1255
1242
  }
1256
- return rt
1257
- }
1258
- };
1259
- QRCode.prototype.clear = function (fn) {
1260
- var ctx = '';
1261
- if (options.isNvue) {
1262
- ctx = options.ctx;
1263
- } else {
1264
- uni.createCanvasContext(this.options.canvasId, this.options.vuectx)
1265
- }
1266
- ctx.clearRect(0, 0, this.options.size, this.options.size)
1243
+ return rt
1244
+ }
1245
+ function setFillStyle(ctx, value) {
1246
+ if (ctx && typeof ctx.setFillStyle === 'function') {
1247
+ ctx.setFillStyle(value);
1248
+ } else if (ctx) {
1249
+ ctx.fillStyle = value;
1250
+ }
1251
+ }
1252
+ function setStrokeStyle(ctx, value) {
1253
+ if (ctx && typeof ctx.setStrokeStyle === 'function') {
1254
+ ctx.setStrokeStyle(value);
1255
+ } else if (ctx) {
1256
+ ctx.strokeStyle = value;
1257
+ }
1258
+ }
1259
+ function setLineWidth(ctx, value) {
1260
+ if (ctx && typeof ctx.setLineWidth === 'function') {
1261
+ ctx.setLineWidth(value);
1262
+ } else if (ctx) {
1263
+ ctx.lineWidth = value;
1264
+ }
1265
+ }
1266
+ };
1267
+ QRCode.prototype.clear = function (fn) {
1268
+ if (this.options.canvasHost && typeof this.options.canvasHost.clearCanvas === 'function') {
1269
+ this.options.canvasHost.clearCanvas()
1270
+ if (fn) fn()
1271
+ return
1272
+ }
1273
+ var ctx = this.options.ctx;
1274
+ ctx.clearRect(0, 0, this.options.size, this.options.size)
1267
1275
  ctx.draw(false, () => {
1268
1276
  if (fn) {
1269
1277
  fn()