amis 1.3.2 → 1.3.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/lib/compat.js +3 -1
- package/lib/compat.js.map +2 -2
- package/lib/components/Overlay.js +6 -3
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/Transfer.js +3 -2
- package/lib/components/Transfer.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/renderers/Carousel.js +5 -2
- package/lib/renderers/Carousel.js.map +2 -2
- package/lib/renderers/Form/Transfer.d.ts +4 -0
- package/lib/renderers/Form/Transfer.js +2 -2
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Image.d.ts +12 -0
- package/lib/renderers/Image.js +9 -4
- package/lib/renderers/Image.js.map +2 -2
- package/lib/themes/ang-ie11.css +19 -16
- package/lib/themes/ang.css +19 -16
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +19 -16
- package/lib/themes/antd.css +19 -16
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +19 -16
- package/lib/themes/cxd.css +19 -16
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +19 -16
- package/lib/themes/dark.css +19 -16
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +19 -16
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +31 -14
- package/scss/components/_carousel.scss +23 -21
- package/scss/components/_images.scss +0 -1
- package/sdk/ang-ie11.css +20 -17
- package/sdk/ang.css +20 -17
- package/sdk/antd-ie11.css +20 -17
- package/sdk/antd.css +20 -17
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +20 -17
- package/sdk/cxd.css +20 -17
- package/sdk/dark-ie11.css +20 -17
- package/sdk/dark.css +20 -17
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +25 -25
- package/sdk/rich-text.js +63 -63
- package/sdk/sdk-ie11.css +20 -17
- package/sdk/sdk.css +20 -17
- package/sdk/sdk.js +1115 -1113
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/compat.ts +5 -1
- package/src/components/Overlay.tsx +9 -6
- package/src/components/Transfer.tsx +3 -1
- package/src/renderers/Carousel.tsx +13 -1
- package/src/renderers/Form/Transfer.tsx +7 -0
- package/src/renderers/Image.tsx +38 -1
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/Transfer.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,qCAImB;AACnB,6DAA0B;AAC1B,oFAAiD;AACjD,qCAAiC;AACjC,6CAM4B;AAE5B,kFAA+C;AAC/C,kEAA+B;AAC/B,kDAA2D;AAC3D,uDAAwD;
|
9
|
+
"mappings": ";;;;AAAA,qCAImB;AACnB,6DAA0B;AAC1B,oFAAiD;AACjD,qCAAiC;AACjC,6CAM4B;AAE5B,kFAA+C;AAC/C,kEAA+B;AAC/B,kDAA2D;AAC3D,uDAAwD;AA0FxD;IAEU,qDAAkB;IAF5B;;IAgMA,CAAC;IA5LC,2CAAY,GAAZ,UAAa,KAAoB;QACzB,IAAA,KAQF,IAAI,CAAC,KAAK,EAPZ,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,OAAO,aAAA,EACP,UAAU,gBACE,CAAC;QACf,IAAI,QAAQ,GAAQ,KAAK,CAAC;QAC1B,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAElC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,UAAU,IAAI,YAAY,EAAE;gBAC9B,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;oBACvB,IAAM,QAAQ,GAAG,IAAA,iBAAQ,EACvB,OAAO,EACP,IAAA,2BAAkB,EAChB,IAAI,CAAE,UAAqB,IAAI,OAAO,CAAC,EACtC,UAAqB,IAAI,OAAO,CAClC,CACF,CAAC;oBAEF,IAAI,CAAC,QAAQ,EAAE;wBACb,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACvB;oBAED,OAAO,IAAI,CAAE,UAAqB,IAAI,OAAO,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;aACJ;YAED,IAAI,UAAU,EAAE;gBACd,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;aAC5C;SACF;QAED,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;IAGD,2CAAY,GAAZ,UAAa,MAAc;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAGK,2CAAY,GAAlB,UAAmB,IAAY,EAAE,cAAwB;;;;;;wBACjD,KAA0D,IAAI,CAAC,KAAK,EAAnE,SAAS,eAAA,EAAE,OAAO,aAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,GAAG,SAAA,EAAE,IAAI,UAAA,CAAe;6BAEvE,SAAS,EAAT,wBAAS;;;;wBAEO,qBAAM,GAAG,CAAC,OAAO,CAC/B,SAAS,EACT,IAAA,qBAAY,EAAC,IAAI,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,EAC1B;gCACE,cAAc,gBAAA;6BACf,CACF,EAAA;;wBANK,OAAO,GAAG,SAMf;wBAED,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;4BACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;yBAC1C;wBAEK,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;wBAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;4BAC1B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;yBACtC;wBAED,sBAAO,MAAM,CAAC,GAAG,CAAC,UAAA,IAAI;gCACpB,IAAI,QAAQ,GAAQ,IAAI,CAAC;gCACzB,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;gCAE1C,8BAA8B;gCAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;oCACnE,QAAQ,GAAG,IAAA,cAAI,EAAC,OAAO,EAAE,IAAA,2BAAkB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;iCACjE;gCAED,OAAO,QAAQ,IAAI,IAAI,CAAC;4BAC1B,CAAC,CAAC,EAAC;;;wBAEH,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAC,CAAC,EAAE;4BACpB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAC,CAAC,OAAO,CAAC,CAAC;yBAChC;wBAED,sBAAO,EAAE,EAAC;;;wBAEP,IAAI,IAAI,EAAE;4BACT,WAAS,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;4BAEnC,sBAAO,IAAA,mBAAU,EACf,OAAO,EACP,UAAC,MAAc;oCACb,OAAO,CAAC,CAAC,CACP,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;wCAC1D,QAAM,CAAC,IAAI,CAAC,MAAM,CAAE,UAAqB,IAAI,OAAO,CAAC,CAAC;wCACtD,QAAM,CAAC,IAAI,CAAC,MAAM,CAAE,UAAqB,IAAI,OAAO,CAAC,CAAC,CACvD,CAAC;gCACJ,CAAC,EACD,CAAC,EACD,IAAI,CACL,EAAC;yBACH;6BAAM;4BACL,sBAAO,OAAO,EAAC;yBAChB;;;;;;KACF;IAGD,yCAAU,GAAV,UACE,MAIC,EACD,MAAc,EACd,QAAgB,EAChB,QAAgB;QAEV,IAAA,KAAiB,IAAI,CAAC,KAAK,EAA1B,MAAM,YAAA,EAAE,IAAI,UAAc,CAAC;QAClC,OAAO,MAAM,CACX,UAAQ,QAAQ,SAAI,QAAU,0BAE5B,IAAI,EAAE,MAAM,IACT,MAAM,GAEX;YACE,KAAK,EAAE,IAAA,6BAAe,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;YAC3C,IAAI,EAAE,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC;SACjC,CACF,CAAC;IACJ,CAAC;IAED,qCAAM,GAAN;QACQ,IAAA,KAsBF,IAAI,CAAC,KAAK,EArBZ,SAAS,eAAA,EACG,EAAE,gBAAA,EACd,OAAO,aAAA,EACP,eAAe,qBAAA,EACf,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,gBAAgB,sBAAA,EAChB,mBAAmB,yBAAA,EACnB,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,WAAW,iBAAA,EACX,gBAAgB,sBAAA,EAChB,gBAAgB,sBACJ,CAAC;QAEf,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC;YAC9C,8BAAC,kBAAQ,IACP,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EACpD,WAAW,EAAE,SAAS,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,GAClC;YAEF,8BAAC,iBAAO,IAAC,OAAO,QAAC,GAAG,EAAC,MAAM,EAAC,IAAI,EAAE,OAAO,GAAI,CACzC,CACP,CAAC;IACJ,CAAC;;IA3LD;QADC,iBAAQ;;0EACW,KAAK,oBAAL,KAAK;;4DAuCxB;IAGD;QADC,iBAAQ;;0EACY,gBAAM,oBAAN,gBAAM;;4DAE1B;IAGD;QADC,iBAAQ;;kFACwC,QAAQ,oBAAR,QAAQ;;4DA2DxD;IAGD;QADC,iBAAQ;;kFAOC,gBAAM,oBAAN,gBAAM;;0DAgBf;IAyDH,2BAAC;CAAA,AAhMD,CAEU,eAAK,CAAC,SAAS,GA8LxB;AAhMY,oDAAoB;AAkMjC,2BAA2B;AAC3B;IAAoC,+CAAoB;IAAxD;;IAA0D,CAAC;IAAD,qBAAC;AAAD,CAAC,AAA3D,CAAoC,oBAAoB,GAAG;AAA9C,wCAAc;AAE3B,kBAAe,IAAA,wBAAc,EAAC;IAC5B,IAAI,EAAE,UAAU;CACjB,CAAC,CAAC,cAAc,CAAC,CAAC",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {\n OptionsControlProps,\n OptionsControl,\n FormOptionsControl\n} from './Options';\nimport React from 'react';\nimport Transfer from '../../components/Transfer';\nimport {Option} from './Options';\nimport {\n autobind,\n filterTree,\n string2regExp,\n createObject,\n findTree\n} from '../../utils/helper';\nimport {Api} from '../../types';\nimport Spinner from '../../components/Spinner';\nimport find from 'lodash/find';\nimport {optionValueCompare} from '../../components/Select';\nimport {resolveVariable} from '../../utils/tpl-builtin';\nimport {SchemaApi} from '../../Schema';\n\n/**\n * Transfer\n * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer\n */\nexport interface TransferControlSchema extends FormOptionsControl {\n type: 'transfer';\n\n /**\n * 是否显示剪头\n */\n showArrow?: boolean;\n\n /**\n * 可排序?\n */\n sortable?: boolean;\n\n /**\n * 勾选展示模式\n */\n selectMode?: 'table' | 'list' | 'tree' | 'chained' | 'associated';\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选项\n */\n leftOptions?: Array<Option>;\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选择模式\n */\n leftMode?: 'tree' | 'list';\n\n /**\n * 当 selectMode 为 associated 时用来定义右侧的选择模式\n */\n rightMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 搜索结果展示模式\n */\n searchResultMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 当 selectMode 为 table 时定义表格列信息。\n */\n columns?: Array<any>;\n\n /**\n * 可搜索?\n */\n searchable?: boolean;\n\n /**\n * 搜索 API\n */\n searchApi?: SchemaApi;\n\n /**\n * 左侧的标题文字\n */\n selectTitle?: string;\n\n /**\n * 右侧结果的标题文字\n */\n resultTitle?: string;\n}\n\nexport interface BaseTransferProps\n extends OptionsControlProps,\n Omit<\n TransferControlSchema,\n | 'type'\n | 'options'\n | 'className'\n | 'descriptionClassName'\n | 'inputClassName'\n > {\n optionItemRender?: (option: Option) => JSX.Element;\n resultItemRender?: (option: Option) => JSX.Element;\n}\n\nexport class BaseTransferRenderer<\n T extends OptionsControlProps = BaseTransferProps\n> extends React.Component<T> {\n @autobind\n handleChange(value: Array<Option>) {\n const {\n onChange,\n joinValues,\n delimiter,\n valueField,\n extractValue,\n options,\n setOptions\n } = this.props;\n let newValue: any = value;\n let newOptions = options.concat();\n\n if (Array.isArray(value)) {\n if (joinValues || extractValue) {\n newValue = value.map(item => {\n const resolved = findTree(\n options,\n optionValueCompare(\n item[(valueField as string) || 'value'],\n (valueField as string) || 'value'\n )\n );\n\n if (!resolved) {\n newOptions.push(item);\n }\n\n return item[(valueField as string) || 'value'];\n });\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n }\n\n newOptions.length > options.length && setOptions(newOptions, true);\n onChange(newValue);\n }\n\n @autobind\n option2value(option: Option) {\n return option;\n }\n\n @autobind\n async handleSearch(term: string, cancelExecutor: Function) {\n const {searchApi, options, labelField, valueField, env, data} = this.props;\n\n if (searchApi) {\n try {\n const payload = await env.fetcher(\n searchApi,\n createObject(data, {term}),\n {\n cancelExecutor\n }\n );\n\n if (!payload.ok) {\n throw new Error(payload.msg || '搜索请求异常');\n }\n\n const result =\n payload.data.options || payload.data.items || payload.data;\n if (!Array.isArray(result)) {\n throw new Error('CRUD.invalidArray');\n }\n\n return result.map(item => {\n let resolved: any = null;\n const value = item[valueField || 'value'];\n\n // 只有 value 值有意义的时候,再去找;否则直接返回\n if (Array.isArray(options) && value !== null && value !== undefined) {\n resolved = find(options, optionValueCompare(value, valueField));\n }\n\n return resolved || item;\n });\n } catch (e) {\n if (!env.isCancel(e)) {\n env.notify('error', e.message);\n }\n\n return [];\n }\n } else if (term) {\n const regexp = string2regExp(term);\n\n return filterTree(\n options,\n (option: Option) => {\n return !!(\n (Array.isArray(option.children) && option.children.length) ||\n regexp.test(option[(labelField as string) || 'label']) ||\n regexp.test(option[(valueField as string) || 'value'])\n );\n },\n 0,\n true\n );\n } else {\n return options;\n }\n }\n\n @autobind\n renderCell(\n column: {\n name: string;\n label: string;\n [propName: string]: any;\n },\n option: Option,\n colIndex: number,\n rowIndex: number\n ) {\n const {render, data} = this.props;\n return render(\n `cell/${colIndex}/${rowIndex}`,\n {\n type: 'text',\n ...column\n },\n {\n value: resolveVariable(column.name, option),\n data: createObject(data, option)\n }\n );\n }\n\n render() {\n const {\n className,\n classnames: cx,\n options,\n selectedOptions,\n showArrow,\n sortable,\n selectMode,\n columns,\n loading,\n searchable,\n searchResultMode,\n deferLoad,\n leftOptions,\n leftMode,\n rightMode,\n disabled,\n selectTitle,\n resultTitle,\n optionItemRender,\n resultItemRender\n } = this.props;\n\n return (\n <div className={cx('TransferControl', className)}>\n <Transfer\n value={selectedOptions}\n options={options}\n disabled={disabled}\n onChange={this.handleChange}\n option2value={this.option2value}\n sortable={sortable}\n showArrow={showArrow}\n selectMode={selectMode}\n searchResultMode={searchResultMode}\n columns={columns}\n onSearch={searchable ? this.handleSearch : undefined}\n onDeferLoad={deferLoad}\n leftOptions={leftOptions}\n leftMode={leftMode}\n rightMode={rightMode}\n cellRender={this.renderCell}\n selectTitle={selectTitle}\n resultTitle={resultTitle}\n optionItemRender={optionItemRender}\n resultItemRender={resultItemRender}\n />\n\n <Spinner overlay key=\"info\" show={loading} />\n </div>\n );\n }\n}\n\n// ts 3.9 里面非得这样才不报错,鬼知道为何。\nexport class TransferRender extends BaseTransferRenderer {}\n\nexport default OptionsControl({\n type: 'transfer'\n})(TransferRender);\n"
|
11
|
+
"import {\n OptionsControlProps,\n OptionsControl,\n FormOptionsControl\n} from './Options';\nimport React from 'react';\nimport Transfer from '../../components/Transfer';\nimport {Option} from './Options';\nimport {\n autobind,\n filterTree,\n string2regExp,\n createObject,\n findTree\n} from '../../utils/helper';\nimport {Api} from '../../types';\nimport Spinner from '../../components/Spinner';\nimport find from 'lodash/find';\nimport {optionValueCompare} from '../../components/Select';\nimport {resolveVariable} from '../../utils/tpl-builtin';\nimport {SchemaApi} from '../../Schema';\n\n/**\n * Transfer\n * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer\n */\nexport interface TransferControlSchema extends FormOptionsControl {\n type: 'transfer';\n\n /**\n * 是否显示剪头\n */\n showArrow?: boolean;\n\n /**\n * 可排序?\n */\n sortable?: boolean;\n\n /**\n * 勾选展示模式\n */\n selectMode?: 'table' | 'list' | 'tree' | 'chained' | 'associated';\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选项\n */\n leftOptions?: Array<Option>;\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选择模式\n */\n leftMode?: 'tree' | 'list';\n\n /**\n * 当 selectMode 为 associated 时用来定义右侧的选择模式\n */\n rightMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 搜索结果展示模式\n */\n searchResultMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 当 selectMode 为 table 时定义表格列信息。\n */\n columns?: Array<any>;\n\n /**\n * 当 searchResultMode 为 table 时定义表格列信息。\n */\n searchResultColumns?: Array<any>;\n\n /**\n * 可搜索?\n */\n searchable?: boolean;\n\n /**\n * 搜索 API\n */\n searchApi?: SchemaApi;\n\n /**\n * 左侧的标题文字\n */\n selectTitle?: string;\n\n /**\n * 右侧结果的标题文字\n */\n resultTitle?: string;\n}\n\nexport interface BaseTransferProps\n extends OptionsControlProps,\n Omit<\n TransferControlSchema,\n | 'type'\n | 'options'\n | 'className'\n | 'descriptionClassName'\n | 'inputClassName'\n > {\n optionItemRender?: (option: Option) => JSX.Element;\n resultItemRender?: (option: Option) => JSX.Element;\n}\n\nexport class BaseTransferRenderer<\n T extends OptionsControlProps = BaseTransferProps\n> extends React.Component<T> {\n @autobind\n handleChange(value: Array<Option>) {\n const {\n onChange,\n joinValues,\n delimiter,\n valueField,\n extractValue,\n options,\n setOptions\n } = this.props;\n let newValue: any = value;\n let newOptions = options.concat();\n\n if (Array.isArray(value)) {\n if (joinValues || extractValue) {\n newValue = value.map(item => {\n const resolved = findTree(\n options,\n optionValueCompare(\n item[(valueField as string) || 'value'],\n (valueField as string) || 'value'\n )\n );\n\n if (!resolved) {\n newOptions.push(item);\n }\n\n return item[(valueField as string) || 'value'];\n });\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n }\n\n newOptions.length > options.length && setOptions(newOptions, true);\n onChange(newValue);\n }\n\n @autobind\n option2value(option: Option) {\n return option;\n }\n\n @autobind\n async handleSearch(term: string, cancelExecutor: Function) {\n const {searchApi, options, labelField, valueField, env, data} = this.props;\n\n if (searchApi) {\n try {\n const payload = await env.fetcher(\n searchApi,\n createObject(data, {term}),\n {\n cancelExecutor\n }\n );\n\n if (!payload.ok) {\n throw new Error(payload.msg || '搜索请求异常');\n }\n\n const result =\n payload.data.options || payload.data.items || payload.data;\n if (!Array.isArray(result)) {\n throw new Error('CRUD.invalidArray');\n }\n\n return result.map(item => {\n let resolved: any = null;\n const value = item[valueField || 'value'];\n\n // 只有 value 值有意义的时候,再去找;否则直接返回\n if (Array.isArray(options) && value !== null && value !== undefined) {\n resolved = find(options, optionValueCompare(value, valueField));\n }\n\n return resolved || item;\n });\n } catch (e) {\n if (!env.isCancel(e)) {\n env.notify('error', e.message);\n }\n\n return [];\n }\n } else if (term) {\n const regexp = string2regExp(term);\n\n return filterTree(\n options,\n (option: Option) => {\n return !!(\n (Array.isArray(option.children) && option.children.length) ||\n regexp.test(option[(labelField as string) || 'label']) ||\n regexp.test(option[(valueField as string) || 'value'])\n );\n },\n 0,\n true\n );\n } else {\n return options;\n }\n }\n\n @autobind\n renderCell(\n column: {\n name: string;\n label: string;\n [propName: string]: any;\n },\n option: Option,\n colIndex: number,\n rowIndex: number\n ) {\n const {render, data} = this.props;\n return render(\n `cell/${colIndex}/${rowIndex}`,\n {\n type: 'text',\n ...column\n },\n {\n value: resolveVariable(column.name, option),\n data: createObject(data, option)\n }\n );\n }\n\n render() {\n const {\n className,\n classnames: cx,\n options,\n selectedOptions,\n showArrow,\n sortable,\n selectMode,\n columns,\n loading,\n searchable,\n searchResultMode,\n searchResultColumns,\n deferLoad,\n leftOptions,\n leftMode,\n rightMode,\n disabled,\n selectTitle,\n resultTitle,\n optionItemRender,\n resultItemRender\n } = this.props;\n\n return (\n <div className={cx('TransferControl', className)}>\n <Transfer\n value={selectedOptions}\n options={options}\n disabled={disabled}\n onChange={this.handleChange}\n option2value={this.option2value}\n sortable={sortable}\n showArrow={showArrow}\n selectMode={selectMode}\n searchResultMode={searchResultMode}\n searchResultColumns={searchResultColumns}\n columns={columns}\n onSearch={searchable ? this.handleSearch : undefined}\n onDeferLoad={deferLoad}\n leftOptions={leftOptions}\n leftMode={leftMode}\n rightMode={rightMode}\n cellRender={this.renderCell}\n selectTitle={selectTitle}\n resultTitle={resultTitle}\n optionItemRender={optionItemRender}\n resultItemRender={resultItemRender}\n />\n\n <Spinner overlay key=\"info\" show={loading} />\n </div>\n );\n }\n}\n\n// ts 3.9 里面非得这样才不报错,鬼知道为何。\nexport class TransferRender extends BaseTransferRenderer {}\n\nexport default OptionsControl({\n type: 'transfer'\n})(TransferRender);\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/renderers/Image.d.ts
CHANGED
@@ -81,6 +81,18 @@ export interface ImageSchema extends BaseSchema {
|
|
81
81
|
* 预览图比率
|
82
82
|
*/
|
83
83
|
thumbRatio?: '1:1' | '4:3' | '16:9';
|
84
|
+
/**
|
85
|
+
* 链接地址
|
86
|
+
*/
|
87
|
+
href?: SchemaTpl;
|
88
|
+
/**
|
89
|
+
* 是否新窗口打开
|
90
|
+
*/
|
91
|
+
blank?: boolean;
|
92
|
+
/**
|
93
|
+
* 链接的 target
|
94
|
+
*/
|
95
|
+
htmlTarget?: string;
|
84
96
|
}
|
85
97
|
export interface ImageThumbProps extends LocaleProps, ThemeProps, Omit<ImageSchema, 'type' | 'className'> {
|
86
98
|
onEnlarge?: (info: ImageThumbProps) => void;
|
package/lib/renderers/Image.js
CHANGED
@@ -19,8 +19,8 @@ var ImageThumb = /** @class */ (function (_super) {
|
|
19
19
|
onEnlarge && onEnlarge(rest);
|
20
20
|
};
|
21
21
|
ImageThumb.prototype.render = function () {
|
22
|
-
var _a = this.props, cx = _a.classnames, className = _a.className, imageClassName = _a.imageClassName, thumbClassName = _a.thumbClassName, thumbMode = _a.thumbMode, thumbRatio = _a.thumbRatio, height = _a.height, width = _a.width, src = _a.src, alt = _a.alt, title = _a.title, caption = _a.caption, onLoad = _a.onLoad, enlargeAble = _a.enlargeAble, __ = _a.translate, overlays = _a.overlays, imageMode = _a.imageMode;
|
23
|
-
|
22
|
+
var _a = this.props, cx = _a.classnames, className = _a.className, imageClassName = _a.imageClassName, thumbClassName = _a.thumbClassName, thumbMode = _a.thumbMode, thumbRatio = _a.thumbRatio, height = _a.height, width = _a.width, src = _a.src, alt = _a.alt, title = _a.title, caption = _a.caption, href = _a.href, _b = _a.blank, blank = _b === void 0 ? true : _b, htmlTarget = _a.htmlTarget, onLoad = _a.onLoad, enlargeAble = _a.enlargeAble, __ = _a.translate, overlays = _a.overlays, imageMode = _a.imageMode;
|
23
|
+
var image = (react_1.default.createElement("div", { className: cx('Image', imageMode === 'original' ? 'Image--original' : 'Image--thumb', className) },
|
24
24
|
imageMode === 'original' ? (react_1.default.createElement("div", { className: cx('Image-origin', thumbMode ? "Image-origin--" + thumbMode : ''), style: { height: height, width: width } },
|
25
25
|
react_1.default.createElement("img", { onLoad: onLoad, className: cx('Image-image', imageClassName), src: src, alt: alt }))) : (react_1.default.createElement("div", { className: cx('Image-thumbWrap') },
|
26
26
|
react_1.default.createElement("div", { className: cx('Image-thumb', thumbClassName, thumbMode ? "Image-thumb--" + thumbMode : '', thumbRatio
|
@@ -34,6 +34,10 @@ var ImageThumb = /** @class */ (function (_super) {
|
|
34
34
|
title || caption ? (react_1.default.createElement("div", { key: "caption", className: cx('Image-info') },
|
35
35
|
title ? (react_1.default.createElement("div", { className: cx('Image-title'), title: title }, title)) : null,
|
36
36
|
caption ? (react_1.default.createElement("div", { className: cx('Image-caption'), title: caption }, caption)) : null)) : null));
|
37
|
+
if (href) {
|
38
|
+
image = (react_1.default.createElement("a", { href: href, target: htmlTarget || (blank ? '_blank' : '_self'), className: cx('Link', className), title: title }, image));
|
39
|
+
}
|
40
|
+
return image;
|
37
41
|
};
|
38
42
|
(0, tslib_1.__decorate)([
|
39
43
|
helper_1.autobind,
|
@@ -67,12 +71,13 @@ var ImageField = /** @class */ (function (_super) {
|
|
67
71
|
};
|
68
72
|
ImageField.prototype.render = function () {
|
69
73
|
var _a;
|
70
|
-
var _b = this.props, className = _b.className, defaultImage = _b.defaultImage, imageCaption = _b.imageCaption, title = _b.title, data = _b.data, imageClassName = _b.imageClassName, thumbClassName = _b.thumbClassName, height = _b.height, width = _b.width, cx = _b.classnames, src = _b.src, thumbMode = _b.thumbMode, thumbRatio = _b.thumbRatio, placeholder = _b.placeholder, originalSrc = _b.originalSrc, enlargeAble = _b.enlargeAble, imageMode = _b.imageMode;
|
74
|
+
var _b = this.props, className = _b.className, defaultImage = _b.defaultImage, imageCaption = _b.imageCaption, title = _b.title, data = _b.data, imageClassName = _b.imageClassName, thumbClassName = _b.thumbClassName, height = _b.height, width = _b.width, cx = _b.classnames, src = _b.src, href = _b.href, thumbMode = _b.thumbMode, thumbRatio = _b.thumbRatio, placeholder = _b.placeholder, originalSrc = _b.originalSrc, enlargeAble = _b.enlargeAble, imageMode = _b.imageMode;
|
71
75
|
var finnalSrc = src ? (0, tpl_1.filter)(src, data, '| raw') : '';
|
72
76
|
var value = finnalSrc || (0, helper_1.getPropValue)(this.props) || defaultImage || exports.imagePlaceholder;
|
77
|
+
var finnalHref = href ? (0, tpl_1.filter)(href, data, '| raw') : '';
|
73
78
|
return (react_1.default.createElement("div", { className: cx('ImageField', imageMode === 'original'
|
74
79
|
? 'ImageField--original'
|
75
|
-
: 'ImageField--thumb', className) }, value ? (react_1.default.createElement(ThemedImageThumb, { imageClassName: imageClassName, thumbClassName: thumbClassName, height: height, width: width, src: value, title: (0, tpl_1.filter)(title, data), caption: (0, tpl_1.filter)(imageCaption, data), thumbMode: thumbMode, thumbRatio: thumbRatio, originalSrc: (_a = (0, tpl_1.filter)(originalSrc, data, '| raw')) !== null && _a !== void 0 ? _a : value, enlargeAble: enlargeAble && value !== defaultImage, onEnlarge: this.handleEnlarge, imageMode: imageMode })) : (react_1.default.createElement("span", { className: "text-muted" }, placeholder))));
|
80
|
+
: 'ImageField--thumb', className) }, value ? (react_1.default.createElement(ThemedImageThumb, { imageClassName: imageClassName, thumbClassName: thumbClassName, height: height, width: width, src: value, href: finnalHref, title: (0, tpl_1.filter)(title, data), caption: (0, tpl_1.filter)(imageCaption, data), thumbMode: thumbMode, thumbRatio: thumbRatio, originalSrc: (_a = (0, tpl_1.filter)(originalSrc, data, '| raw')) !== null && _a !== void 0 ? _a : value, enlargeAble: enlargeAble && value !== defaultImage, onEnlarge: this.handleEnlarge, imageMode: imageMode })) : (react_1.default.createElement("span", { className: "text-muted" }, placeholder))));
|
76
81
|
};
|
77
82
|
ImageField.defaultProps = {
|
78
83
|
defaultImage: exports.imagePlaceholder,
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Image.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,sCAAmD;AACnD,oCAAoC;AACpC,kCAA6D;AAC7D,0CAAuD;AACvD,6CAAyC;AACzC,oCAAkD;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, getPropValue} from '../utils/helper';\nimport {Icon} from '../components/icons';\nimport {LocaleProps, localeable} from '../locale';\nimport {BaseSchema, SchemaClassName, SchemaTpl, SchemaUrlPath} from '../Schema';\nimport {resolveVariable} from '../utils/tpl-builtin';\n\n/**\n * 图片展示控件。\n * 文档:https://baidu.gitee.io/amis/docs/components/image\n */\nexport interface ImageSchema extends BaseSchema {\n /**\n * 指定为图片展示类型\n */\n type: 'image' | 'static-image';\n\n /**\n * 默认图片地址\n */\n defaultImage?: SchemaUrlPath;\n\n /**\n * 图片标题\n */\n title?: SchemaTpl;\n\n /**\n * 关联字段名,也可以直接配置 src\n */\n name?: string;\n\n /**\n * 图片描述信息\n */\n imageCaption?: SchemaTpl;\n\n /**\n * 图片地址,如果配置了 name,这个属性不用配置。\n */\n src?: SchemaUrlPath;\n\n /**\n * 大图地址,不设置用 src\n */\n originalSrc?: SchemaUrlPath;\n\n /**\n * 是否启动放大功能。\n */\n enlargeAble?: boolean;\n\n /**\n * 是否显示尺寸。\n */\n // showDimensions?: boolean;\n\n /**\n * 图片无法显示时的替换文本\n */\n alt?: string;\n\n /**\n * 高度\n */\n height?: number;\n\n /**\n * 宽度\n */\n width?: number;\n\n /**\n * 图片 css 类名\n */\n imageClassName?: SchemaClassName;\n\n /**\n * 外层 css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 图片缩率图外层 css 类名\n */\n thumbClassName?: SchemaClassName;\n\n caption?: SchemaTpl;\n\n /**\n * 图片展示模式,默认为缩略图模式、可以配置成原图模式\n */\n imageMode?: 'thumb' | 'original';\n\n /**\n * 预览图模式\n */\n thumbMode?: 'w-full' | 'h-full' | 'contain' | 'cover';\n\n /**\n * 预览图比率\n */\n thumbRatio?: '1:1' | '4:3' | '16:9';\n}\n\nexport interface ImageThumbProps\n extends LocaleProps,\n ThemeProps,\n Omit<ImageSchema, 'type' | 'className'> {\n onEnlarge?: (info: ImageThumbProps) => void;\n index?: number;\n onLoad?: React.EventHandler<any>;\n overlays?: JSX.Element;\n}\n\nexport class ImageThumb extends React.Component<ImageThumbProps> {\n @autobind\n handleEnlarge() {\n const {onEnlarge, ...rest} = this.props;\n onEnlarge && onEnlarge(rest);\n }\n\n render() {\n const {\n classnames: cx,\n className,\n imageClassName,\n thumbClassName,\n thumbMode,\n thumbRatio,\n height,\n width,\n src,\n alt,\n title,\n caption,\n onLoad,\n enlargeAble,\n translate: __,\n overlays,\n imageMode\n } = this.props;\n\n
|
11
|
+
"import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, getPropValue} from '../utils/helper';\nimport {Icon} from '../components/icons';\nimport {LocaleProps, localeable} from '../locale';\nimport {BaseSchema, SchemaClassName, SchemaTpl, SchemaUrlPath} from '../Schema';\nimport {resolveVariable} from '../utils/tpl-builtin';\n\n/**\n * 图片展示控件。\n * 文档:https://baidu.gitee.io/amis/docs/components/image\n */\nexport interface ImageSchema extends BaseSchema {\n /**\n * 指定为图片展示类型\n */\n type: 'image' | 'static-image';\n\n /**\n * 默认图片地址\n */\n defaultImage?: SchemaUrlPath;\n\n /**\n * 图片标题\n */\n title?: SchemaTpl;\n\n /**\n * 关联字段名,也可以直接配置 src\n */\n name?: string;\n\n /**\n * 图片描述信息\n */\n imageCaption?: SchemaTpl;\n\n /**\n * 图片地址,如果配置了 name,这个属性不用配置。\n */\n src?: SchemaUrlPath;\n\n /**\n * 大图地址,不设置用 src\n */\n originalSrc?: SchemaUrlPath;\n\n /**\n * 是否启动放大功能。\n */\n enlargeAble?: boolean;\n\n /**\n * 是否显示尺寸。\n */\n // showDimensions?: boolean;\n\n /**\n * 图片无法显示时的替换文本\n */\n alt?: string;\n\n /**\n * 高度\n */\n height?: number;\n\n /**\n * 宽度\n */\n width?: number;\n\n /**\n * 图片 css 类名\n */\n imageClassName?: SchemaClassName;\n\n /**\n * 外层 css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 图片缩率图外层 css 类名\n */\n thumbClassName?: SchemaClassName;\n\n caption?: SchemaTpl;\n\n /**\n * 图片展示模式,默认为缩略图模式、可以配置成原图模式\n */\n imageMode?: 'thumb' | 'original';\n\n /**\n * 预览图模式\n */\n thumbMode?: 'w-full' | 'h-full' | 'contain' | 'cover';\n\n /**\n * 预览图比率\n */\n thumbRatio?: '1:1' | '4:3' | '16:9';\n\n /**\n * 链接地址\n */\n href?: SchemaTpl;\n\n /**\n * 是否新窗口打开\n */\n blank?: boolean;\n\n /**\n * 链接的 target\n */\n htmlTarget?: string;\n}\n\nexport interface ImageThumbProps\n extends LocaleProps,\n ThemeProps,\n Omit<ImageSchema, 'type' | 'className'> {\n onEnlarge?: (info: ImageThumbProps) => void;\n index?: number;\n onLoad?: React.EventHandler<any>;\n overlays?: JSX.Element;\n}\n\nexport class ImageThumb extends React.Component<ImageThumbProps> {\n @autobind\n handleEnlarge() {\n const {onEnlarge, ...rest} = this.props;\n onEnlarge && onEnlarge(rest);\n }\n\n render() {\n const {\n classnames: cx,\n className,\n imageClassName,\n thumbClassName,\n thumbMode,\n thumbRatio,\n height,\n width,\n src,\n alt,\n title,\n caption,\n href,\n blank = true,\n htmlTarget,\n onLoad,\n enlargeAble,\n translate: __,\n overlays,\n imageMode\n } = this.props;\n\n let image = (\n <div\n className={cx(\n 'Image',\n imageMode === 'original' ? 'Image--original' : 'Image--thumb',\n className\n )}\n >\n {imageMode === 'original' ? (\n <div\n className={cx(\n 'Image-origin',\n thumbMode ? `Image-origin--${thumbMode}` : ''\n )}\n style={{height: height, width: width}}\n >\n <img\n onLoad={onLoad}\n className={cx('Image-image', imageClassName)}\n src={src}\n alt={alt}\n />\n </div>\n ) : (\n <div className={cx('Image-thumbWrap')}>\n <div\n className={cx(\n 'Image-thumb',\n thumbClassName,\n thumbMode ? `Image-thumb--${thumbMode}` : '',\n thumbRatio\n ? `Image-thumb--${thumbRatio.replace(/:/g, '-')}`\n : ''\n )}\n style={{height: height, width: width}}\n >\n <img\n onLoad={onLoad}\n className={cx('Image-image', imageClassName)}\n src={src}\n alt={alt}\n />\n </div>\n {enlargeAble || overlays ? (\n <div key=\"overlay\" className={cx('Image-overlay')}>\n {enlargeAble ? (\n <a\n data-tooltip={__('Image.zoomIn')}\n data-position=\"bottom\"\n target=\"_blank\"\n onClick={this.handleEnlarge}\n >\n <Icon icon=\"view\" className=\"icon\" />\n </a>\n ) : null}\n {overlays}\n </div>\n ) : null}\n </div>\n )}\n\n {title || caption ? (\n <div key=\"caption\" className={cx('Image-info')}>\n {title ? (\n <div className={cx('Image-title')} title={title}>\n {title}\n </div>\n ) : null}\n {caption ? (\n <div className={cx('Image-caption')} title={caption}>\n {caption}\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n );\n\n if (href) {\n image = (\n <a\n href={href}\n target={htmlTarget || (blank ? '_blank' : '_self')}\n className={cx('Link', className)}\n title={title}\n >\n {image}\n </a>\n );\n }\n\n return image;\n }\n}\nconst ThemedImageThumb = themeable(localeable(ImageThumb));\nexport default ThemedImageThumb;\n\nexport const imagePlaceholder = `data:image/svg+xml,%3C%3Fxml version='1.0' standalone='no'%3F%3E%3C!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3E%3Csvg t='1631083237695' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='2420' xmlns:xlink='http://www.w3.org/1999/xlink' width='1024' height='1024'%3E%3Cdefs%3E%3Cstyle type='text/css'%3E%3C/style%3E%3C/defs%3E%3Cpath d='M959.872 128c0.032 0.032 0.096 0.064 0.128 0.128v767.776c-0.032 0.032-0.064 0.096-0.128 0.128H64.096c-0.032-0.032-0.096-0.064-0.128-0.128V128.128c0.032-0.032 0.064-0.096 0.128-0.128h895.776zM960 64H64C28.8 64 0 92.8 0 128v768c0 35.2 28.8 64 64 64h896c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z' p-id='2421' fill='%23bfbfbf'%3E%3C/path%3E%3Cpath d='M832 288c0 53.024-42.976 96-96 96s-96-42.976-96-96 42.976-96 96-96 96 42.976 96 96zM896 832H128V704l224-384 256 320h64l224-192z' p-id='2422' fill='%23bfbfbf'%3E%3C/path%3E%3C/svg%3E`;\n\nexport interface ImageFieldProps extends RendererProps {\n className?: string;\n imageClassName?: string;\n placeholder: string;\n description?: string;\n enlargeTitle?: string;\n enlargeCaption?: string;\n imageMode?: 'thumb' | 'original';\n thumbMode: 'w-full' | 'h-full' | 'contain' | 'cover';\n thumbRatio: '1:1' | '4:3' | '16:9';\n originalSrc?: string; // 原图\n enlargeAble?: boolean;\n onImageEnlarge?: (\n info: {\n src: string;\n originalSrc: string;\n title?: string;\n caption?: string;\n thumbMode?: 'w-full' | 'h-full' | 'contain' | 'cover';\n thumbRatio?: '1:1' | '4:3' | '16:9';\n },\n target: any\n ) => void;\n}\n\nexport class ImageField extends React.Component<ImageFieldProps, object> {\n static defaultProps: Pick<\n ImageFieldProps,\n 'defaultImage' | 'thumbMode' | 'thumbRatio' | 'placeholder'\n > = {\n defaultImage: imagePlaceholder,\n thumbMode: 'contain',\n thumbRatio: '1:1',\n placeholder: '-'\n };\n\n @autobind\n handleEnlarge({\n src,\n originalSrc,\n title,\n caption,\n thumbMode,\n thumbRatio\n }: ImageThumbProps) {\n const {onImageEnlarge, enlargeTitle, enlargeCaption} = this.props;\n\n onImageEnlarge &&\n onImageEnlarge(\n {\n src: src!,\n originalSrc: originalSrc || src!,\n title: enlargeTitle || title,\n caption: enlargeCaption || caption,\n thumbMode,\n thumbRatio\n },\n this.props\n );\n }\n\n render() {\n const {\n className,\n defaultImage,\n imageCaption,\n title,\n data,\n imageClassName,\n thumbClassName,\n height,\n width,\n classnames: cx,\n src,\n href,\n thumbMode,\n thumbRatio,\n placeholder,\n originalSrc,\n enlargeAble,\n imageMode\n } = this.props;\n\n const finnalSrc = src ? filter(src, data, '| raw') : '';\n let value =\n finnalSrc || getPropValue(this.props) || defaultImage || imagePlaceholder;\n\n const finnalHref = href ? filter(href, data, '| raw') : '';\n\n return (\n <div\n className={cx(\n 'ImageField',\n imageMode === 'original'\n ? 'ImageField--original'\n : 'ImageField--thumb',\n className\n )}\n >\n {value ? (\n <ThemedImageThumb\n imageClassName={imageClassName}\n thumbClassName={thumbClassName}\n height={height}\n width={width}\n src={value}\n href={finnalHref}\n title={filter(title, data)}\n caption={filter(imageCaption, data)}\n thumbMode={thumbMode}\n thumbRatio={thumbRatio}\n originalSrc={filter(originalSrc, data, '| raw') ?? value}\n enlargeAble={enlargeAble && value !== defaultImage}\n onEnlarge={this.handleEnlarge}\n imageMode={imageMode}\n />\n ) : (\n <span className=\"text-muted\">{placeholder}</span>\n )}\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'image'\n})\nexport class ImageFieldRenderer extends ImageField {}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/themes/ang-ie11.css
CHANGED
@@ -8999,26 +8999,19 @@ input[type=button].a-Button--block {
|
|
8999
8999
|
.a-Carousel-dotsControl .a-Carousel-dot.is-active {
|
9000
9000
|
opacity: 1;
|
9001
9001
|
}
|
9002
|
-
.a-Carousel-
|
9003
|
-
position: absolute;
|
9004
|
-
width: 100%;
|
9005
|
-
height: 100%;
|
9006
|
-
top: 0;
|
9007
|
-
left: 0;
|
9008
|
-
z-index: 100;
|
9009
|
-
text-align: center;
|
9010
|
-
}
|
9011
|
-
.a-Carousel-arrowsControl .a-Carousel-leftArrow {
|
9002
|
+
.a-Carousel .a-Carousel-leftArrow {
|
9012
9003
|
width: 10%;
|
9013
9004
|
min-width: var(--Carousel-arrowControl-width);
|
9014
9005
|
height: 100%;
|
9015
9006
|
cursor: pointer;
|
9007
|
+
top: 0;
|
9008
|
+
bottom: 0;
|
9016
9009
|
position: absolute;
|
9017
9010
|
transition-duration: var(--Carousel-transitionDuration);
|
9018
9011
|
display: none;
|
9019
9012
|
left: 0;
|
9020
9013
|
}
|
9021
|
-
.a-Carousel
|
9014
|
+
.a-Carousel .a-Carousel-leftArrow svg {
|
9022
9015
|
position: absolute;
|
9023
9016
|
top: 50%;
|
9024
9017
|
left: 50%;
|
@@ -9027,17 +9020,19 @@ input[type=button].a-Button--block {
|
|
9027
9020
|
width: var(--Carousel-svg-width);
|
9028
9021
|
height: var(--Carousel-svg-height);
|
9029
9022
|
}
|
9030
|
-
.a-Carousel
|
9023
|
+
.a-Carousel .a-Carousel-rightArrow {
|
9031
9024
|
width: 10%;
|
9032
9025
|
min-width: var(--Carousel-arrowControl-width);
|
9033
9026
|
height: 100%;
|
9034
9027
|
cursor: pointer;
|
9028
|
+
top: 0;
|
9029
|
+
bottom: 0;
|
9035
9030
|
position: absolute;
|
9036
9031
|
transition-duration: var(--Carousel-transitionDuration);
|
9037
9032
|
display: none;
|
9038
9033
|
right: 0;
|
9039
9034
|
}
|
9040
|
-
.a-Carousel
|
9035
|
+
.a-Carousel .a-Carousel-rightArrow svg {
|
9041
9036
|
position: absolute;
|
9042
9037
|
top: 50%;
|
9043
9038
|
left: 50%;
|
@@ -9046,12 +9041,21 @@ input[type=button].a-Button--block {
|
|
9046
9041
|
width: var(--Carousel-svg-width);
|
9047
9042
|
height: var(--Carousel-svg-height);
|
9048
9043
|
}
|
9049
|
-
.a-Carousel
|
9044
|
+
.a-Carousel:hover .a-Carousel-leftArrow {
|
9050
9045
|
display: block;
|
9051
9046
|
}
|
9052
|
-
.a-Carousel
|
9047
|
+
.a-Carousel:hover .a-Carousel-rightArrow {
|
9053
9048
|
display: block;
|
9054
9049
|
}
|
9050
|
+
.a-Carousel-arrowsControl {
|
9051
|
+
position: absolute;
|
9052
|
+
width: 100%;
|
9053
|
+
height: 100%;
|
9054
|
+
top: 0;
|
9055
|
+
left: 0;
|
9056
|
+
z-index: 100;
|
9057
|
+
text-align: center;
|
9058
|
+
}
|
9055
9059
|
|
9056
9060
|
@keyframes disappear {
|
9057
9061
|
to {
|
@@ -9260,7 +9264,6 @@ input[type=button].a-Button--block {
|
|
9260
9264
|
.a-Image-thumb {
|
9261
9265
|
width: 6.875rem;
|
9262
9266
|
height: 6.875rem;
|
9263
|
-
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI0MDAiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdHRlcm4gaWQ9ImdyaWQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxyZWN0IGZpbGw9ImJsYWNrIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIG9wYWNpdHk9IjAuMSIgLz4KICAgICAgICAgICAgPHJlY3QgZmlsbD0id2hpdGUiIHg9IjEwIiB5PSIwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIC8+CiAgICAgICAgICAgIDxyZWN0IGZpbGw9ImJsYWNrIiB4PSIxMCIgeT0iMTAiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgb3BhY2l0eT0iMC4xIiAvPgogICAgICAgICAgICA8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iMCIgeT0iMTAiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgLz4KICAgICAgICA8L3BhdHRlcm4+CiAgICA8L2RlZnM+CiAgICA8cmVjdCBmaWxsPSJ1cmwoI2dyaWQpIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiAvPgo8L3N2Zz4=");
|
9264
9267
|
position: relative;
|
9265
9268
|
overflow: hidden;
|
9266
9269
|
}
|
package/lib/themes/ang.css
CHANGED
@@ -8999,26 +8999,19 @@ input[type=button].a-Button--block {
|
|
8999
8999
|
.a-Carousel-dotsControl .a-Carousel-dot.is-active {
|
9000
9000
|
opacity: 1;
|
9001
9001
|
}
|
9002
|
-
.a-Carousel-
|
9003
|
-
position: absolute;
|
9004
|
-
width: 100%;
|
9005
|
-
height: 100%;
|
9006
|
-
top: 0;
|
9007
|
-
left: 0;
|
9008
|
-
z-index: 100;
|
9009
|
-
text-align: center;
|
9010
|
-
}
|
9011
|
-
.a-Carousel-arrowsControl .a-Carousel-leftArrow {
|
9002
|
+
.a-Carousel .a-Carousel-leftArrow {
|
9012
9003
|
width: 10%;
|
9013
9004
|
min-width: var(--Carousel-arrowControl-width);
|
9014
9005
|
height: 100%;
|
9015
9006
|
cursor: pointer;
|
9007
|
+
top: 0;
|
9008
|
+
bottom: 0;
|
9016
9009
|
position: absolute;
|
9017
9010
|
transition-duration: var(--Carousel-transitionDuration);
|
9018
9011
|
display: none;
|
9019
9012
|
left: 0;
|
9020
9013
|
}
|
9021
|
-
.a-Carousel
|
9014
|
+
.a-Carousel .a-Carousel-leftArrow svg {
|
9022
9015
|
position: absolute;
|
9023
9016
|
top: 50%;
|
9024
9017
|
left: 50%;
|
@@ -9027,17 +9020,19 @@ input[type=button].a-Button--block {
|
|
9027
9020
|
width: var(--Carousel-svg-width);
|
9028
9021
|
height: var(--Carousel-svg-height);
|
9029
9022
|
}
|
9030
|
-
.a-Carousel
|
9023
|
+
.a-Carousel .a-Carousel-rightArrow {
|
9031
9024
|
width: 10%;
|
9032
9025
|
min-width: var(--Carousel-arrowControl-width);
|
9033
9026
|
height: 100%;
|
9034
9027
|
cursor: pointer;
|
9028
|
+
top: 0;
|
9029
|
+
bottom: 0;
|
9035
9030
|
position: absolute;
|
9036
9031
|
transition-duration: var(--Carousel-transitionDuration);
|
9037
9032
|
display: none;
|
9038
9033
|
right: 0;
|
9039
9034
|
}
|
9040
|
-
.a-Carousel
|
9035
|
+
.a-Carousel .a-Carousel-rightArrow svg {
|
9041
9036
|
position: absolute;
|
9042
9037
|
top: 50%;
|
9043
9038
|
left: 50%;
|
@@ -9046,12 +9041,21 @@ input[type=button].a-Button--block {
|
|
9046
9041
|
width: var(--Carousel-svg-width);
|
9047
9042
|
height: var(--Carousel-svg-height);
|
9048
9043
|
}
|
9049
|
-
.a-Carousel
|
9044
|
+
.a-Carousel:hover .a-Carousel-leftArrow {
|
9050
9045
|
display: block;
|
9051
9046
|
}
|
9052
|
-
.a-Carousel
|
9047
|
+
.a-Carousel:hover .a-Carousel-rightArrow {
|
9053
9048
|
display: block;
|
9054
9049
|
}
|
9050
|
+
.a-Carousel-arrowsControl {
|
9051
|
+
position: absolute;
|
9052
|
+
width: 100%;
|
9053
|
+
height: 100%;
|
9054
|
+
top: 0;
|
9055
|
+
left: 0;
|
9056
|
+
z-index: 100;
|
9057
|
+
text-align: center;
|
9058
|
+
}
|
9055
9059
|
|
9056
9060
|
@keyframes disappear {
|
9057
9061
|
to {
|
@@ -9260,7 +9264,6 @@ input[type=button].a-Button--block {
|
|
9260
9264
|
.a-Image-thumb {
|
9261
9265
|
width: 6.875rem;
|
9262
9266
|
height: 6.875rem;
|
9263
|
-
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI0MDAiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdHRlcm4gaWQ9ImdyaWQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxyZWN0IGZpbGw9ImJsYWNrIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIG9wYWNpdHk9IjAuMSIgLz4KICAgICAgICAgICAgPHJlY3QgZmlsbD0id2hpdGUiIHg9IjEwIiB5PSIwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIC8+CiAgICAgICAgICAgIDxyZWN0IGZpbGw9ImJsYWNrIiB4PSIxMCIgeT0iMTAiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgb3BhY2l0eT0iMC4xIiAvPgogICAgICAgICAgICA8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iMCIgeT0iMTAiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgLz4KICAgICAgICA8L3BhdHRlcm4+CiAgICA8L2RlZnM+CiAgICA8cmVjdCBmaWxsPSJ1cmwoI2dyaWQpIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiAvPgo8L3N2Zz4=");
|
9264
9267
|
position: relative;
|
9265
9268
|
overflow: hidden;
|
9266
9269
|
}
|