amis 3.6.2 → 3.6.3
Sign up to get free protection for your applications and to get access to all the features.
- package/esm/compat.js +3 -3
- package/esm/index.js +3 -3
- package/esm/preset.js +3 -3
- package/esm/renderers/AMIS.js +3 -3
- package/esm/renderers/Action.js +3 -3
- package/esm/renderers/Alert.js +3 -3
- package/esm/renderers/AnchorNav.js +3 -3
- package/esm/renderers/App.js +3 -3
- package/esm/renderers/Audio.js +3 -3
- package/esm/renderers/Avatar.js +3 -3
- package/esm/renderers/BarCode.js +3 -3
- package/esm/renderers/Breadcrumb.js +3 -3
- package/esm/renderers/ButtonGroup.js +3 -3
- package/esm/renderers/CRUD.js +3 -3
- package/esm/renderers/CRUD2.js +3 -3
- package/esm/renderers/Calendar.js +3 -3
- package/esm/renderers/Card.js +3 -3
- package/esm/renderers/Card2.js +3 -3
- package/esm/renderers/Cards.js +3 -3
- package/esm/renderers/Carousel.js +3 -3
- package/esm/renderers/Chart.js +3 -3
- package/esm/renderers/Code.js +3 -3
- package/esm/renderers/Collapse.js +3 -3
- package/esm/renderers/CollapseGroup.js +3 -3
- package/esm/renderers/Color.js +3 -3
- package/esm/renderers/Container.js +3 -3
- package/esm/renderers/Copyable.js +3 -3
- package/esm/renderers/Custom.js +3 -3
- package/esm/renderers/Date.js +3 -3
- package/esm/renderers/DateRange.js +3 -3
- package/esm/renderers/Dialog.js +3 -3
- package/esm/renderers/Divider.js +3 -3
- package/esm/renderers/Drawer.js +3 -3
- package/esm/renderers/DropDownButton.js +3 -3
- package/esm/renderers/Each.js +3 -3
- package/esm/renderers/Flex.js +3 -3
- package/esm/renderers/Form/ButtonGroupSelect.js +3 -3
- package/esm/renderers/Form/ButtonToolbar.js +3 -3
- package/esm/renderers/Form/ChainedSelect.js +3 -3
- package/esm/renderers/Form/ChartRadios.js +3 -3
- package/esm/renderers/Form/Checkbox.js +3 -3
- package/esm/renderers/Form/Checkboxes.js +3 -3
- package/esm/renderers/Form/Combo.js +11 -9
- package/esm/renderers/Form/ConditionBuilder.js +3 -3
- package/esm/renderers/Form/Control.js +3 -3
- package/esm/renderers/Form/DiffEditor.js +3 -3
- package/esm/renderers/Form/Editor.js +3 -3
- package/esm/renderers/Form/FieldSet.js +3 -3
- package/esm/renderers/Form/Formula.js +3 -3
- package/esm/renderers/Form/Group.js +3 -3
- package/esm/renderers/Form/Hidden.js +3 -3
- package/esm/renderers/Form/IconPicker.js +3 -3
- package/esm/renderers/Form/IconPickerIcons.js +3 -3
- package/esm/renderers/Form/IconSelect.js +3 -3
- package/esm/renderers/Form/IconSelectStore.js +3 -3
- package/esm/renderers/Form/InputArray.js +3 -3
- package/esm/renderers/Form/InputCity.js +3 -3
- package/esm/renderers/Form/InputColor.js +3 -3
- package/esm/renderers/Form/InputDate.js +3 -3
- package/esm/renderers/Form/InputDateRange.js +3 -3
- package/esm/renderers/Form/InputExcel.js +3 -3
- package/esm/renderers/Form/InputFile.js +3 -3
- package/esm/renderers/Form/InputFormula.js +3 -3
- package/esm/renderers/Form/InputGroup.js +3 -3
- package/esm/renderers/Form/InputImage.js +3 -3
- package/esm/renderers/Form/InputMonthRange.js +3 -3
- package/esm/renderers/Form/InputNumber.js +3 -3
- package/esm/renderers/Form/InputQuarterRange.js +3 -3
- package/esm/renderers/Form/InputRange.js +3 -3
- package/esm/renderers/Form/InputRating.js +3 -3
- package/esm/renderers/Form/InputRepeat.js +3 -3
- package/esm/renderers/Form/InputRichText.js +3 -3
- package/esm/renderers/Form/InputSubForm.js +3 -3
- package/esm/renderers/Form/InputTable.js +3 -3
- package/esm/renderers/Form/InputTag.js +3 -3
- package/esm/renderers/Form/InputText.js +3 -3
- package/esm/renderers/Form/InputTree.js +3 -3
- package/esm/renderers/Form/InputYearRange.js +3 -3
- package/esm/renderers/Form/JSONSchema.js +3 -3
- package/esm/renderers/Form/JSONSchemaEditor.js +3 -3
- package/esm/renderers/Form/ListSelect.js +3 -3
- package/esm/renderers/Form/LocationPicker.js +3 -3
- package/esm/renderers/Form/MatrixCheckboxes.js +3 -3
- package/esm/renderers/Form/NestedSelect.js +3 -3
- package/esm/renderers/Form/Picker.js +3 -3
- package/esm/renderers/Form/Radio.js +3 -3
- package/esm/renderers/Form/Radios.js +3 -3
- package/esm/renderers/Form/Select.js +3 -3
- package/esm/renderers/Form/Static.js +3 -3
- package/esm/renderers/Form/StaticHoc.js +3 -3
- package/esm/renderers/Form/Switch.js +3 -3
- package/esm/renderers/Form/TabsTransfer.js +3 -3
- package/esm/renderers/Form/TabsTransferPicker.js +3 -3
- package/esm/renderers/Form/Textarea.js +3 -3
- package/esm/renderers/Form/Transfer.js +3 -3
- package/esm/renderers/Form/TransferPicker.js +3 -3
- package/esm/renderers/Form/TreeSelect.js +3 -3
- package/esm/renderers/Form/UUID.js +3 -3
- package/esm/renderers/Form/UserSelect.js +3 -3
- package/esm/renderers/Grid.js +3 -3
- package/esm/renderers/Grid2D.js +3 -3
- package/esm/renderers/GridNav.js +3 -3
- package/esm/renderers/HBox.js +3 -3
- package/esm/renderers/IFrame.js +3 -3
- package/esm/renderers/Icon.js +3 -3
- package/esm/renderers/Image.js +3 -3
- package/esm/renderers/Images.js +3 -3
- package/esm/renderers/Json.js +3 -3
- package/esm/renderers/Link.js +3 -3
- package/esm/renderers/List.js +3 -3
- package/esm/renderers/Log.js +3 -3
- package/esm/renderers/Mapping.js +3 -3
- package/esm/renderers/Markdown.js +3 -3
- package/esm/renderers/MultilineText.js +3 -3
- package/esm/renderers/Nav.js +3 -3
- package/esm/renderers/Number.js +3 -3
- package/esm/renderers/OfficeViewer.js +3 -3
- package/esm/renderers/Operation.js +3 -3
- package/esm/renderers/Page.js +3 -3
- package/esm/renderers/Pagination.js +3 -3
- package/esm/renderers/PaginationWrapper.js +3 -3
- package/esm/renderers/Panel.js +3 -3
- package/esm/renderers/Password.js +3 -3
- package/esm/renderers/Plain.js +3 -3
- package/esm/renderers/PopOver.js +3 -3
- package/esm/renderers/Portlet.js +3 -3
- package/esm/renderers/Progress.js +3 -3
- package/esm/renderers/Property.js +3 -3
- package/esm/renderers/QRCode.js +3 -3
- package/esm/renderers/QuickEdit.js +3 -3
- package/esm/renderers/Remark.js +3 -3
- package/esm/renderers/SearchBox.js +3 -3
- package/esm/renderers/Service.js +3 -3
- package/esm/renderers/SparkLine.js +3 -3
- package/esm/renderers/Spinner.js +3 -3
- package/esm/renderers/Status.js +3 -3
- package/esm/renderers/Steps.js +3 -3
- package/esm/renderers/SwitchContainer.js +3 -3
- package/esm/renderers/Table/AutoFilterForm.js +3 -3
- package/esm/renderers/Table/Cell.js +3 -3
- package/esm/renderers/Table/ColGroup.js +3 -3
- package/esm/renderers/Table/ColumnToggler.js +3 -3
- package/esm/renderers/Table/HeadCellFilterDropdown.js +3 -3
- package/esm/renderers/Table/HeadCellSearchDropdown.js +3 -3
- package/esm/renderers/Table/ItemActionsWrapper.js +3 -3
- package/esm/renderers/Table/TableBody.js +3 -3
- package/esm/renderers/Table/TableCell.js +3 -3
- package/esm/renderers/Table/TableContent.js +3 -3
- package/esm/renderers/Table/TableRow.js +3 -3
- package/esm/renderers/Table/exportExcel.js +3 -3
- package/esm/renderers/Table/index.js +3 -3
- package/esm/renderers/Table2/ColumnToggler.js +3 -3
- package/esm/renderers/Table2/HeadCellSearchDropdown.js +3 -3
- package/esm/renderers/Table2/TableCell.js +3 -3
- package/esm/renderers/Table2/index.js +3 -3
- package/esm/renderers/TableView.js +3 -3
- package/esm/renderers/Tabs.js +3 -3
- package/esm/renderers/Tag.js +3 -3
- package/esm/renderers/Tasks.js +3 -3
- package/esm/renderers/Timeline.js +3 -3
- package/esm/renderers/TooltipWrapper.js +3 -3
- package/esm/renderers/Tpl.js +3 -3
- package/esm/renderers/VBox.js +3 -3
- package/esm/renderers/Video.js +3 -3
- package/esm/renderers/WebComponent.js +3 -3
- package/esm/renderers/Wizard.js +3 -3
- package/esm/renderers/Words.js +3 -3
- package/esm/renderers/Wrapper.js +3 -3
- package/esm/schemaExtend.js +3 -3
- package/lib/compat.js +3 -3
- package/lib/index.js +3 -3
- package/lib/preset.js +3 -3
- package/lib/renderers/AMIS.js +3 -3
- package/lib/renderers/Action.js +3 -3
- package/lib/renderers/Alert.js +3 -3
- package/lib/renderers/AnchorNav.js +3 -3
- package/lib/renderers/App.js +3 -3
- package/lib/renderers/Audio.js +3 -3
- package/lib/renderers/Avatar.js +3 -3
- package/lib/renderers/BarCode.js +3 -3
- package/lib/renderers/Breadcrumb.js +3 -3
- package/lib/renderers/ButtonGroup.js +3 -3
- package/lib/renderers/CRUD.js +3 -3
- package/lib/renderers/CRUD2.js +3 -3
- package/lib/renderers/Calendar.js +3 -3
- package/lib/renderers/Card.js +3 -3
- package/lib/renderers/Card2.js +3 -3
- package/lib/renderers/Cards.js +3 -3
- package/lib/renderers/Carousel.js +3 -3
- package/lib/renderers/Chart.js +3 -3
- package/lib/renderers/Code.js +3 -3
- package/lib/renderers/Collapse.js +3 -3
- package/lib/renderers/CollapseGroup.js +3 -3
- package/lib/renderers/Color.js +3 -3
- package/lib/renderers/Container.d.ts +1 -1
- package/lib/renderers/Container.js +3 -3
- package/lib/renderers/Copyable.js +3 -3
- package/lib/renderers/Custom.js +3 -3
- package/lib/renderers/Date.js +3 -3
- package/lib/renderers/DateRange.js +3 -3
- package/lib/renderers/Dialog.d.ts +40 -40
- package/lib/renderers/Dialog.js +3 -3
- package/lib/renderers/Divider.js +3 -3
- package/lib/renderers/Drawer.js +3 -3
- package/lib/renderers/DropDownButton.js +3 -3
- package/lib/renderers/Each.js +3 -3
- package/lib/renderers/Flex.js +3 -3
- package/lib/renderers/Form/ButtonGroupSelect.js +3 -3
- package/lib/renderers/Form/ButtonToolbar.js +3 -3
- package/lib/renderers/Form/ChainedSelect.js +3 -3
- package/lib/renderers/Form/ChartRadios.js +3 -3
- package/lib/renderers/Form/Checkbox.js +3 -3
- package/lib/renderers/Form/Checkboxes.js +3 -3
- package/lib/renderers/Form/Combo.js +11 -9
- package/lib/renderers/Form/ConditionBuilder.js +3 -3
- package/lib/renderers/Form/Control.js +3 -3
- package/lib/renderers/Form/DiffEditor.d.ts +38 -38
- package/lib/renderers/Form/DiffEditor.js +3 -3
- package/lib/renderers/Form/Editor.d.ts +28 -27
- package/lib/renderers/Form/Editor.js +3 -3
- package/lib/renderers/Form/FieldSet.js +3 -3
- package/lib/renderers/Form/Formula.js +3 -3
- package/lib/renderers/Form/Group.js +3 -3
- package/lib/renderers/Form/Hidden.js +3 -3
- package/lib/renderers/Form/IconPicker.js +3 -3
- package/lib/renderers/Form/IconPickerIcons.js +3 -3
- package/lib/renderers/Form/IconSelect.js +3 -3
- package/lib/renderers/Form/IconSelectStore.js +3 -3
- package/lib/renderers/Form/InputArray.js +3 -3
- package/lib/renderers/Form/InputCity.d.ts +80 -80
- package/lib/renderers/Form/InputCity.js +3 -3
- package/lib/renderers/Form/InputColor.d.ts +40 -40
- package/lib/renderers/Form/InputColor.js +3 -3
- package/lib/renderers/Form/InputDate.js +3 -3
- package/lib/renderers/Form/InputDateRange.js +3 -3
- package/lib/renderers/Form/InputExcel.js +3 -3
- package/lib/renderers/Form/InputFile.js +3 -3
- package/lib/renderers/Form/InputFormula.js +3 -3
- package/lib/renderers/Form/InputGroup.d.ts +1 -1
- package/lib/renderers/Form/InputGroup.js +3 -3
- package/lib/renderers/Form/InputImage.js +3 -3
- package/lib/renderers/Form/InputMonthRange.js +3 -3
- package/lib/renderers/Form/InputNumber.js +3 -3
- package/lib/renderers/Form/InputQuarterRange.js +3 -3
- package/lib/renderers/Form/InputRange.js +3 -3
- package/lib/renderers/Form/InputRating.js +3 -3
- package/lib/renderers/Form/InputRepeat.js +3 -3
- package/lib/renderers/Form/InputRichText.js +3 -3
- package/lib/renderers/Form/InputSubForm.js +3 -3
- package/lib/renderers/Form/InputTable.js +3 -3
- package/lib/renderers/Form/InputTag.js +3 -3
- package/lib/renderers/Form/InputText.js +3 -3
- package/lib/renderers/Form/InputTree.js +3 -3
- package/lib/renderers/Form/InputYearRange.js +3 -3
- package/lib/renderers/Form/JSONSchema.js +3 -3
- package/lib/renderers/Form/JSONSchemaEditor.js +3 -3
- package/lib/renderers/Form/ListSelect.js +3 -3
- package/lib/renderers/Form/LocationPicker.js +3 -3
- package/lib/renderers/Form/MatrixCheckboxes.js +3 -3
- package/lib/renderers/Form/NestedSelect.js +3 -3
- package/lib/renderers/Form/Picker.js +3 -3
- package/lib/renderers/Form/Radio.js +3 -3
- package/lib/renderers/Form/Radios.js +3 -3
- package/lib/renderers/Form/Select.js +3 -3
- package/lib/renderers/Form/Static.js +3 -3
- package/lib/renderers/Form/StaticHoc.js +3 -3
- package/lib/renderers/Form/Switch.js +3 -3
- package/lib/renderers/Form/TabsTransfer.js +3 -3
- package/lib/renderers/Form/TabsTransferPicker.js +3 -3
- package/lib/renderers/Form/Textarea.js +3 -3
- package/lib/renderers/Form/Transfer.js +3 -3
- package/lib/renderers/Form/TransferPicker.js +3 -3
- package/lib/renderers/Form/TreeSelect.js +3 -3
- package/lib/renderers/Form/UUID.js +3 -3
- package/lib/renderers/Form/UserSelect.js +3 -3
- package/lib/renderers/Grid.js +3 -3
- package/lib/renderers/Grid2D.js +3 -3
- package/lib/renderers/GridNav.js +3 -3
- package/lib/renderers/HBox.js +3 -3
- package/lib/renderers/IFrame.js +3 -3
- package/lib/renderers/Icon.js +3 -3
- package/lib/renderers/Image.js +3 -3
- package/lib/renderers/Images.js +3 -3
- package/lib/renderers/Json.js +3 -3
- package/lib/renderers/Link.js +3 -3
- package/lib/renderers/List.js +3 -3
- package/lib/renderers/Log.js +3 -3
- package/lib/renderers/Mapping.js +3 -3
- package/lib/renderers/Markdown.js +3 -3
- package/lib/renderers/MultilineText.js +3 -3
- package/lib/renderers/Nav.js +3 -3
- package/lib/renderers/Number.js +3 -3
- package/lib/renderers/OfficeViewer.js +3 -3
- package/lib/renderers/Operation.js +3 -3
- package/lib/renderers/Page.js +3 -3
- package/lib/renderers/Pagination.js +3 -3
- package/lib/renderers/PaginationWrapper.js +3 -3
- package/lib/renderers/Panel.js +3 -3
- package/lib/renderers/Password.js +3 -3
- package/lib/renderers/Plain.js +3 -3
- package/lib/renderers/PopOver.js +3 -3
- package/lib/renderers/Portlet.js +3 -3
- package/lib/renderers/Progress.js +3 -3
- package/lib/renderers/Property.js +3 -3
- package/lib/renderers/QRCode.js +3 -3
- package/lib/renderers/QuickEdit.js +3 -3
- package/lib/renderers/Remark.d.ts +1 -1
- package/lib/renderers/Remark.js +3 -3
- package/lib/renderers/SearchBox.js +3 -3
- package/lib/renderers/Service.js +3 -3
- package/lib/renderers/SparkLine.js +3 -3
- package/lib/renderers/Spinner.js +3 -3
- package/lib/renderers/Status.js +3 -3
- package/lib/renderers/Steps.js +3 -3
- package/lib/renderers/SwitchContainer.js +3 -3
- package/lib/renderers/Table/AutoFilterForm.js +3 -3
- package/lib/renderers/Table/Cell.js +3 -3
- package/lib/renderers/Table/ColGroup.js +3 -3
- package/lib/renderers/Table/ColumnToggler.js +3 -3
- package/lib/renderers/Table/HeadCellFilterDropdown.js +3 -3
- package/lib/renderers/Table/HeadCellSearchDropdown.js +3 -3
- package/lib/renderers/Table/ItemActionsWrapper.js +3 -3
- package/lib/renderers/Table/TableBody.js +3 -3
- package/lib/renderers/Table/TableCell.js +3 -3
- package/lib/renderers/Table/TableContent.js +3 -3
- package/lib/renderers/Table/TableRow.js +3 -3
- package/lib/renderers/Table/exportExcel.js +3 -3
- package/lib/renderers/Table/index.js +3 -3
- package/lib/renderers/Table2/ColumnToggler.js +3 -3
- package/lib/renderers/Table2/HeadCellSearchDropdown.js +3 -3
- package/lib/renderers/Table2/TableCell.js +3 -3
- package/lib/renderers/Table2/index.js +3 -3
- package/lib/renderers/TableView.js +3 -3
- package/lib/renderers/Tabs.js +3 -3
- package/lib/renderers/Tag.js +3 -3
- package/lib/renderers/Tasks.js +3 -3
- package/lib/renderers/Timeline.js +3 -3
- package/lib/renderers/TooltipWrapper.js +3 -3
- package/lib/renderers/Tpl.js +3 -3
- package/lib/renderers/VBox.js +3 -3
- package/lib/renderers/Video.js +3 -3
- package/lib/renderers/WebComponent.js +3 -3
- package/lib/renderers/Wizard.js +3 -3
- package/lib/renderers/Words.js +3 -3
- package/lib/renderers/Wrapper.js +3 -3
- package/lib/schemaExtend.js +3 -3
- package/package.json +4 -4
- package/sdk/barcode.js +50 -50
- package/sdk/charts.js +19 -19
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/exceljs.js +1 -1
- package/sdk/fomula-doc.js +1 -1
- package/sdk/json-view.js +1 -1
- package/sdk/markdown.js +68 -68
- package/sdk/office-viewer.js +125 -125
- package/sdk/papaparse.js +1 -1
- package/sdk/rest.js +15 -15
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk.js +1514 -1514
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +58 -58
- package/sdk/xlsx.js +3 -3
package/sdk/cropperjs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
;/*!node_modules/cropperjs/dist/cropper.js*/
|
2
|
-
amis.define("
|
2
|
+
amis.define("b360f92",(function(t,e,i,a){
|
3
3
|
/*!
|
4
4
|
* Cropper.js v1.6.1
|
5
5
|
* https://fengyuanchen.github.io/cropperjs
|
@@ -11,4 +11,4 @@ amis.define("f74603d",(function(t,e,i,a){
|
|
11
11
|
*/
|
12
12
|
var n,o;n=this,o=function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;i<arguments.length;i++){var a=null!=arguments[i]?arguments[i]:{};i%2?t(Object(a),!0).forEach((function(t){o(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):t(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var i=0;i<e.length;i++){var a=e[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,s(a.key),a)}}function o(t,e,i){return(e=s(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function r(t){return function(t){if(Array.isArray(t))return h(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return h(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?h(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i<e;i++)a[i]=t[i];return a}function s(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var a=i.call(t,e||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}var c="undefined"!=typeof window&&void 0!==window.document,l=c?window:{},d=!(!c||!l.document.documentElement)&&"ontouchstart"in l.document.documentElement,p=!!c&&"PointerEvent"in l,m="cropper",u="all",g="crop",f="move",v="zoom",w="e",b="w",y="s",x="n",M="ne",C="nw",D="se",B="sw",k="".concat(m,"-crop"),O="".concat(m,"-disabled"),T="".concat(m,"-hidden"),E="".concat(m,"-hide"),W="".concat(m,"-invisible"),H="".concat(m,"-modal"),N="".concat(m,"-move"),L="".concat(m,"Action"),z="".concat(m,"Preview"),Y="crop",X="move",R="none",S="crop",j="cropend",A="cropmove",P="cropstart",I="dblclick",U=p?"pointerdown":d?"touchstart":"mousedown",q=p?"pointermove":d?"touchmove":"mousemove",$=p?"pointerup pointercancel":d?"touchend touchcancel":"mouseup",Q="ready",K="resize",Z="wheel",G="zoom",V="image/jpeg",F=/^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/,J=/^data:/,_=/^data:image\/jpeg;base64,/,tt=/^img|canvas$/i,et={viewMode:0,dragMode:Y,initialAspectRatio:NaN,aspectRatio:NaN,data:null,preview:"",responsive:!0,restore:!0,checkCrossOrigin:!0,checkOrientation:!0,modal:!0,guides:!0,center:!0,highlight:!0,background:!0,autoCrop:!0,autoCropArea:.8,movable:!0,rotatable:!0,scalable:!0,zoomable:!0,zoomOnTouch:!0,zoomOnWheel:!0,wheelZoomRatio:.1,cropBoxMovable:!0,cropBoxResizable:!0,toggleDragModeOnDblclick:!0,minCanvasWidth:0,minCanvasHeight:0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:200,minContainerHeight:100,ready:null,cropstart:null,cropmove:null,cropend:null,crop:null,zoom:null},it=Number.isNaN||l.isNaN;function at(t){return"number"==typeof t&&!it(t)}var nt=function(t){return t>0&&t<1/0};function ot(t){return void 0===t}function rt(t){return"object"===i(t)&&null!==t}var ht=Object.prototype.hasOwnProperty;function st(t){if(!rt(t))return!1;try{var e=t.constructor,i=e.prototype;return e&&i&&ht.call(i,"isPrototypeOf")}catch(t){return!1}}function ct(t){return"function"==typeof t}var lt=Array.prototype.slice;function dt(t){return Array.from?Array.from(t):lt.call(t)}function pt(t,e){return t&&ct(e)&&(Array.isArray(t)||at(t.length)?dt(t).forEach((function(i,a){e.call(t,i,a,t)})):rt(t)&&Object.keys(t).forEach((function(i){e.call(t,t[i],i,t)}))),t}var mt=Object.assign||function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),a=1;a<e;a++)i[a-1]=arguments[a];return rt(t)&&i.length>0&&i.forEach((function(e){rt(e)&&Object.keys(e).forEach((function(i){t[i]=e[i]}))})),t},ut=/\.\d*(?:0|9){12}\d*$/;function gt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e11;return ut.test(t)?Math.round(t*e)/e:t}var ft=/^width|height|left|top|marginLeft|marginTop$/;function vt(t,e){var i=t.style;pt(e,(function(t,e){ft.test(e)&&at(t)&&(t="".concat(t,"px")),i[e]=t}))}function wt(t,e){if(e)if(at(t.length))pt(t,(function(t){wt(t,e)}));else if(t.classList)t.classList.add(e);else{var i=t.className.trim();i?i.indexOf(e)<0&&(t.className="".concat(i," ").concat(e)):t.className=e}}function bt(t,e){e&&(at(t.length)?pt(t,(function(t){bt(t,e)})):t.classList?t.classList.remove(e):t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,"")))}function yt(t,e,i){e&&(at(t.length)?pt(t,(function(t){yt(t,e,i)})):i?wt(t,e):bt(t,e))}var xt=/([a-z\d])([A-Z])/g;function Mt(t){return t.replace(xt,"$1-$2").toLowerCase()}function Ct(t,e){return rt(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(Mt(e)))}function Dt(t,e,i){rt(i)?t[e]=i:t.dataset?t.dataset[e]=i:t.setAttribute("data-".concat(Mt(e)),i)}var Bt=/\s\s*/,kt=function(){var t=!1;if(c){var e=!1,i=function(){},a=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(t){e=t}});l.addEventListener("test",i,a),l.removeEventListener("test",i,a)}return t}();function Ot(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=i;e.trim().split(Bt).forEach((function(e){if(!kt){var o=t.listeners;o&&o[e]&&o[e][i]&&(n=o[e][i],delete o[e][i],0===Object.keys(o[e]).length&&delete o[e],0===Object.keys(o).length&&delete t.listeners)}t.removeEventListener(e,n,a)}))}function Tt(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=i;e.trim().split(Bt).forEach((function(e){if(a.once&&!kt){var o=t.listeners,r=void 0===o?{}:o;n=function(){delete r[e][i],t.removeEventListener(e,n,a);for(var o=arguments.length,h=new Array(o),s=0;s<o;s++)h[s]=arguments[s];i.apply(t,h)},r[e]||(r[e]={}),r[e][i]&&t.removeEventListener(e,r[e][i],a),r[e][i]=n,t.listeners=r}t.addEventListener(e,n,a)}))}function Et(t,e,i){var a;return ct(Event)&&ct(CustomEvent)?a=new CustomEvent(e,{detail:i,bubbles:!0,cancelable:!0}):(a=document.createEvent("CustomEvent")).initCustomEvent(e,!0,!0,i),t.dispatchEvent(a)}function Wt(t){var e=t.getBoundingClientRect();return{left:e.left+(window.pageXOffset-document.documentElement.clientLeft),top:e.top+(window.pageYOffset-document.documentElement.clientTop)}}var Ht=l.location,Nt=/^(\w+:)\/\/([^:/?#]*):?(\d*)/i;function Lt(t){var e=t.match(Nt);return null!==e&&(e[1]!==Ht.protocol||e[2]!==Ht.hostname||e[3]!==Ht.port)}function zt(t){var e="timestamp=".concat((new Date).getTime());return t+(-1===t.indexOf("?")?"?":"&")+e}function Yt(t){var e=t.rotate,i=t.scaleX,a=t.scaleY,n=t.translateX,o=t.translateY,r=[];at(n)&&0!==n&&r.push("translateX(".concat(n,"px)")),at(o)&&0!==o&&r.push("translateY(".concat(o,"px)")),at(e)&&0!==e&&r.push("rotate(".concat(e,"deg)")),at(i)&&1!==i&&r.push("scaleX(".concat(i,")")),at(a)&&1!==a&&r.push("scaleY(".concat(a,")"));var h=r.length?r.join(" "):"none";return{WebkitTransform:h,msTransform:h,transform:h}}function Xt(t,i){var a=t.pageX,n=t.pageY,o={endX:a,endY:n};return i?o:e({startX:a,startY:n},o)}function Rt(t){var e=t.aspectRatio,i=t.height,a=t.width,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"contain",o=nt(a),r=nt(i);if(o&&r){var h=i*e;"contain"===n&&h>a||"cover"===n&&h<a?i=a/e:a=i*e}else o?i=a/e:r&&(a=i*e);return{width:a,height:i}}function St(t,e,i,a){var n=e.aspectRatio,o=e.naturalWidth,h=e.naturalHeight,s=e.rotate,c=void 0===s?0:s,l=e.scaleX,d=void 0===l?1:l,p=e.scaleY,m=void 0===p?1:p,u=i.aspectRatio,g=i.naturalWidth,f=i.naturalHeight,v=a.fillColor,w=void 0===v?"transparent":v,b=a.imageSmoothingEnabled,y=void 0===b||b,x=a.imageSmoothingQuality,M=void 0===x?"low":x,C=a.maxWidth,D=void 0===C?1/0:C,B=a.maxHeight,k=void 0===B?1/0:B,O=a.minWidth,T=void 0===O?0:O,E=a.minHeight,W=void 0===E?0:E,H=document.createElement("canvas"),N=H.getContext("2d"),L=Rt({aspectRatio:u,width:D,height:k}),z=Rt({aspectRatio:u,width:T,height:W},"cover"),Y=Math.min(L.width,Math.max(z.width,g)),X=Math.min(L.height,Math.max(z.height,f)),R=Rt({aspectRatio:n,width:D,height:k}),S=Rt({aspectRatio:n,width:T,height:W},"cover"),j=Math.min(R.width,Math.max(S.width,o)),A=Math.min(R.height,Math.max(S.height,h)),P=[-j/2,-A/2,j,A];return H.width=gt(Y),H.height=gt(X),N.fillStyle=w,N.fillRect(0,0,Y,X),N.save(),N.translate(Y/2,X/2),N.rotate(c*Math.PI/180),N.scale(d,m),N.imageSmoothingEnabled=y,N.imageSmoothingQuality=M,N.drawImage.apply(N,[t].concat(r(P.map((function(t){return Math.floor(gt(t))}))))),N.restore(),H}var jt=String.fromCharCode,At=/^data:.*,/;function Pt(t){var e,i=new DataView(t);try{var a,n,o;if(255===i.getUint8(0)&&216===i.getUint8(1))for(var r=i.byteLength,h=2;h+1<r;){if(255===i.getUint8(h)&&225===i.getUint8(h+1)){n=h;break}h+=1}if(n){var s=n+10;if("Exif"===function(t,e,i){var a="";i+=e;for(var n=e;n<i;n+=1)a+=jt(t.getUint8(n));return a}(i,n+4,4)){var c=i.getUint16(s);if(((a=18761===c)||19789===c)&&42===i.getUint16(s+2,a)){var l=i.getUint32(s+4,a);l>=8&&(o=s+l)}}}if(o){var d,p,m=i.getUint16(o,a);for(p=0;p<m;p+=1)if(d=o+12*p+2,274===i.getUint16(d,a)){d+=8,e=i.getUint16(d,a),i.setUint16(d,1,a);break}}}catch(t){e=1}return e}var It={render:function(){this.initContainer(),this.initCanvas(),this.initCropBox(),this.renderCanvas(),this.cropped&&this.renderCropBox()},initContainer:function(){var t=this.element,e=this.options,i=this.container,a=this.cropper,n=Number(e.minContainerWidth),o=Number(e.minContainerHeight);wt(a,T),bt(t,T);var r={width:Math.max(i.offsetWidth,n>=0?n:200),height:Math.max(i.offsetHeight,o>=0?o:100)};this.containerData=r,vt(a,{width:r.width,height:r.height}),wt(t,T),bt(a,T)},initCanvas:function(){var t=this.containerData,e=this.imageData,i=this.options.viewMode,a=Math.abs(e.rotate)%180==90,n=a?e.naturalHeight:e.naturalWidth,o=a?e.naturalWidth:e.naturalHeight,r=n/o,h=t.width,s=t.height;t.height*r>t.width?3===i?h=t.height*r:s=t.width/r:3===i?s=t.width/r:h=t.height*r;var c={aspectRatio:r,naturalWidth:n,naturalHeight:o,width:h,height:s};this.canvasData=c,this.limited=1===i||2===i,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=mt({},c)},limitCanvas:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=i.viewMode,h=n.aspectRatio,s=this.cropped&&o;if(t){var c=Number(i.minCanvasWidth)||0,l=Number(i.minCanvasHeight)||0;r>1?(c=Math.max(c,a.width),l=Math.max(l,a.height),3===r&&(l*h>c?c=l*h:l=c/h)):r>0&&(c?c=Math.max(c,s?o.width:0):l?l=Math.max(l,s?o.height:0):s&&(c=o.width,(l=o.height)*h>c?c=l*h:l=c/h));var d=Rt({aspectRatio:h,width:c,height:l});c=d.width,l=d.height,n.minWidth=c,n.minHeight=l,n.maxWidth=1/0,n.maxHeight=1/0}if(e)if(r>(s?0:1)){var p=a.width-n.width,m=a.height-n.height;n.minLeft=Math.min(0,p),n.minTop=Math.min(0,m),n.maxLeft=Math.max(0,p),n.maxTop=Math.max(0,m),s&&this.limited&&(n.minLeft=Math.min(o.left,o.left+(o.width-n.width)),n.minTop=Math.min(o.top,o.top+(o.height-n.height)),n.maxLeft=o.left,n.maxTop=o.top,2===r&&(n.width>=a.width&&(n.minLeft=Math.min(0,p),n.maxLeft=Math.max(0,p)),n.height>=a.height&&(n.minTop=Math.min(0,m),n.maxTop=Math.max(0,m))))}else n.minLeft=-n.width,n.minTop=-n.height,n.maxLeft=a.width,n.maxTop=a.height},renderCanvas:function(t,e){var i=this.canvasData,a=this.imageData;if(e){var n=function(t){var e=t.width,i=t.height,a=t.degree;if(90==(a=Math.abs(a)%180))return{width:i,height:e};var n=a%90*Math.PI/180,o=Math.sin(n),r=Math.cos(n),h=e*r+i*o,s=e*o+i*r;return a>90?{width:s,height:h}:{width:h,height:s}}({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),o=n.width,r=n.height,h=i.width*(o/i.naturalWidth),s=i.height*(r/i.naturalHeight);i.left-=(h-i.width)/2,i.top-=(s-i.height)/2,i.width=h,i.height=s,i.aspectRatio=o/r,i.naturalWidth=o,i.naturalHeight=r,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.width<i.minWidth)&&(i.left=i.oldLeft),(i.height>i.maxHeight||i.height<i.minHeight)&&(i.top=i.oldTop),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),this.limitCanvas(!1,!0),i.left=Math.min(Math.max(i.left,i.minLeft),i.maxLeft),i.top=Math.min(Math.max(i.top,i.minTop),i.maxTop),i.oldLeft=i.left,i.oldTop=i.top,vt(this.canvas,mt({width:i.width,height:i.height},Yt({translateX:i.left,translateY:i.top}))),this.renderImage(t),this.cropped&&this.limited&&this.limitCropBox(!0,!0)},renderImage:function(t){var e=this.canvasData,i=this.imageData,a=i.naturalWidth*(e.width/e.naturalWidth),n=i.naturalHeight*(e.height/e.naturalHeight);mt(i,{width:a,height:n,left:(e.width-a)/2,top:(e.height-n)/2}),vt(this.image,mt({width:i.width,height:i.height},Yt(mt({translateX:i.left,translateY:i.top},i)))),t&&this.output()},initCropBox:function(){var t=this.options,e=this.canvasData,i=t.aspectRatio||t.initialAspectRatio,a=Number(t.autoCropArea)||.8,n={width:e.width,height:e.height};i&&(e.height*i>e.width?n.height=n.width/i:n.width=n.height*i),this.cropBoxData=n,this.limitCropBox(!0,!0),n.width=Math.min(Math.max(n.width,n.minWidth),n.maxWidth),n.height=Math.min(Math.max(n.height,n.minHeight),n.maxHeight),n.width=Math.max(n.minWidth,n.width*a),n.height=Math.max(n.minHeight,n.height*a),n.left=e.left+(e.width-n.width)/2,n.top=e.top+(e.height-n.height)/2,n.oldLeft=n.left,n.oldTop=n.top,this.initialCropBoxData=mt({},n)},limitCropBox:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=this.limited,h=i.aspectRatio;if(t){var s=Number(i.minCropBoxWidth)||0,c=Number(i.minCropBoxHeight)||0,l=r?Math.min(a.width,n.width,n.width+n.left,a.width-n.left):a.width,d=r?Math.min(a.height,n.height,n.height+n.top,a.height-n.top):a.height;s=Math.min(s,a.width),c=Math.min(c,a.height),h&&(s&&c?c*h>s?c=s/h:s=c*h:s?c=s/h:c&&(s=c*h),d*h>l?d=l/h:l=d*h),o.minWidth=Math.min(s,l),o.minHeight=Math.min(c,d),o.maxWidth=l,o.maxHeight=d}e&&(r?(o.minLeft=Math.max(0,n.left),o.minTop=Math.max(0,n.top),o.maxLeft=Math.min(a.width,n.left+n.width)-o.width,o.maxTop=Math.min(a.height,n.top+n.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.width<i.minWidth)&&(i.left=i.oldLeft),(i.height>i.maxHeight||i.height<i.minHeight)&&(i.top=i.oldTop),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),this.limitCropBox(!1,!0),i.left=Math.min(Math.max(i.left,i.minLeft),i.maxLeft),i.top=Math.min(Math.max(i.top,i.minTop),i.maxTop),i.oldLeft=i.left,i.oldTop=i.top,t.movable&&t.cropBoxMovable&&Dt(this.face,L,i.width>=e.width&&i.height>=e.height?f:u),vt(this.cropBox,mt({width:i.width,height:i.height},Yt({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Et(this.element,S,this.getData())}},Ut={initPreview:function(){var t=this.element,e=this.crossOrigin,i=this.options.preview,a=e?this.crossOriginUrl:this.url,n=t.alt||"The image to preview",o=document.createElement("img");if(e&&(o.crossOrigin=e),o.src=a,o.alt=n,this.viewBox.appendChild(o),this.viewBoxImage=o,i){var r=i;"string"==typeof i?r=t.ownerDocument.querySelectorAll(i):i.querySelector&&(r=[i]),this.previews=r,pt(r,(function(t){var i=document.createElement("img");Dt(t,z,{width:t.offsetWidth,height:t.offsetHeight,html:t.innerHTML}),e&&(i.crossOrigin=e),i.src=a,i.alt=n,i.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',t.innerHTML="",t.appendChild(i)}))}},resetPreview:function(){pt(this.previews,(function(t){var e=Ct(t,z);vt(t,{width:e.width,height:e.height}),t.innerHTML=e.html,function(t,e){if(rt(t[e]))try{delete t[e]}catch(i){t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch(i){t.dataset[e]=void 0}else t.removeAttribute("data-".concat(Mt(e)))}(t,z)}))},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,a=i.width,n=i.height,o=t.width,r=t.height,h=i.left-e.left-t.left,s=i.top-e.top-t.top;this.cropped&&!this.disabled&&(vt(this.viewBoxImage,mt({width:o,height:r},Yt(mt({translateX:-h,translateY:-s},t)))),pt(this.previews,(function(e){var i=Ct(e,z),c=i.width,l=i.height,d=c,p=l,m=1;a&&(p=n*(m=c/a)),n&&p>l&&(d=a*(m=l/n),p=l),vt(e,{width:d,height:p}),vt(e.getElementsByTagName("img")[0],mt({width:o*m,height:r*m},Yt(mt({translateX:-h*m,translateY:-s*m},t))))})))}},qt={bind:function(){var t=this.element,e=this.options,i=this.cropper;ct(e.cropstart)&&Tt(t,P,e.cropstart),ct(e.cropmove)&&Tt(t,A,e.cropmove),ct(e.cropend)&&Tt(t,j,e.cropend),ct(e.crop)&&Tt(t,S,e.crop),ct(e.zoom)&&Tt(t,G,e.zoom),Tt(i,U,this.onCropStart=this.cropStart.bind(this)),e.zoomable&&e.zoomOnWheel&&Tt(i,Z,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&Tt(i,I,this.onDblclick=this.dblclick.bind(this)),Tt(t.ownerDocument,q,this.onCropMove=this.cropMove.bind(this)),Tt(t.ownerDocument,$,this.onCropEnd=this.cropEnd.bind(this)),e.responsive&&Tt(window,K,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;ct(e.cropstart)&&Ot(t,P,e.cropstart),ct(e.cropmove)&&Ot(t,A,e.cropmove),ct(e.cropend)&&Ot(t,j,e.cropend),ct(e.crop)&&Ot(t,S,e.crop),ct(e.zoom)&&Ot(t,G,e.zoom),Ot(i,U,this.onCropStart),e.zoomable&&e.zoomOnWheel&&Ot(i,Z,this.onWheel,{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&Ot(i,I,this.onDblclick),Ot(t.ownerDocument,q,this.onCropMove),Ot(t.ownerDocument,$,this.onCropEnd),e.responsive&&Ot(window,K,this.onResize)}},$t={resize:function(){if(!this.disabled){var t,e,i=this.options,a=this.container,n=this.containerData,o=a.offsetWidth/n.width,r=a.offsetHeight/n.height,h=Math.abs(o-1)>Math.abs(r-1)?o:r;1!==h&&(i.restore&&(t=this.getCanvasData(),e=this.getCropBoxData()),this.render(),i.restore&&(this.setCanvasData(pt(t,(function(e,i){t[i]=e*h}))),this.setCropBoxData(pt(e,(function(t,i){e[i]=t*h})))))}},dblclick:function(){var t,e;this.disabled||this.options.dragMode===R||this.setDragMode((t=this.dragBox,e=k,(t.classList?t.classList.contains(e):t.className.indexOf(e)>-1)?X:Y))},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(t.preventDefault(),this.wheeling||(this.wheeling=!0,setTimeout((function(){e.wheeling=!1}),50),t.deltaY?a=t.deltaY>0?1:-1:t.wheelDelta?a=-t.wheelDelta/120:t.detail&&(a=t.detail>0?1:-1),this.zoom(-a*i,t)))},cropStart:function(t){var e=t.buttons,i=t.button;if(!(this.disabled||("mousedown"===t.type||"pointerdown"===t.type&&"mouse"===t.pointerType)&&(at(e)&&1!==e||at(i)&&0!==i||t.ctrlKey))){var a,n=this.options,o=this.pointers;t.changedTouches?pt(t.changedTouches,(function(t){o[t.identifier]=Xt(t)})):o[t.pointerId||0]=Xt(t),a=Object.keys(o).length>1&&n.zoomable&&n.zoomOnTouch?v:Ct(t.target,L),F.test(a)&&!1!==Et(this.element,P,{originalEvent:t,action:a})&&(t.preventDefault(),this.action=a,this.cropping=!1,a===g&&(this.cropping=!0,wt(this.dragBox,H)))}},cropMove:function(t){var e=this.action;if(!this.disabled&&e){var i=this.pointers;t.preventDefault(),!1!==Et(this.element,A,{originalEvent:t,action:e})&&(t.changedTouches?pt(t.changedTouches,(function(t){mt(i[t.identifier]||{},Xt(t,!0))})):mt(i[t.pointerId||0]||{},Xt(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?pt(t.changedTouches,(function(t){delete i[t.identifier]})):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,yt(this.dragBox,H,this.cropped&&this.options.modal)),Et(this.element,j,{originalEvent:t,action:e}))}}},Qt={change:function(t){var i,a=this.options,n=this.canvasData,o=this.containerData,r=this.cropBoxData,h=this.pointers,s=this.action,c=a.aspectRatio,l=r.left,d=r.top,p=r.width,m=r.height,k=l+p,O=d+m,E=0,W=0,H=o.width,N=o.height,L=!0;!c&&t.shiftKey&&(c=p&&m?p/m:1),this.limited&&(E=r.minLeft,W=r.minTop,H=E+Math.min(o.width,n.width,n.left+n.width),N=W+Math.min(o.height,n.height,n.top+n.height));var z=h[Object.keys(h)[0]],Y={x:z.endX-z.startX,y:z.endY-z.startY},X=function(t){switch(t){case w:k+Y.x>H&&(Y.x=H-k);break;case b:l+Y.x<E&&(Y.x=E-l);break;case x:d+Y.y<W&&(Y.y=W-d);break;case y:O+Y.y>N&&(Y.y=N-O)}};switch(s){case u:l+=Y.x,d+=Y.y;break;case w:if(Y.x>=0&&(k>=H||c&&(d<=W||O>=N))){L=!1;break}X(w),(p+=Y.x)<0&&(s=b,l-=p=-p),c&&(m=p/c,d+=(r.height-m)/2);break;case x:if(Y.y<=0&&(d<=W||c&&(l<=E||k>=H))){L=!1;break}X(x),m-=Y.y,d+=Y.y,m<0&&(s=y,d-=m=-m),c&&(p=m*c,l+=(r.width-p)/2);break;case b:if(Y.x<=0&&(l<=E||c&&(d<=W||O>=N))){L=!1;break}X(b),p-=Y.x,l+=Y.x,p<0&&(s=w,l-=p=-p),c&&(m=p/c,d+=(r.height-m)/2);break;case y:if(Y.y>=0&&(O>=N||c&&(l<=E||k>=H))){L=!1;break}X(y),(m+=Y.y)<0&&(s=x,d-=m=-m),c&&(p=m*c,l+=(r.width-p)/2);break;case M:if(c){if(Y.y<=0&&(d<=W||k>=H)){L=!1;break}X(x),m-=Y.y,d+=Y.y,p=m*c}else X(x),X(w),Y.x>=0?k<H?p+=Y.x:Y.y<=0&&d<=W&&(L=!1):p+=Y.x,Y.y<=0?d>W&&(m-=Y.y,d+=Y.y):(m-=Y.y,d+=Y.y);p<0&&m<0?(s=B,d-=m=-m,l-=p=-p):p<0?(s=C,l-=p=-p):m<0&&(s=D,d-=m=-m);break;case C:if(c){if(Y.y<=0&&(d<=W||l<=E)){L=!1;break}X(x),m-=Y.y,d+=Y.y,p=m*c,l+=r.width-p}else X(x),X(b),Y.x<=0?l>E?(p-=Y.x,l+=Y.x):Y.y<=0&&d<=W&&(L=!1):(p-=Y.x,l+=Y.x),Y.y<=0?d>W&&(m-=Y.y,d+=Y.y):(m-=Y.y,d+=Y.y);p<0&&m<0?(s=D,d-=m=-m,l-=p=-p):p<0?(s=M,l-=p=-p):m<0&&(s=B,d-=m=-m);break;case B:if(c){if(Y.x<=0&&(l<=E||O>=N)){L=!1;break}X(b),p-=Y.x,l+=Y.x,m=p/c}else X(y),X(b),Y.x<=0?l>E?(p-=Y.x,l+=Y.x):Y.y>=0&&O>=N&&(L=!1):(p-=Y.x,l+=Y.x),Y.y>=0?O<N&&(m+=Y.y):m+=Y.y;p<0&&m<0?(s=M,d-=m=-m,l-=p=-p):p<0?(s=D,l-=p=-p):m<0&&(s=C,d-=m=-m);break;case D:if(c){if(Y.x>=0&&(k>=H||O>=N)){L=!1;break}X(w),m=(p+=Y.x)/c}else X(y),X(w),Y.x>=0?k<H?p+=Y.x:Y.y>=0&&O>=N&&(L=!1):p+=Y.x,Y.y>=0?O<N&&(m+=Y.y):m+=Y.y;p<0&&m<0?(s=C,d-=m=-m,l-=p=-p):p<0?(s=B,l-=p=-p):m<0&&(s=M,d-=m=-m);break;case f:this.move(Y.x,Y.y),L=!1;break;case v:this.zoom(function(t){var i=e({},t),a=0;return pt(t,(function(t,e){delete i[e],pt(i,(function(e){var i=Math.abs(t.startX-e.startX),n=Math.abs(t.startY-e.startY),o=Math.abs(t.endX-e.endX),r=Math.abs(t.endY-e.endY),h=Math.sqrt(i*i+n*n),s=(Math.sqrt(o*o+r*r)-h)/h;Math.abs(s)>Math.abs(a)&&(a=s)}))})),a}(h),t),L=!1;break;case g:if(!Y.x||!Y.y){L=!1;break}i=Wt(this.cropper),l=z.startX-i.left,d=z.startY-i.top,p=r.minWidth,m=r.minHeight,Y.x>0?s=Y.y>0?D:M:Y.x<0&&(l-=p,s=Y.y>0?B:C),Y.y<0&&(d-=m),this.cropped||(bt(this.cropBox,T),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}L&&(r.width=p,r.height=m,r.left=l,r.top=d,this.action=s,this.renderCropBox()),pt(h,(function(t){t.startX=t.endX,t.startY=t.endY}))}},Kt={crop:function(){return!this.ready||this.cropped||this.disabled||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&wt(this.dragBox,H),bt(this.cropBox,T),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=mt({},this.initialImageData),this.canvasData=mt({},this.initialCanvasData),this.cropBoxData=mt({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(mt(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),bt(this.dragBox,H),wt(this.cropBox,T)),this},replace:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,pt(this.previews,(function(e){e.getElementsByTagName("img")[0].src=t})))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,bt(this.cropper,O)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,wt(this.cropper,O)),this},destroy:function(){var t=this.element;return t.cropper?(t.cropper=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,a=i.left,n=i.top;return this.moveTo(ot(t)?t:a+Number(t),ot(e)?e:n+Number(e))},moveTo:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,a=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.movable&&(at(t)&&(i.left=t,a=!0),at(e)&&(i.top=e,a=!0),a&&this.renderCanvas(!0)),this},zoom:function(t,e){var i=this.canvasData;return t=(t=Number(t))<0?1/(1-t):1+t,this.zoomTo(i.width*t/i.naturalWidth,null,e)},zoomTo:function(t,e,i){var a=this.options,n=this.canvasData,o=n.width,r=n.height,h=n.naturalWidth,s=n.naturalHeight;if((t=Number(t))>=0&&this.ready&&!this.disabled&&a.zoomable){var c=h*t,l=s*t;if(!1===Et(this.element,G,{ratio:t,oldRatio:o/h,originalEvent:i}))return this;if(i){var d=this.pointers,p=Wt(this.cropper),m=d&&Object.keys(d).length?function(t){var e=0,i=0,a=0;return pt(t,(function(t){var n=t.startX,o=t.startY;e+=n,i+=o,a+=1})),{pageX:e/=a,pageY:i/=a}}(d):{pageX:i.pageX,pageY:i.pageY};n.left-=(c-o)*((m.pageX-p.left-n.left)/o),n.top-=(l-r)*((m.pageY-p.top-n.top)/r)}else st(e)&&at(e.x)&&at(e.y)?(n.left-=(c-o)*((e.x-n.left)/o),n.top-=(l-r)*((e.y-n.top)/r)):(n.left-=(c-o)/2,n.top-=(l-r)/2);n.width=c,n.height=l,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return at(t=Number(t))&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var e=this.imageData.scaleY;return this.scale(t,at(e)?e:1)},scaleY:function(t){var e=this.imageData.scaleX;return this.scale(at(e)?e:1,t)},scale:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.imageData,a=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.scalable&&(at(t)&&(i.scaleX=t,a=!0),at(e)&&(i.scaleY=e,a=!0),a&&this.renderCanvas(!0,!0)),this},getData:function(){var t,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.options,a=this.imageData,n=this.canvasData,o=this.cropBoxData;if(this.ready&&this.cropped){t={x:o.left-n.left,y:o.top-n.top,width:o.width,height:o.height};var r=a.width/a.naturalWidth;if(pt(t,(function(e,i){t[i]=e/r})),e){var h=Math.round(t.y+t.height),s=Math.round(t.x+t.width);t.x=Math.round(t.x),t.y=Math.round(t.y),t.width=s-t.x,t.height=h-t.y}}else t={x:0,y:0,width:0,height:0};return i.rotatable&&(t.rotate=a.rotate||0),i.scalable&&(t.scaleX=a.scaleX||1,t.scaleY=a.scaleY||1),t},setData:function(t){var e=this.options,i=this.imageData,a=this.canvasData,n={};if(this.ready&&!this.disabled&&st(t)){var o=!1;e.rotatable&&at(t.rotate)&&t.rotate!==i.rotate&&(i.rotate=t.rotate,o=!0),e.scalable&&(at(t.scaleX)&&t.scaleX!==i.scaleX&&(i.scaleX=t.scaleX,o=!0),at(t.scaleY)&&t.scaleY!==i.scaleY&&(i.scaleY=t.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var r=i.width/i.naturalWidth;at(t.x)&&(n.left=t.x*r+a.left),at(t.y)&&(n.top=t.y*r+a.top),at(t.width)&&(n.width=t.width*r),at(t.height)&&(n.height=t.height*r),this.setCropBoxData(n)}return this},getContainerData:function(){return this.ready?mt({},this.containerData):{}},getImageData:function(){return this.sized?mt({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&pt(["left","top","width","height","naturalWidth","naturalHeight"],(function(i){e[i]=t[i]})),e},setCanvasData:function(t){var e=this.canvasData,i=e.aspectRatio;return this.ready&&!this.disabled&&st(t)&&(at(t.left)&&(e.left=t.left),at(t.top)&&(e.top=t.top),at(t.width)?(e.width=t.width,e.height=t.width/i):at(t.height)&&(e.height=t.height,e.width=t.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var t,e=this.cropBoxData;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(t){var e,i,a=this.cropBoxData,n=this.options.aspectRatio;return this.ready&&this.cropped&&!this.disabled&&st(t)&&(at(t.left)&&(a.left=t.left),at(t.top)&&(a.top=t.top),at(t.width)&&t.width!==a.width&&(e=!0,a.width=t.width),at(t.height)&&t.height!==a.height&&(i=!0,a.height=t.height),n&&(e?a.height=a.width/n:i&&(a.width=a.height*n)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var e=this.canvasData,i=St(this.image,this.imageData,e,t);if(!this.cropped)return i;var a=this.getData(t.rounded),n=a.x,o=a.y,h=a.width,s=a.height,c=i.width/Math.floor(e.naturalWidth);1!==c&&(n*=c,o*=c,h*=c,s*=c);var l=h/s,d=Rt({aspectRatio:l,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),p=Rt({aspectRatio:l,width:t.minWidth||0,height:t.minHeight||0},"cover"),m=Rt({aspectRatio:l,width:t.width||(1!==c?i.width:h),height:t.height||(1!==c?i.height:s)}),u=m.width,g=m.height;u=Math.min(d.width,Math.max(p.width,u)),g=Math.min(d.height,Math.max(p.height,g));var f=document.createElement("canvas"),v=f.getContext("2d");f.width=gt(u),f.height=gt(g),v.fillStyle=t.fillColor||"transparent",v.fillRect(0,0,u,g);var w=t.imageSmoothingEnabled,b=void 0===w||w,y=t.imageSmoothingQuality;v.imageSmoothingEnabled=b,y&&(v.imageSmoothingQuality=y);var x,M,C,D,B,k,O=i.width,T=i.height,E=n,W=o;E<=-h||E>O?(E=0,x=0,C=0,B=0):E<=0?(C=-E,E=0,B=x=Math.min(O,h+E)):E<=O&&(C=0,B=x=Math.min(h,O-E)),x<=0||W<=-s||W>T?(W=0,M=0,D=0,k=0):W<=0?(D=-W,W=0,k=M=Math.min(T,s+W)):W<=T&&(D=0,k=M=Math.min(s,T-W));var H=[E,W,x,M];if(B>0&&k>0){var N=u/h;H.push(C*N,D*N,B*N,k*N)}return v.drawImage.apply(v,[i].concat(r(H.map((function(t){return Math.floor(gt(t))}))))),f},setAspectRatio:function(t){var e=this.options;return this.disabled||ot(t)||(e.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var e=this.options,i=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var n=t===Y,o=e.movable&&t===X;t=n||o?t:R,e.dragMode=t,Dt(i,L,t),yt(i,k,n),yt(i,N,o),e.cropBoxMovable||(Dt(a,L,t),yt(a,k,n),yt(a,N,o))}return this}},Zt=l.Cropper,Gt=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(a(this,t),!e||!tt.test(e.tagName))throw new Error("The first argument is required and must be an <img> or <canvas> element.");this.element=e,this.options=mt({},et,st(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}var e,i,o;return e=t,o=[{key:"noConflict",value:function(){return window.Cropper=Zt,t}},{key:"setDefaults",value:function(t){mt(et,st(t)&&t)}}],(i=[{key:"init",value:function(){var t,e=this.element,i=e.tagName.toLowerCase();if(!e.cropper){if(e.cropper=this,"img"===i){if(this.isImg=!0,t=e.getAttribute("src")||"",this.originalUrl=t,!t)return;t=e.src}else"canvas"===i&&window.HTMLCanvasElement&&(t=e.toDataURL());this.load(t)}}},{key:"load",value:function(t){var e=this;if(t){this.url=t,this.imageData={};var i=this.element,a=this.options;if(a.rotatable||a.scalable||(a.checkOrientation=!1),a.checkOrientation&&window.ArrayBuffer)if(J.test(t))_.test(t)?this.read((n=t.replace(At,""),o=atob(n),r=new ArrayBuffer(o.length),pt(h=new Uint8Array(r),(function(t,e){h[e]=o.charCodeAt(e)})),r)):this.clone();else{var n,o,r,h,s=new XMLHttpRequest,c=this.clone.bind(this);this.reloading=!0,this.xhr=s,s.onabort=c,s.onerror=c,s.ontimeout=c,s.onprogress=function(){s.getResponseHeader("content-type")!==V&&s.abort()},s.onload=function(){e.read(s.response)},s.onloadend=function(){e.reloading=!1,e.xhr=null},a.checkCrossOrigin&&Lt(t)&&i.crossOrigin&&(t=zt(t)),s.open("GET",t,!0),s.responseType="arraybuffer",s.withCredentials="use-credentials"===i.crossOrigin,s.send()}else this.clone()}}},{key:"read",value:function(t){var e=this.options,i=this.imageData,a=Pt(t),n=0,o=1,r=1;if(a>1){this.url=function(t,e){for(var i=[],a=new Uint8Array(t);a.length>0;)i.push(jt.apply(null,dt(a.subarray(0,8192)))),a=a.subarray(8192);return"data:".concat(e,";base64,").concat(btoa(i.join("")))}(t,V);var h=function(t){var e=0,i=1,a=1;switch(t){case 2:i=-1;break;case 3:e=-180;break;case 4:a=-1;break;case 5:e=90,a=-1;break;case 6:e=90;break;case 7:e=90,i=-1;break;case 8:e=-90}return{rotate:e,scaleX:i,scaleY:a}}(a);n=h.rotate,o=h.scaleX,r=h.scaleY}e.rotatable&&(i.rotate=n),e.scalable&&(i.scaleX=o,i.scaleY=r),this.clone()}},{key:"clone",value:function(){var t=this.element,e=this.url,i=t.crossOrigin,a=e;this.options.checkCrossOrigin&&Lt(e)&&(i||(i="anonymous"),a=zt(e)),this.crossOrigin=i,this.crossOriginUrl=a;var n=document.createElement("img");i&&(n.crossOrigin=i),n.src=a||e,n.alt=t.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),wt(n,E),t.parentNode.insertBefore(n,t.nextSibling)}},{key:"start",value:function(){var t=this,e=this.image;e.onload=null,e.onerror=null,this.sizing=!0;var i=l.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(l.navigator.userAgent),a=function(e,i){mt(t.imageData,{naturalWidth:e,naturalHeight:i,aspectRatio:e/i}),t.initialImageData=mt({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(!e.naturalWidth||i){var n=document.createElement("img"),o=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){a(n.width,n.height),i||o.removeChild(n)},n.src=e.src,i||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",o.appendChild(n))}else a(e.naturalWidth,e.naturalHeight)}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(this.sized&&!this.ready){var t=this.element,e=this.options,i=this.image,a=t.parentNode,n=document.createElement("div");n.innerHTML='<div class="cropper-container" touch-action="none"><div class="cropper-wrap-box"><div class="cropper-canvas"></div></div><div class="cropper-drag-box"></div><div class="cropper-crop-box"><span class="cropper-view-box"></span><span class="cropper-dashed dashed-h"></span><span class="cropper-dashed dashed-v"></span><span class="cropper-center"></span><span class="cropper-face"></span><span class="cropper-line line-e" data-cropper-action="e"></span><span class="cropper-line line-n" data-cropper-action="n"></span><span class="cropper-line line-w" data-cropper-action="w"></span><span class="cropper-line line-s" data-cropper-action="s"></span><span class="cropper-point point-e" data-cropper-action="e"></span><span class="cropper-point point-n" data-cropper-action="n"></span><span class="cropper-point point-w" data-cropper-action="w"></span><span class="cropper-point point-s" data-cropper-action="s"></span><span class="cropper-point point-ne" data-cropper-action="ne"></span><span class="cropper-point point-nw" data-cropper-action="nw"></span><span class="cropper-point point-sw" data-cropper-action="sw"></span><span class="cropper-point point-se" data-cropper-action="se"></span></div></div>';var o=n.querySelector(".".concat(m,"-container")),r=o.querySelector(".".concat(m,"-canvas")),h=o.querySelector(".".concat(m,"-drag-box")),s=o.querySelector(".".concat(m,"-crop-box")),c=s.querySelector(".".concat(m,"-face"));this.container=a,this.cropper=o,this.canvas=r,this.dragBox=h,this.cropBox=s,this.viewBox=o.querySelector(".".concat(m,"-view-box")),this.face=c,r.appendChild(i),wt(t,T),a.insertBefore(o,t.nextSibling),bt(i,E),this.initPreview(),this.bind(),e.initialAspectRatio=Math.max(0,e.initialAspectRatio)||NaN,e.aspectRatio=Math.max(0,e.aspectRatio)||NaN,e.viewMode=Math.max(0,Math.min(3,Math.round(e.viewMode)))||0,wt(s,T),e.guides||wt(s.getElementsByClassName("".concat(m,"-dashed")),T),e.center||wt(s.getElementsByClassName("".concat(m,"-center")),T),e.background&&wt(o,"".concat(m,"-bg")),e.highlight||wt(c,W),e.cropBoxMovable&&(wt(c,N),Dt(c,L,u)),e.cropBoxResizable||(wt(s.getElementsByClassName("".concat(m,"-line")),T),wt(s.getElementsByClassName("".concat(m,"-point")),T)),this.render(),this.ready=!0,this.setDragMode(e.dragMode),e.autoCrop&&this.crop(),this.setData(e.data),ct(e.ready)&&Tt(t,Q,e.ready,{once:!0}),Et(t,Q)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),bt(this.element,T)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}])&&n(e.prototype,i),o&&n(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();return mt(Gt.prototype,It,Ut,qt,$t,Qt,Kt),Gt},"object"==typeof e&&void 0!==i?i.exports=o():"function"==typeof a&&a.amd?a(o):(n="undefined"!=typeof globalThis?globalThis:n||self).Cropper=o()}));
|
13
13
|
;/*!node_modules/react-cropper/dist/react-cropper.umd.js*/
|
14
|
-
amis.define("
|
14
|
+
amis.define("4f93f55",(function(e,o,r,t){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var n=e("ff79484"),a=e("b360f92"),c=function(){return c=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++)for(var n in o=arguments[r])Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);return e},c.apply(this,arguments)};function i(e,o){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(r[t[n]]=e[t[n]])}return r}var l=["aspectRatio","autoCrop","autoCropArea","background","center","checkCrossOrigin","checkOrientation","cropBoxMovable","cropBoxResizable","data","dragMode","guides","highlight","initialAspectRatio","minCanvasHeight","minCanvasWidth","minContainerHeight","minContainerWidth","minCropBoxHeight","minCropBoxWidth","modal","movable","preview","responsive","restore","rotatable","scalable","toggleDragModeOnDblclick","viewMode","wheelZoomRatio","zoomOnTouch","zoomOnWheel","zoomable","cropstart","cropmove","cropend","crop","zoom","ready"],u={opacity:0,maxWidth:"100%"},s=n.forwardRef((function(e,o){var r=i(e,[]),t=r.dragMode,s=void 0===t?"crop":t,f=r.src,d=r.style,p=r.className,v=r.crossOrigin,m=r.scaleX,b=r.scaleY,g=r.enable,y=r.zoomTo,h=r.rotateTo,O=r.alt,T=void 0===O?"picture":O,z=r.ready,C=r.onInitialized,w=i(r,["dragMode","src","style","className","crossOrigin","scaleX","scaleY","enable","zoomTo","rotateTo","alt","ready","onInitialized"]),E={scaleY:b,scaleX:m,enable:g,zoomTo:y,rotateTo:h},M=function(){for(var e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];var r=n.useRef(null);return n.useEffect((function(){e.forEach((function(e){e&&("function"==typeof e?e(r.current):e.current=r.current)}))}),[e]),r}(o,n.useRef(null));n.useEffect((function(){var e;(null===(e=M.current)||void 0===e?void 0:e.cropper)&&"number"==typeof y&&M.current.cropper.zoomTo(y)}),[r.zoomTo]),n.useEffect((function(){var e;(null===(e=M.current)||void 0===e?void 0:e.cropper)&&void 0!==f&&M.current.cropper.reset().clear().replace(f)}),[f]),n.useEffect((function(){if(null!==M.current){var e=new a(M.current,c(c({dragMode:s},w),{ready:function(e){null!==e.currentTarget&&function(e,o){void 0===o&&(o={});var r=o.enable,t=void 0===r||r,n=o.scaleX,a=void 0===n?1:n,c=o.scaleY,i=void 0===c?1:c,l=o.zoomTo,u=void 0===l?0:l,s=o.rotateTo;t?e.enable():e.disable(),e.scaleX(a),e.scaleY(i),void 0!==s&&e.rotateTo(s),u>0&&e.zoomTo(u)}(e.currentTarget.cropper,E),z&&z(e)}}));C&&C(e)}return function(){var e,o;null===(o=null===(e=M.current)||void 0===e?void 0:e.cropper)||void 0===o||o.destroy()}}),[M]);var j=function(e){return l.reduce((function(e,o){var r=e,t=o;return r[t],i(r,["symbol"==typeof t?t:t+""])}),e)}(c(c({},w),{crossOrigin:v,src:f,alt:T}));return n.createElement("div",{style:d,className:p},n.createElement("img",c({},j,{style:u,ref:M})))}));o.Cropper=s,o.default=s}));
|
package/sdk/exceljs.js
CHANGED
package/sdk/fomula-doc.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
;/*!node_modules/amis-formula/lib/doc.js*/
|
2
|
-
amis.define("7aec042",(function(e,n,t,a){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.doc=[{name:"IF",description:"如果满足条件condition,则返回consequent,否则返回alternate,支持多层嵌套IF函数。\n\n等价于直接用JS表达式如:condition ? consequent : alternate。",example:"IF(condition, consequent, alternate)",params:[{type:"expression",name:"condition",description:"条件表达式。例如:语文成绩>80"},{type:"any",name:"consequent",description:"条件判断通过的返回结果"},{type:"any",name:"alternate",description:"条件判断不通过的返回结果"}],returns:{type:"any",description:"根据条件返回不同的结果"},namespace:"逻辑函数"},{name:"AND",description:"条件全部符合,返回 true,否则返回 false。\n\n示例:AND(语文成绩>80, 数学成绩>80),\n\n语文成绩和数学成绩都大于 80,则返回 true,否则返回 false,\n\n等价于直接用JS表达式如:语文成绩>80 && 数学成绩>80。",example:"AND(expression1, expression2, ...expressionN)",params:[{type:"...expression",name:"conditions",description:"条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80"}],returns:{type:"boolean",description:null},namespace:"逻辑函数"},{name:"OR",description:"条件任意一个满足条件,返回 true,否则返回 false。\n\n示例:OR(语文成绩>80, 数学成绩>80),\n\n语文成绩和数学成绩任意一个大于 80,则返回 true,否则返回 false,\n\n等价于直接用JS表达式如:语文成绩>80 || 数学成绩>80。",example:"OR(expression1, expression2, ...expressionN)",params:[{type:"...expression",name:"conditions",description:"条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80"}],returns:{type:"boolean",description:null},namespace:"逻辑函数"},{name:"XOR",description:"异或处理,多个表达式组中存在奇数个真时认为真。\n\n示例:XOR(语文成绩 > 80, 数学成绩 > 80, 英语成绩 > 80)\n\n三门成绩中有一门或者三门大于 80,则返回 true,否则返回 false。",example:"XOR(condition1, condition2, ...expressionN)",params:[{type:"...expression",name:"condition",description:"条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80"}],returns:{type:"boolean",description:null},namespace:"逻辑函数"},{name:"IFS",description:'判断函数集合,相当于多个 else if 合并成一个。\n\n示例:IFS(语文成绩 > 80, "优秀", 语文成绩 > 60, "良", "继续努力"),\n\n如果语文成绩大于 80,则返回优秀,否则判断大于 60 分,则返回良,否则返回继续努力。',example:"IFS(condition1, result1, condition2, result2,...conditionN, resultN)",params:[{type:"...expression",name:"condition",description:"条件表达式"},{type:"...any",name:"result",description:"返回值"}],returns:{type:"any",description:"第一个满足条件的结果,没有命中的返回 false。"},namespace:"逻辑函数"},{name:"ABS",description:"返回传入数字的绝对值。",example:"ABS(num)",params:[{type:"number",name:"num",description:"数值"}],returns:{type:"number",description:"传入数值的绝对值"},namespace:"数学函数"},{name:"MAX",description:"获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"MAX(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"数值"}],returns:{type:"number",description:"所有传入值中最大的那个"},namespace:"数学函数"},{name:"MIN",description:"获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"MIN(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"数值"}],returns:{type:"number",description:"所有传入值中最小的那个"},namespace:"数学函数"},{name:"SUM",description:"求和,如果只有一个参数且是数组,则计算这个数组内的值。",example:"SUM(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"数值"}],returns:{type:"number",description:"所有传入数值的总和"},namespace:"数学函数"},{name:"INT",description:"将数值向下取整为最接近的整数。",example:"INT(num)",params:[{type:"number",name:"num",description:"数值"}],returns:{type:"number",description:"数值对应的整形"},namespace:"数学函数"},{name:"MOD",description:"返回两数相除的余数,参数 number 是被除数,divisor 是除数。",example:"MOD(num, divisor)",params:[{type:"number",name:"num",description:"被除数"},{type:"number",name:"divisor",description:"除数"}],returns:{type:"number",description:"两数相除的余数"},namespace:"数学函数"},{name:"PI",description:"圆周率 3.1415...。",example:"PI()",params:[],returns:{type:"number",description:"圆周率数值"},namespace:"数学函数"},{name:"ROUND",description:"将数字四舍五入到指定的位数,可以设置小数位。",example:"ROUND(num[, numDigits = 2])",params:[{type:"number",name:"num",description:"要处理的数字"},{type:"number",name:"numDigits",description:"小数位数,默认为2"}],returns:{type:"number",description:"传入数值四舍五入后的结果"},namespace:"数学函数"},{name:"FLOOR",description:"将数字向下取整到指定的位数,可以设置小数位。",example:"FLOOR(num[, numDigits=2])",params:[{type:"number",name:"num",description:"要处理的数字"},{type:"number",name:"numDigits",description:"小数位数,默认为2"}],returns:{type:"number",description:"传入数值向下取整后的结果"},namespace:"数学函数"},{name:"CEIL",description:"将数字向上取整到指定的位数,可以设置小数位。",example:"CEIL(num[, numDigits=2])",params:[{type:"number",name:"num",description:"要处理的数字"},{type:"number",name:"numDigits",description:"小数位数,默认为2"}],returns:{type:"number",description:"传入数值向上取整后的结果"},namespace:"数学函数"},{name:"SQRT",description:"开平方,参数 number 为非负数",example:"SQRT(num)",params:[{type:"number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"开平方的结果"},namespace:"数学函数"},{name:"AVG",description:"返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"AVG(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"DEVSQ",description:"返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值。",example:"DEVSQ(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"AVEDEV",description:"数据点到其算术平均值的绝对偏差的平均值。",example:"AVEDEV(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"HARMEAN",description:"数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"HARMEAN(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"LARGE",description:"数据集中第 k 个最大值。",example:"LARGE(array, k)",params:[{type:"array",name:"nums",description:"要处理的数字"},{type:"number",name:"k",description:"第几大"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"UPPERMONEY",description:"将数值转为中文大写金额。",example:"UPPERMONEY(num)",params:[{type:"number",name:"num",description:"要处理的数字"}],returns:{type:"string",description:"数值中文大写字符"},namespace:"数学函数"},{name:"RAND",description:"返回大于等于 0 且小于 1 的均匀分布随机实数。每一次触发计算都会变化。\n\n示例:`RAND()*100`,\n\n返回 0-100 之间的随机数。",example:"RAND()",params:[],returns:{type:"number",description:"随机数"},namespace:"数学函数"},{name:"LAST",description:"取数据最后一个。",example:"LAST(array)",params:[{type:"...number",name:"arr",description:"要处理的数组"}],returns:{type:"any",description:"最后一个值"},namespace:"数学函数"},{name:"POW",description:"返回基数的指数次幂,参数base为基数,exponent为指数,如果参数值不合法则返回基数本身,计算结果不合法,则返回NaN。",example:"POW(base, exponent)",params:[{type:"number",name:"base",description:"基数"},{type:"number",name:"exponent",description:"指数"}],returns:{type:"number",description:"基数的指数次幂"},namespace:"数学函数"},{name:"LEFT",description:"返回传入文本左侧的指定长度字符串。",example:"LEFT(text, len)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"number",name:"len",description:"要处理的长度"}],returns:{type:"string",description:"对应字符串"},namespace:"文本函数"},{name:"RIGHT",description:"返回传入文本右侧的指定长度字符串。",example:"RIGHT(text, len)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"number",name:"len",description:"要处理的长度"}],returns:{type:"string",description:"对应字符串"},namespace:"文本函数"},{name:"LEN",description:"计算文本的长度。",example:"LEN(text)",params:[{type:"string",name:"text",description:"要处理的文本"}],returns:{type:"number",description:"长度"},namespace:"文本函数"},{name:"LENGTH",description:"计算文本集合中所有文本的长度。",example:"LENGTH(textArr)",params:[{type:"Array<string>",name:"textArr",description:"要处理的文本集合"}],returns:{type:"Array<number>",description:"长度集合"},namespace:"文本函数"},{name:"ISEMPTY",description:"判断文本是否为空。",example:"ISEMPTY(text)",params:[{type:"string",name:"text",description:"要处理的文本"}],returns:{type:"boolean",description:"判断结果"},namespace:"文本函数"},{name:"CONCATENATE",description:"将多个传入值连接成文本。",example:"CONCATENATE(text1, text2, ...textN)",params:[{type:"...string",name:"text",description:"文本集合"}],returns:{type:"string",description:"连接后的文本"},namespace:"文本函数"},{name:"CHAR",description:'返回计算机字符集的数字代码所对应的字符。\n\n示例:`CHAR(97)` 等价于 "a"。',example:"CHAR(code)",params:[{type:"number",name:"code",description:"编码值"}],returns:{type:"string",description:"指定位置的字符"},namespace:"文本函数"},{name:"LOWER",description:"将传入文本转成小写。",example:"LOWER(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"UPPER",description:"将传入文本转成大写。",example:"UPPER(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"UPPERFIRST",description:"将传入文本首字母转成大写。",example:"UPPERFIRST(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"PADSTART",description:'向前补齐文本长度。\n\n示例 `PADSTART("6", 2, "0")`,\n\n返回 `06`。',example:"PADSTART(text)",params:[{type:"string",name:"text",description:"文本"},{type:"number",name:"num",description:"目标长度"},{type:"string",name:"pad",description:"用于补齐的文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"CAPITALIZE",description:'将文本转成标题。\n\n示例 `CAPITALIZE("star")`,\n\n返回 `Star`。',example:"CAPITALIZE(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"ESCAPE",description:'对文本进行 HTML 转义。\n\n示例 `ESCAPE("<star>&")`,\n\n返回 `<start>&`。',example:"ESCAPE(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"TRUNCATE",description:'对文本长度进行截断。\n\n示例 `TRUNCATE("amis.baidu.com", 6)`,\n\n返回 `amis...`。',example:"TRUNCATE(text, 6)",params:[{type:"string",name:"text",description:"文本"},{type:"number",name:"text",description:"最长长度"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"BEFORELAST",description:"取在某个分隔符之前的所有字符串。",example:"BEFORELAST(text, '.')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"delimiter",description:"结束文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"SPLIT",description:'将文本根据指定片段分割成数组。\n\n示例:`SPLIT("a,b,c", ",")`,\n\n返回 `["a", "b", "c"]`。',example:"SPLIT(text, ',')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"delimiter",description:"文本片段"}],returns:{type:"Array<string>",description:"文本集"},namespace:"文本函数"},{name:"TRIM",description:"将文本去除前后空格。",example:"TRIM(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"处理后的文本"},namespace:"文本函数"},{name:"STRIPTAG",description:'去除文本中的 HTML 标签。\n\n示例:`STRIPTAG("<b>amis</b>")`,\n\n返回:`amis`。',example:"STRIPTAG(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"处理后的文本"},namespace:"文本函数"},{name:"LINEBREAK",description:'将字符串中的换行转成 HTML `<br>`,用于简单换行的场景。\n\n示例:`LINEBREAK("\\n")`,\n\n返回:`<br/>`。',example:"LINEBREAK(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"处理后的文本"},namespace:"文本函数"},{name:"STARTSWITH",description:"判断字符串(text)是否以特定字符串(startString)开始,是则返回 true,否则返回 false。",example:"STARTSWITH(text, '片段')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"startString",description:"起始文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"ENDSWITH",description:"判断字符串(text)是否以特定字符串(endString)结束,是则返回 true,否则返回 false。",example:"ENDSWITH(text, '片段')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"endString",description:"结束文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"CONTAINS",description:"判断参数 1 中的文本是否包含参数 2 中的文本,是则返回 true,否则返回 false。",example:"CONTAINS(text, searchText)",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"searchText",description:"搜索文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"REPLACE",description:"对文本进行全量替换。",example:"REPLACE(text, search, replace)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"string",name:"search",description:"要被替换的文本"},{type:"string",name:"replace",description:"要替换的文本"}],returns:{type:"string",description:"处理结果"},namespace:"文本函数"},{name:"SEARCH",description:"对文本进行搜索,返回命中的位置。",example:"SEARCH(text, search, 0)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"string",name:"search",description:"用来搜索的文本"},{type:"number",name:"start",description:"起始位置"}],returns:{type:"number",description:"命中的位置"},namespace:"文本函数"},{name:"MID",description:"返回文本字符串中从指定位置开始的特定数目的字符。",example:"MID(text, from, len)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"number",name:"from",description:"起始位置"},{type:"number",name:"len",description:"处理长度"}],returns:{type:"number",description:"命中的位置"},namespace:"文本函数"},{name:"BASENAME",description:"返回路径中的文件名。\n\n示例:`/home/amis/a.json`,\n\n返回:a.json`。",example:"BASENAME(text)",params:[{type:"string",name:"text",description:"要处理的文本"}],returns:{type:"string",description:"文件名"},namespace:"文本函数"},{name:"UUID",description:"生成UUID字符串",example:"UUID(8)",params:[{type:"number",name:"length",description:"生成的UUID字符串长度,默认为32位"}],returns:{type:"string",description:"生成的UUID字符串"},namespace:"文本函数"},{name:"DATE",description:"创建日期对象,可以通过特定格式的字符串,或者数值。\n\n需要注意的是,其中月份的数值是从0开始的,\n即如果是12月份,你应该传入数值11。",example:"DATE('2021-12-06 08:20:00')",params:[],returns:{type:"Date",description:"日期对象"},namespace:"日期函数"},{name:"TIMESTAMP",description:"返回时间的时间戳。",example:'TIMESTAMP(date[, format = "X"])',params:[{type:"date",name:"date",description:"日期对象"},{type:"string",name:"format",description:"时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。"}],returns:{type:"number",description:"时间戳"},namespace:"日期函数"},{name:"TODAY",description:"返回今天的日期。",example:"TODAY()",params:[],returns:{type:"number",description:"日期"},namespace:"日期函数"},{name:"NOW",description:"返回现在的日期",example:"NOW()",params:[],returns:{type:"number",description:"日期"},namespace:"日期函数"},{name:"WEEKDAY",description:"获取日期的星期几。\n\n示例\n\nWEEKDAY('2023-02-27') 得到 0。\nWEEKDAY('2023-02-27', 2) 得到 1。",example:"WEEKDAY(date)",params:[{type:"any",name:"date",description:"日期"},{type:"number",name:"type",description:"星期定义类型,默认为1,1表示0至6代表星期一到星期日,2表示1至7代表星期一到星期日"}],returns:{type:"number",description:"星期几的数字标识"},namespace:"日期函数"},{name:"WEEK",description:"获取年份的星期,即第几周。\n\n示例\n\nWEEK('2023-03-05') 得到 9。",example:"WEEK(date)",params:[{type:"any",name:"date",description:"日期"},{type:"boolean",name:"isISO",description:"是否ISO星期"}],returns:{type:"number",description:"星期几的数字标识"},namespace:"日期函数"},{name:"DATETOSTR",description:"对日期、日期字符串、时间戳进行格式化。\n\n示例\n\nDATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25',\nDATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17',\nDATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',\nDATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'。",example:"DATETOSTR(date, 'YYYY-MM-DD')",params:[{type:"any",name:"date",description:"日期对象、日期字符串、时间戳"},{type:"string",name:"format",description:'日期格式,默认为 "YYYY-MM-DD HH:mm:ss"'}],returns:{type:"string",description:"日期字符串"},namespace:"日期函数"},{name:"DATERANGESPLIT",description:"获取日期范围字符串中的开始时间、结束时间。\n\n示例:\n\nDATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999],\nDATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59],\nDATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',\nDATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',\nDATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59',\nDATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'。",example:"DATERANGESPLIT(date, 'YYYY-MM-DD')",params:[{type:"string",name:"date",description:"日期范围字符串"},{type:"string",name:"key",description:"取值标识,0或'start'表示获取开始时间,1或'end'表示获取结束时间"},{type:"string",name:"format",description:"日期格式,可选"},{type:"string",name:"delimiter",description:"分隔符,可选,默认为','"}],returns:{type:"string",description:"日期字符串"},namespace:"日期函数"},{name:"STARTOF",description:"返回日期的指定范围的开端。",example:'STARTOF(date[unit = "day"])',params:[{type:"date",name:"date",description:"日期对象"},{type:"string",name:"unit",description:"比如可以传入 'day'、'month'、'year' 或者 `week` 等等"},{type:"string",name:"format",description:"日期格式,可选"}],returns:{type:"date",description:"新的日期对象"},namespace:"日期函数"},{name:"ENDOF",description:"返回日期的指定范围的末尾。",example:'ENDOF(date[unit = "day"])',params:[{type:"date",name:"date",description:"日期对象"},{type:"string",name:"unit",description:"比如可以传入 'day'、'month'、'year' 或者 `week` 等等"},{type:"string",name:"format",description:"日期格式,可选"}],returns:{type:"date",description:"新的日期对象"},namespace:"日期函数"},{name:"YEAR",description:"返回日期的年份。",example:"YEAR(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"MONTH",description:"返回日期的月份,这里就是自然月份。",example:"MONTH(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"DAY",description:"返回日期的天。",example:"DAY(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"HOUR",description:"返回日期的小时。",example:"HOUR(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"MINUTE",description:"返回日期的分。",example:"MINUTE(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"SECOND",description:"返回日期的秒。",example:"SECOND(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"YEARS",description:"返回两个日期相差多少年。",example:"YEARS(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"MINUTES",description:"返回两个日期相差多少分钟。",example:"MINUTES(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"DAYS",description:"返回两个日期相差多少天。",example:"DAYS(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"HOURS",description:"返回两个日期相差多少小时。",example:"HOURS(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"DATEMODIFY",description:"修改日期,对日期进行加减天、月份、年等操作。\n\n示例:\n\nDATEMODIFY(A, -2, 'month'),\n\n对日期 A 进行往前减2月的操作。",example:"DATEMODIFY(date, 2, 'days')",params:[{type:"date",name:"date",description:"日期对象"},{type:"number",name:"num",description:"数值"},{type:"string",name:"unit",description:"单位:支持年、月、天等等"}],returns:{type:"date",description:"日期对象"},namespace:"日期函数"},{name:"STRTODATE",description:"将字符日期转成日期对象,可以指定日期格式。\n\n示例:STRTODATE('2021/12/6', 'YYYY/MM/DD')",example:'STRTODATE(value[, format=""])',params:[{type:"string",name:"value",description:"日期字符"},{type:"string",name:"format",description:"日期格式"}],returns:{type:"date",description:"日期对象"},namespace:"日期函数"},{name:"ISBEFORE",description:"判断两个日期,是否第一个日期在第二个日期的前面,是则返回 true,否则返回 false。",example:"ISBEFORE(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"ISAFTER",description:"判断两个日期,是否第一个日期在第二个日期的后面,是则返回 true,否则返回 false。",example:"ISAFTER(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"BETWEENRANGE",description:"判断日期是否在指定范围内,是则返回 true,否则返回 false。\n\n示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])。",example:"BETWEENRANGE(date, [start, end])",params:[{type:"any",name:"date",description:"第一个日期"},{type:"Array<any>",name:"daterange",description:"日期范围"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"},{type:"string",name:"inclusivity",description:"包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"ISSAMEORBEFORE",description:"判断两个日期,是否第一个日期在第二个日期的前面或者相等,是则返回 true,否则返回 false。",example:"ISSAMEORBEFORE(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"ISSAMEORAFTER",description:"判断两个日期,是否第一个日期在第二个日期的后面或者相等,是则返回 true,否则返回 false。",example:"ISSAMEORAFTER(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"COUNT",description:"返回数组的长度。",example:"COUNT(arr)",params:[{type:"Array<any>",name:"arr",description:"数组"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYMAP",description:"数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。",example:"ARRAYMAP(arr, item => item)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYFILTER",description:"数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n将第二个箭头函数返回为 false 的成员过滤掉。",example:"ARRAYFILTER(arr, item => item)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYFINDINDEX",description:"数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员的索引。\n\n示例:\n\nARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1。",example:"ARRAYFINDINDEX(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"number",description:"结果"},namespace:"数组"},{name:"ARRAYFIND",description:"数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员。\n\n示例:\n\nARRAYFIND([0, 2, false], item => item === 2) 得到 2。",example:"ARRAYFIND(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"any",description:"结果"},namespace:"数组"},{name:"ARRAYSOME",description:"数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数是否存在返回为 true 的成员,是则返回 true,否则返回 false。\n\n示例:\n\nARRAYSOME([0, 2, false], item => item === 2) 得到 true。",example:"ARRAYSOME(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYEVERY",description:"数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数返回是否都为 true,是则返回 true,否则返回 false。\n\n示例:\n\nARRAYEVERY([0, 2, false], item => item === 2) 得到 false",example:"ARRAYEVERY(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYINCLUDES",description:"判断数据中是否存在指定元素。\n\n示例:\n\nARRAYINCLUDES([0, 2, false], 2) 得到 true。",example:"ARRAYINCLUDES(arr, 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"any",name:"item",description:"元素"}],returns:{type:"any",description:"结果"},namespace:"数组"},{name:"COMPACT",description:"数组过滤掉 false、null、0 和 \"\"。\n\n示例:\n\nCOMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]。",example:"COMPACT(arr)",params:[{type:"Array<any>",name:"arr",description:"数组"}],returns:{type:"Array<any>",description:"结果"},namespace:"数组"},{name:"JOIN",description:"数组转成字符串。\n\n示例:\n\nJOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'。",example:"JOIN(arr, string)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"String",name:"separator",description:"分隔符"}],returns:{type:"String",description:"结果"},namespace:"数组"},{name:"CONCAT",description:"数组合并。\n\n示例:\n\nCONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']。",example:"CONCAT(['a', 'b', 'c'], ['1'], ['3'])",params:[{type:"Array<any>",name:"arr",description:"数组"}],returns:{type:"Array<any>",description:"结果"},namespace:"数组"},{name:"UNIQ",description:"数组去重,第二个参数「field」,可指定根据该字段去重。\n\n示例:\n\nUNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')。",example:"UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'x')",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"string",name:"field",description:"字段"}],returns:{type:"Array<any>",description:"结果"},namespace:"数组"},{name:"ENCODEJSON",description:"将JS对象转换成JSON字符串。\n\n示例:\n\nENCODEJSON({name: 'amis'}) 得到 '{\"name\":\"amis\"}'。",example:"ENCODEJSON({name: 'amis'})",params:[{type:"object",name:"obj",description:"JS对象"}],returns:{type:"string",description:"结果"},namespace:"编码"},{name:"DECODEJSON",description:"解析JSON编码数据,返回JS对象。\n\n示例:\n\nDECODEJSON('{\\\"name\\\": \"amis\"}') 得到 {name: 'amis'}。",example:'DECODEJSON(\'{\\"name\\": "amis"}\')',params:[{type:"string",name:"str",description:"字符串"}],returns:{type:"object",description:"结果"},namespace:"编码"},{name:"GET",description:"根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代。\n\n示例:\n\nGET([0, 2, {name: 'amis', age: 18}], 1) 得到 2,\nGET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis',\nGET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis',\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis',\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'。",example:"GET(arr, 2)",params:[{type:"any",name:"obj",description:"对象或数组"},{type:"string",name:"path",description:"路径"},{type:"any",name:"defaultValue",description:"如果解析不到则返回该值"}],returns:{type:"any",description:"结果"},namespace:"其他"},{name:"ISTYPE",description:"判断是否为类型支持:string, number, array, date, plain-object。",example:"ISTYPE([{a: '1'}, {b: '2'}, {a: '1'}], 'array')",params:[{type:"string",name:"判断对象",description:null}],returns:{type:"boolean",description:"结果"},namespace:"其他"}]}));
|
2
|
+
amis.define("d66e0fd",(function(e,n,t,a){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.doc=[{name:"IF",description:"如果满足条件condition,则返回consequent,否则返回alternate,支持多层嵌套IF函数。\n\n等价于直接用JS表达式如:condition ? consequent : alternate。",example:"IF(condition, consequent, alternate)",params:[{type:"expression",name:"condition",description:"条件表达式。例如:语文成绩>80"},{type:"any",name:"consequent",description:"条件判断通过的返回结果"},{type:"any",name:"alternate",description:"条件判断不通过的返回结果"}],returns:{type:"any",description:"根据条件返回不同的结果"},namespace:"逻辑函数"},{name:"AND",description:"条件全部符合,返回 true,否则返回 false。\n\n示例:AND(语文成绩>80, 数学成绩>80),\n\n语文成绩和数学成绩都大于 80,则返回 true,否则返回 false,\n\n等价于直接用JS表达式如:语文成绩>80 && 数学成绩>80。",example:"AND(expression1, expression2, ...expressionN)",params:[{type:"...expression",name:"conditions",description:"条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80"}],returns:{type:"boolean",description:null},namespace:"逻辑函数"},{name:"OR",description:"条件任意一个满足条件,返回 true,否则返回 false。\n\n示例:OR(语文成绩>80, 数学成绩>80),\n\n语文成绩和数学成绩任意一个大于 80,则返回 true,否则返回 false,\n\n等价于直接用JS表达式如:语文成绩>80 || 数学成绩>80。",example:"OR(expression1, expression2, ...expressionN)",params:[{type:"...expression",name:"conditions",description:"条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80"}],returns:{type:"boolean",description:null},namespace:"逻辑函数"},{name:"XOR",description:"异或处理,多个表达式组中存在奇数个真时认为真。\n\n示例:XOR(语文成绩 > 80, 数学成绩 > 80, 英语成绩 > 80)\n\n三门成绩中有一门或者三门大于 80,则返回 true,否则返回 false。",example:"XOR(condition1, condition2, ...expressionN)",params:[{type:"...expression",name:"condition",description:"条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80"}],returns:{type:"boolean",description:null},namespace:"逻辑函数"},{name:"IFS",description:'判断函数集合,相当于多个 else if 合并成一个。\n\n示例:IFS(语文成绩 > 80, "优秀", 语文成绩 > 60, "良", "继续努力"),\n\n如果语文成绩大于 80,则返回优秀,否则判断大于 60 分,则返回良,否则返回继续努力。',example:"IFS(condition1, result1, condition2, result2,...conditionN, resultN)",params:[{type:"...expression",name:"condition",description:"条件表达式"},{type:"...any",name:"result",description:"返回值"}],returns:{type:"any",description:"第一个满足条件的结果,没有命中的返回 false。"},namespace:"逻辑函数"},{name:"ABS",description:"返回传入数字的绝对值。",example:"ABS(num)",params:[{type:"number",name:"num",description:"数值"}],returns:{type:"number",description:"传入数值的绝对值"},namespace:"数学函数"},{name:"MAX",description:"获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"MAX(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"数值"}],returns:{type:"number",description:"所有传入值中最大的那个"},namespace:"数学函数"},{name:"MIN",description:"获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"MIN(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"数值"}],returns:{type:"number",description:"所有传入值中最小的那个"},namespace:"数学函数"},{name:"SUM",description:"求和,如果只有一个参数且是数组,则计算这个数组内的值。",example:"SUM(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"数值"}],returns:{type:"number",description:"所有传入数值的总和"},namespace:"数学函数"},{name:"INT",description:"将数值向下取整为最接近的整数。",example:"INT(num)",params:[{type:"number",name:"num",description:"数值"}],returns:{type:"number",description:"数值对应的整形"},namespace:"数学函数"},{name:"MOD",description:"返回两数相除的余数,参数 number 是被除数,divisor 是除数。",example:"MOD(num, divisor)",params:[{type:"number",name:"num",description:"被除数"},{type:"number",name:"divisor",description:"除数"}],returns:{type:"number",description:"两数相除的余数"},namespace:"数学函数"},{name:"PI",description:"圆周率 3.1415...。",example:"PI()",params:[],returns:{type:"number",description:"圆周率数值"},namespace:"数学函数"},{name:"ROUND",description:"将数字四舍五入到指定的位数,可以设置小数位。",example:"ROUND(num[, numDigits = 2])",params:[{type:"number",name:"num",description:"要处理的数字"},{type:"number",name:"numDigits",description:"小数位数,默认为2"}],returns:{type:"number",description:"传入数值四舍五入后的结果"},namespace:"数学函数"},{name:"FLOOR",description:"将数字向下取整到指定的位数,可以设置小数位。",example:"FLOOR(num[, numDigits=2])",params:[{type:"number",name:"num",description:"要处理的数字"},{type:"number",name:"numDigits",description:"小数位数,默认为2"}],returns:{type:"number",description:"传入数值向下取整后的结果"},namespace:"数学函数"},{name:"CEIL",description:"将数字向上取整到指定的位数,可以设置小数位。",example:"CEIL(num[, numDigits=2])",params:[{type:"number",name:"num",description:"要处理的数字"},{type:"number",name:"numDigits",description:"小数位数,默认为2"}],returns:{type:"number",description:"传入数值向上取整后的结果"},namespace:"数学函数"},{name:"SQRT",description:"开平方,参数 number 为非负数",example:"SQRT(num)",params:[{type:"number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"开平方的结果"},namespace:"数学函数"},{name:"AVG",description:"返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"AVG(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"DEVSQ",description:"返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值。",example:"DEVSQ(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"AVEDEV",description:"数据点到其算术平均值的绝对偏差的平均值。",example:"AVEDEV(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"HARMEAN",description:"数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值。",example:"HARMEAN(num1, num2, ...numN)",params:[{type:"...number",name:"num",description:"要处理的数字"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"LARGE",description:"数据集中第 k 个最大值。",example:"LARGE(array, k)",params:[{type:"array",name:"nums",description:"要处理的数字"},{type:"number",name:"k",description:"第几大"}],returns:{type:"number",description:"所有数值的平均值"},namespace:"数学函数"},{name:"UPPERMONEY",description:"将数值转为中文大写金额。",example:"UPPERMONEY(num)",params:[{type:"number",name:"num",description:"要处理的数字"}],returns:{type:"string",description:"数值中文大写字符"},namespace:"数学函数"},{name:"RAND",description:"返回大于等于 0 且小于 1 的均匀分布随机实数。每一次触发计算都会变化。\n\n示例:`RAND()*100`,\n\n返回 0-100 之间的随机数。",example:"RAND()",params:[],returns:{type:"number",description:"随机数"},namespace:"数学函数"},{name:"LAST",description:"取数据最后一个。",example:"LAST(array)",params:[{type:"...number",name:"arr",description:"要处理的数组"}],returns:{type:"any",description:"最后一个值"},namespace:"数学函数"},{name:"POW",description:"返回基数的指数次幂,参数base为基数,exponent为指数,如果参数值不合法则返回基数本身,计算结果不合法,则返回NaN。",example:"POW(base, exponent)",params:[{type:"number",name:"base",description:"基数"},{type:"number",name:"exponent",description:"指数"}],returns:{type:"number",description:"基数的指数次幂"},namespace:"数学函数"},{name:"LEFT",description:"返回传入文本左侧的指定长度字符串。",example:"LEFT(text, len)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"number",name:"len",description:"要处理的长度"}],returns:{type:"string",description:"对应字符串"},namespace:"文本函数"},{name:"RIGHT",description:"返回传入文本右侧的指定长度字符串。",example:"RIGHT(text, len)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"number",name:"len",description:"要处理的长度"}],returns:{type:"string",description:"对应字符串"},namespace:"文本函数"},{name:"LEN",description:"计算文本的长度。",example:"LEN(text)",params:[{type:"string",name:"text",description:"要处理的文本"}],returns:{type:"number",description:"长度"},namespace:"文本函数"},{name:"LENGTH",description:"计算文本集合中所有文本的长度。",example:"LENGTH(textArr)",params:[{type:"Array<string>",name:"textArr",description:"要处理的文本集合"}],returns:{type:"Array<number>",description:"长度集合"},namespace:"文本函数"},{name:"ISEMPTY",description:"判断文本是否为空。",example:"ISEMPTY(text)",params:[{type:"string",name:"text",description:"要处理的文本"}],returns:{type:"boolean",description:"判断结果"},namespace:"文本函数"},{name:"CONCATENATE",description:"将多个传入值连接成文本。",example:"CONCATENATE(text1, text2, ...textN)",params:[{type:"...string",name:"text",description:"文本集合"}],returns:{type:"string",description:"连接后的文本"},namespace:"文本函数"},{name:"CHAR",description:'返回计算机字符集的数字代码所对应的字符。\n\n示例:`CHAR(97)` 等价于 "a"。',example:"CHAR(code)",params:[{type:"number",name:"code",description:"编码值"}],returns:{type:"string",description:"指定位置的字符"},namespace:"文本函数"},{name:"LOWER",description:"将传入文本转成小写。",example:"LOWER(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"UPPER",description:"将传入文本转成大写。",example:"UPPER(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"UPPERFIRST",description:"将传入文本首字母转成大写。",example:"UPPERFIRST(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"PADSTART",description:'向前补齐文本长度。\n\n示例 `PADSTART("6", 2, "0")`,\n\n返回 `06`。',example:"PADSTART(text)",params:[{type:"string",name:"text",description:"文本"},{type:"number",name:"num",description:"目标长度"},{type:"string",name:"pad",description:"用于补齐的文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"CAPITALIZE",description:'将文本转成标题。\n\n示例 `CAPITALIZE("star")`,\n\n返回 `Star`。',example:"CAPITALIZE(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"ESCAPE",description:'对文本进行 HTML 转义。\n\n示例 `ESCAPE("<star>&")`,\n\n返回 `<start>&`。',example:"ESCAPE(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"TRUNCATE",description:'对文本长度进行截断。\n\n示例 `TRUNCATE("amis.baidu.com", 6)`,\n\n返回 `amis...`。',example:"TRUNCATE(text, 6)",params:[{type:"string",name:"text",description:"文本"},{type:"number",name:"text",description:"最长长度"}],returns:{type:"string",description:"结果文本"},namespace:"文本函数"},{name:"BEFORELAST",description:"取在某个分隔符之前的所有字符串。",example:"BEFORELAST(text, '.')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"delimiter",description:"结束文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"SPLIT",description:'将文本根据指定片段分割成数组。\n\n示例:`SPLIT("a,b,c", ",")`,\n\n返回 `["a", "b", "c"]`。',example:"SPLIT(text, ',')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"delimiter",description:"文本片段"}],returns:{type:"Array<string>",description:"文本集"},namespace:"文本函数"},{name:"TRIM",description:"将文本去除前后空格。",example:"TRIM(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"处理后的文本"},namespace:"文本函数"},{name:"STRIPTAG",description:'去除文本中的 HTML 标签。\n\n示例:`STRIPTAG("<b>amis</b>")`,\n\n返回:`amis`。',example:"STRIPTAG(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"处理后的文本"},namespace:"文本函数"},{name:"LINEBREAK",description:'将字符串中的换行转成 HTML `<br>`,用于简单换行的场景。\n\n示例:`LINEBREAK("\\n")`,\n\n返回:`<br/>`。',example:"LINEBREAK(text)",params:[{type:"string",name:"text",description:"文本"}],returns:{type:"string",description:"处理后的文本"},namespace:"文本函数"},{name:"STARTSWITH",description:"判断字符串(text)是否以特定字符串(startString)开始,是则返回 true,否则返回 false。",example:"STARTSWITH(text, '片段')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"startString",description:"起始文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"ENDSWITH",description:"判断字符串(text)是否以特定字符串(endString)结束,是则返回 true,否则返回 false。",example:"ENDSWITH(text, '片段')",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"endString",description:"结束文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"CONTAINS",description:"判断参数 1 中的文本是否包含参数 2 中的文本,是则返回 true,否则返回 false。",example:"CONTAINS(text, searchText)",params:[{type:"string",name:"text",description:"文本"},{type:"string",name:"searchText",description:"搜索文本"}],returns:{type:"string",description:"判断结果"},namespace:"文本函数"},{name:"REPLACE",description:"对文本进行全量替换。",example:"REPLACE(text, search, replace)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"string",name:"search",description:"要被替换的文本"},{type:"string",name:"replace",description:"要替换的文本"}],returns:{type:"string",description:"处理结果"},namespace:"文本函数"},{name:"SEARCH",description:"对文本进行搜索,返回命中的位置。",example:"SEARCH(text, search, 0)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"string",name:"search",description:"用来搜索的文本"},{type:"number",name:"start",description:"起始位置"}],returns:{type:"number",description:"命中的位置"},namespace:"文本函数"},{name:"MID",description:"返回文本字符串中从指定位置开始的特定数目的字符。",example:"MID(text, from, len)",params:[{type:"string",name:"text",description:"要处理的文本"},{type:"number",name:"from",description:"起始位置"},{type:"number",name:"len",description:"处理长度"}],returns:{type:"number",description:"命中的位置"},namespace:"文本函数"},{name:"BASENAME",description:"返回路径中的文件名。\n\n示例:`/home/amis/a.json`,\n\n返回:a.json`。",example:"BASENAME(text)",params:[{type:"string",name:"text",description:"要处理的文本"}],returns:{type:"string",description:"文件名"},namespace:"文本函数"},{name:"UUID",description:"生成UUID字符串",example:"UUID(8)",params:[{type:"number",name:"length",description:"生成的UUID字符串长度,默认为32位"}],returns:{type:"string",description:"生成的UUID字符串"},namespace:"文本函数"},{name:"DATE",description:"创建日期对象,可以通过特定格式的字符串,或者数值。\n\n需要注意的是,其中月份的数值是从0开始的,\n即如果是12月份,你应该传入数值11。",example:"DATE('2021-12-06 08:20:00')",params:[],returns:{type:"Date",description:"日期对象"},namespace:"日期函数"},{name:"TIMESTAMP",description:"返回时间的时间戳。",example:'TIMESTAMP(date[, format = "X"])',params:[{type:"date",name:"date",description:"日期对象"},{type:"string",name:"format",description:"时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。"}],returns:{type:"number",description:"时间戳"},namespace:"日期函数"},{name:"TODAY",description:"返回今天的日期。",example:"TODAY()",params:[],returns:{type:"number",description:"日期"},namespace:"日期函数"},{name:"NOW",description:"返回现在的日期",example:"NOW()",params:[],returns:{type:"number",description:"日期"},namespace:"日期函数"},{name:"WEEKDAY",description:"获取日期的星期几。\n\n示例\n\nWEEKDAY('2023-02-27') 得到 0。\nWEEKDAY('2023-02-27', 2) 得到 1。",example:"WEEKDAY(date)",params:[{type:"any",name:"date",description:"日期"},{type:"number",name:"type",description:"星期定义类型,默认为1,1表示0至6代表星期一到星期日,2表示1至7代表星期一到星期日"}],returns:{type:"number",description:"星期几的数字标识"},namespace:"日期函数"},{name:"WEEK",description:"获取年份的星期,即第几周。\n\n示例\n\nWEEK('2023-03-05') 得到 9。",example:"WEEK(date)",params:[{type:"any",name:"date",description:"日期"},{type:"boolean",name:"isISO",description:"是否ISO星期"}],returns:{type:"number",description:"星期几的数字标识"},namespace:"日期函数"},{name:"DATETOSTR",description:"对日期、日期字符串、时间戳进行格式化。\n\n示例\n\nDATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25',\nDATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17',\nDATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',\nDATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'。",example:"DATETOSTR(date, 'YYYY-MM-DD')",params:[{type:"any",name:"date",description:"日期对象、日期字符串、时间戳"},{type:"string",name:"format",description:'日期格式,默认为 "YYYY-MM-DD HH:mm:ss"'}],returns:{type:"string",description:"日期字符串"},namespace:"日期函数"},{name:"DATERANGESPLIT",description:"获取日期范围字符串中的开始时间、结束时间。\n\n示例:\n\nDATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999],\nDATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59],\nDATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',\nDATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',\nDATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59',\nDATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'。",example:"DATERANGESPLIT(date, 'YYYY-MM-DD')",params:[{type:"string",name:"date",description:"日期范围字符串"},{type:"string",name:"key",description:"取值标识,0或'start'表示获取开始时间,1或'end'表示获取结束时间"},{type:"string",name:"format",description:"日期格式,可选"},{type:"string",name:"delimiter",description:"分隔符,可选,默认为','"}],returns:{type:"string",description:"日期字符串"},namespace:"日期函数"},{name:"STARTOF",description:"返回日期的指定范围的开端。",example:'STARTOF(date[unit = "day"])',params:[{type:"date",name:"date",description:"日期对象"},{type:"string",name:"unit",description:"比如可以传入 'day'、'month'、'year' 或者 `week` 等等"},{type:"string",name:"format",description:"日期格式,可选"}],returns:{type:"date",description:"新的日期对象"},namespace:"日期函数"},{name:"ENDOF",description:"返回日期的指定范围的末尾。",example:'ENDOF(date[unit = "day"])',params:[{type:"date",name:"date",description:"日期对象"},{type:"string",name:"unit",description:"比如可以传入 'day'、'month'、'year' 或者 `week` 等等"},{type:"string",name:"format",description:"日期格式,可选"}],returns:{type:"date",description:"新的日期对象"},namespace:"日期函数"},{name:"YEAR",description:"返回日期的年份。",example:"YEAR(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"MONTH",description:"返回日期的月份,这里就是自然月份。",example:"MONTH(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"DAY",description:"返回日期的天。",example:"DAY(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"HOUR",description:"返回日期的小时。",example:"HOUR(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"MINUTE",description:"返回日期的分。",example:"MINUTE(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"SECOND",description:"返回日期的秒。",example:"SECOND(date)",params:[{type:"date",name:"date",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"YEARS",description:"返回两个日期相差多少年。",example:"YEARS(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"MINUTES",description:"返回两个日期相差多少分钟。",example:"MINUTES(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"DAYS",description:"返回两个日期相差多少天。",example:"DAYS(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"HOURS",description:"返回两个日期相差多少小时。",example:"HOURS(endDate, startDate)",params:[{type:"date",name:"endDate",description:"日期对象"},{type:"date",name:"startDate",description:"日期对象"}],returns:{type:"number",description:"数值"},namespace:"日期函数"},{name:"DATEMODIFY",description:"修改日期,对日期进行加减天、月份、年等操作。\n\n示例:\n\nDATEMODIFY(A, -2, 'month'),\n\n对日期 A 进行往前减2月的操作。",example:"DATEMODIFY(date, 2, 'days')",params:[{type:"date",name:"date",description:"日期对象"},{type:"number",name:"num",description:"数值"},{type:"string",name:"unit",description:"单位:支持年、月、天等等"}],returns:{type:"date",description:"日期对象"},namespace:"日期函数"},{name:"STRTODATE",description:"将字符日期转成日期对象,可以指定日期格式。\n\n示例:STRTODATE('2021/12/6', 'YYYY/MM/DD')",example:'STRTODATE(value[, format=""])',params:[{type:"string",name:"value",description:"日期字符"},{type:"string",name:"format",description:"日期格式"}],returns:{type:"date",description:"日期对象"},namespace:"日期函数"},{name:"ISBEFORE",description:"判断两个日期,是否第一个日期在第二个日期的前面,是则返回 true,否则返回 false。",example:"ISBEFORE(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"ISAFTER",description:"判断两个日期,是否第一个日期在第二个日期的后面,是则返回 true,否则返回 false。",example:"ISAFTER(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"BETWEENRANGE",description:"判断日期是否在指定范围内,是则返回 true,否则返回 false。\n\n示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])。",example:"BETWEENRANGE(date, [start, end])",params:[{type:"any",name:"date",description:"第一个日期"},{type:"Array<any>",name:"daterange",description:"日期范围"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"},{type:"string",name:"inclusivity",description:"包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"ISSAMEORBEFORE",description:"判断两个日期,是否第一个日期在第二个日期的前面或者相等,是则返回 true,否则返回 false。",example:"ISSAMEORBEFORE(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"ISSAMEORAFTER",description:"判断两个日期,是否第一个日期在第二个日期的后面或者相等,是则返回 true,否则返回 false。",example:"ISSAMEORAFTER(a, b)",params:[{type:"date",name:"a",description:"第一个日期"},{type:"date",name:"b",description:"第二个日期"},{type:"string",name:"unit",description:"单位,默认是 'day', 即之比较到天"}],returns:{type:"boolean",description:"判断结果"},namespace:"日期函数"},{name:"COUNT",description:"返回数组的长度。",example:"COUNT(arr)",params:[{type:"Array<any>",name:"arr",description:"数组"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYMAP",description:"数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。",example:"ARRAYMAP(arr, item => item)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYFILTER",description:"数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n将第二个箭头函数返回为 false 的成员过滤掉。",example:"ARRAYFILTER(arr, item => item)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYFINDINDEX",description:"数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员的索引。\n\n示例:\n\nARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1。",example:"ARRAYFINDINDEX(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"number",description:"结果"},namespace:"数组"},{name:"ARRAYFIND",description:"数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员。\n\n示例:\n\nARRAYFIND([0, 2, false], item => item === 2) 得到 2。",example:"ARRAYFIND(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"any",description:"结果"},namespace:"数组"},{name:"ARRAYSOME",description:"数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数是否存在返回为 true 的成员,是则返回 true,否则返回 false。\n\n示例:\n\nARRAYSOME([0, 2, false], item => item === 2) 得到 true。",example:"ARRAYSOME(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYEVERY",description:"数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数返回是否都为 true,是则返回 true,否则返回 false。\n\n示例:\n\nARRAYEVERY([0, 2, false], item => item === 2) 得到 false",example:"ARRAYEVERY(arr, item => item === 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"Array<any>",name:"iterator",description:"箭头函数"}],returns:{type:"boolean",description:"结果"},namespace:"数组"},{name:"ARRAYINCLUDES",description:"判断数据中是否存在指定元素。\n\n示例:\n\nARRAYINCLUDES([0, 2, false], 2) 得到 true。",example:"ARRAYINCLUDES(arr, 2)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"any",name:"item",description:"元素"}],returns:{type:"any",description:"结果"},namespace:"数组"},{name:"COMPACT",description:"数组过滤掉 false、null、0 和 \"\"。\n\n示例:\n\nCOMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]。",example:"COMPACT(arr)",params:[{type:"Array<any>",name:"arr",description:"数组"}],returns:{type:"Array<any>",description:"结果"},namespace:"数组"},{name:"JOIN",description:"数组转成字符串。\n\n示例:\n\nJOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'。",example:"JOIN(arr, string)",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"String",name:"separator",description:"分隔符"}],returns:{type:"String",description:"结果"},namespace:"数组"},{name:"CONCAT",description:"数组合并。\n\n示例:\n\nCONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']。",example:"CONCAT(['a', 'b', 'c'], ['1'], ['3'])",params:[{type:"Array<any>",name:"arr",description:"数组"}],returns:{type:"Array<any>",description:"结果"},namespace:"数组"},{name:"UNIQ",description:"数组去重,第二个参数「field」,可指定根据该字段去重。\n\n示例:\n\nUNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')。",example:"UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'x')",params:[{type:"Array<any>",name:"arr",description:"数组"},{type:"string",name:"field",description:"字段"}],returns:{type:"Array<any>",description:"结果"},namespace:"数组"},{name:"ENCODEJSON",description:"将JS对象转换成JSON字符串。\n\n示例:\n\nENCODEJSON({name: 'amis'}) 得到 '{\"name\":\"amis\"}'。",example:"ENCODEJSON({name: 'amis'})",params:[{type:"object",name:"obj",description:"JS对象"}],returns:{type:"string",description:"结果"},namespace:"编码"},{name:"DECODEJSON",description:"解析JSON编码数据,返回JS对象。\n\n示例:\n\nDECODEJSON('{\\\"name\\\": \"amis\"}') 得到 {name: 'amis'}。",example:'DECODEJSON(\'{\\"name\\": "amis"}\')',params:[{type:"string",name:"str",description:"字符串"}],returns:{type:"object",description:"结果"},namespace:"编码"},{name:"GET",description:"根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代。\n\n示例:\n\nGET([0, 2, {name: 'amis', age: 18}], 1) 得到 2,\nGET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis',\nGET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis',\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis',\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'。",example:"GET(arr, 2)",params:[{type:"any",name:"obj",description:"对象或数组"},{type:"string",name:"path",description:"路径"},{type:"any",name:"defaultValue",description:"如果解析不到则返回该值"}],returns:{type:"any",description:"结果"},namespace:"其他"},{name:"ISTYPE",description:"判断是否为类型支持:string, number, array, date, plain-object。",example:"ISTYPE([{a: '1'}, {b: '2'}, {a: '1'}], 'array')",params:[{type:"string",name:"判断对象",description:null}],returns:{type:"boolean",description:"结果"},namespace:"其他"}]}));
|