shineout 3.6.5-beta.1 → 3.6.5-beta.3

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.
package/cjs/index.js CHANGED
@@ -514,5 +514,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
514
514
  // 此文件由脚本自动生成,请勿直接修改。
515
515
  // This file was generated automatically by a script. Please do not modify it directly.
516
516
  var _default = exports.default = {
517
- version: '3.6.5-beta.1'
517
+ version: '3.6.5-beta.3'
518
518
  };
package/dist/shineout.js CHANGED
@@ -12217,7 +12217,7 @@ var handleStyle = function handleStyle(style) {
12217
12217
  };
12218
12218
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12219
12219
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12220
- /* harmony default export */ var version = ('3.6.5-beta.1');
12220
+ /* harmony default export */ var version = ('3.6.5-beta.3');
12221
12221
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12222
12222
 
12223
12223
 
@@ -19757,9 +19757,14 @@ var ImageStyle = objectSpread2_default()(objectSpread2_default()({
19757
19757
  },
19758
19758
  fill: {
19759
19759
  '& $inner': {
19760
- backgroundSize: 'cover',
19761
- backgroundPosition: '50% 50%',
19762
- backgroundRepeat: 'no-repeat'
19760
+ '& > img': {
19761
+ position: 'absolute',
19762
+ top: '50%',
19763
+ left: '50%',
19764
+ transform: 'translate(-50%, -50%)',
19765
+ maxWidth: 'none',
19766
+ maxHeight: 'none'
19767
+ }
19763
19768
  }
19764
19769
  },
19765
19770
  previewMask: {
@@ -49442,7 +49447,8 @@ var useForm = function useForm(props) {
49442
49447
  size = props.size,
49443
49448
  colon = props.colon,
49444
49449
  formName = props.name,
49445
- scrollParent = props.scrollParent;
49450
+ scrollParent = props.scrollParent,
49451
+ isControl = props.isControl;
49446
49452
  var deepSetOptions = {
49447
49453
  removeUndefined: removeUndefined,
49448
49454
  forceSet: true
@@ -50002,7 +50008,10 @@ var useForm = function useForm(props) {
50002
50008
  external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect(function () {
50003
50009
  context.removeLock = false;
50004
50010
  // 内部 onChange 改的 value, 不需要更新
50005
- if (props.value === context.value) return;
50011
+ if (props.value === context.value) {
50012
+ if (!isControl) update();
50013
+ return;
50014
+ }
50006
50015
  if (initValidate && !context.resetTime) {
50007
50016
  var keys = Object.keys(context.validateMap).filter(function (key) {
50008
50017
  var oldValue = deepGet(preValue || emptyObj, key);
@@ -50072,11 +50081,12 @@ var Form = function Form(props) {
50072
50081
  rest = objectWithoutProperties_default()(props, form_excluded);
50073
50082
  var formClasses = jssStyle === null || jssStyle === void 0 || (_jssStyle$form = jssStyle.form) === null || _jssStyle$form === void 0 ? void 0 : _jssStyle$form.call(jssStyle);
50074
50083
  var modalFormContext = useFormFooter();
50084
+ var isControl = ('value' in props);
50075
50085
  var inputAbleParams = {
50076
50086
  value: props.value,
50077
50087
  onChange: props.onChange,
50078
50088
  defaultValue: props.defaultValue,
50079
- control: 'value' in props,
50089
+ control: isControl,
50080
50090
  beforeChange: undefined,
50081
50091
  reserveAble: false
50082
50092
  };
@@ -50087,7 +50097,8 @@ var Form = function Form(props) {
50087
50097
  var _useForm = use_form(objectSpread2_default()(objectSpread2_default()({}, rest), {}, {
50088
50098
  value: value,
50089
50099
  onChange: onChange,
50090
- formElRef: formElRef
50100
+ formElRef: formElRef,
50101
+ isControl: isControl
50091
50102
  })),
50092
50103
  Provider = _useForm.Provider,
50093
50104
  ProviderProps = _useForm.ProviderProps,
@@ -50729,6 +50740,8 @@ var use_form_flow_UseFormItem = function UseFormItem(props) {
50729
50740
 
50730
50741
  var FormFlow = function FormFlow(props) {
50731
50742
  var _props$names;
50743
+ var _props$strict = props.strict,
50744
+ strict = _props$strict === void 0 ? true : _props$strict;
50732
50745
  var datum = use_form_flow({
50733
50746
  names: props.names
50734
50747
  });
@@ -50736,13 +50749,13 @@ var FormFlow = function FormFlow(props) {
50736
50749
  return datum === null || datum === void 0 ? void 0 : datum.get(name);
50737
50750
  });
50738
50751
  var memoizedResult = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
50739
- if (!props.strict) return null;
50752
+ if (!strict) return null;
50740
50753
  if (isFunc(props.children)) {
50741
50754
  return props.children(datum);
50742
50755
  }
50743
50756
  return props.children;
50744
50757
  }, [valueOfNames === null || valueOfNames === void 0 ? void 0 : valueOfNames.toString()]);
50745
- if (props.strict) {
50758
+ if (strict) {
50746
50759
  return memoizedResult;
50747
50760
  }
50748
50761
  if (isFunc(props.children)) {
@@ -51220,6 +51233,10 @@ var useImage = function useImage() {
51220
51233
  _React$useState2 = slicedToArray_default()(_React$useState, 2),
51221
51234
  status = _React$useState2[0],
51222
51235
  setStatus = _React$useState2[1];
51236
+ var _React$useState3 = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState({}),
51237
+ _React$useState4 = slicedToArray_default()(_React$useState3, 2),
51238
+ imgCoverStyle = _React$useState4[0],
51239
+ setImgCoverStyle = _React$useState4[1];
51223
51240
  var elementRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
51224
51241
  var getUrl = function getUrl(url) {
51225
51242
  var auto = 'autoSSL' in props ? autoSSL : use_image_config.autoSSL;
@@ -51254,6 +51271,35 @@ var useImage = function useImage() {
51254
51271
  };
51255
51272
  img.src = getUrl(alt);
51256
51273
  };
51274
+ var handleCoverStyle = function handleCoverStyle(img) {
51275
+ var container = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
51276
+ if (!container) return;
51277
+
51278
+ // 根据容器的宽高获取宽高比
51279
+ var containerWidth = container.clientWidth;
51280
+ var containerHeight = container.clientHeight;
51281
+ var containerRatio = containerWidth / containerHeight;
51282
+
51283
+ // 根据图片的自然尺寸获取宽高比
51284
+ var imageWidth = img.naturalWidth;
51285
+ var imageHeight = img.naturalHeight;
51286
+ var imageRatio = imageWidth / imageHeight;
51287
+
51288
+ // 判断宽高比,决定图片填充策略
51289
+ if (imageRatio > containerRatio) {
51290
+ // 图片更宽,宽度占满容器,高度自适应
51291
+ setImgCoverStyle({
51292
+ height: '100%',
51293
+ width: 'auto'
51294
+ });
51295
+ } else {
51296
+ // 图片更高,填满容器高度
51297
+ setImgCoverStyle({
51298
+ width: '100%',
51299
+ height: 'auto'
51300
+ });
51301
+ }
51302
+ };
51257
51303
  var markToRender = function markToRender() {
51258
51304
  if (!src) {
51259
51305
  handleAlt();
@@ -51261,7 +51307,10 @@ var useImage = function useImage() {
51261
51307
  }
51262
51308
  var img = new window.Image();
51263
51309
  img.onload = function () {
51264
- return setStatus(SRC);
51310
+ setStatus(SRC);
51311
+ if (props.fit === 'fill') {
51312
+ handleCoverStyle(img);
51313
+ }
51265
51314
  };
51266
51315
  img.onerror = function (e) {
51267
51316
  return handleError(SRC, e);
@@ -51290,7 +51339,9 @@ var useImage = function useImage() {
51290
51339
  alt: alt,
51291
51340
  draggable: !noImgDrag
51292
51341
  });
51293
- return objectSpread2_default()({}, mergedEventHandlers);
51342
+ return objectSpread2_default()({
51343
+ style: imgCoverStyle
51344
+ }, mergedEventHandlers);
51294
51345
  };
51295
51346
  var getImageDivProps = function getImageDivProps() {
51296
51347
  var externalProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -52058,7 +52109,8 @@ var Image = function Image(props) {
52058
52109
  href: href,
52059
52110
  lazy: lazy,
52060
52111
  autoSSL: autoSSL,
52061
- noImgDrag: noImgDrag
52112
+ noImgDrag: noImgDrag,
52113
+ fit: fit
52062
52114
  }, rest)),
52063
52115
  status = _useImage.status,
52064
52116
  getRootProps = _useImage.getRootProps,
@@ -52137,7 +52189,7 @@ var Image = function Image(props) {
52137
52189
 
52138
52190
  // 渲染 img / div 类型的内部标签
52139
52191
  var renderInner = function renderInner(src) {
52140
- return fit === 'fill' || fit === 'fit' ? renderDivInnerEl(src) : renderImgeInnerEl(src);
52192
+ return fit === 'fit' ? renderDivInnerEl(src) : renderImgeInnerEl(src);
52141
52193
  };
52142
52194
 
52143
52195
  // 默认占位图
@@ -69984,7 +70036,7 @@ var upload_interface = __webpack_require__(8821);
69984
70036
 
69985
70037
 
69986
70038
  /* harmony default export */ var src_0 = ({
69987
- version: '3.6.5-beta.1'
70039
+ version: '3.6.5-beta.3'
69988
70040
  });
69989
70041
  }();
69990
70042
  /******/ return __webpack_exports__;