@itwin/components-react 5.28.1 → 5.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +144 -0
- package/lib/components-react/editors/BooleanEditor.d.ts +2 -0
- package/lib/components-react/editors/BooleanEditor.d.ts.map +1 -1
- package/lib/components-react/editors/BooleanEditor.js +3 -1
- package/lib/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/components-react/editors/CustomNumberEditor.d.ts +2 -0
- package/lib/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
- package/lib/components-react/editors/CustomNumberEditor.js +4 -6
- package/lib/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/components-react/editors/DateTimeEditor.d.ts.map +1 -1
- package/lib/components-react/editors/DateTimeEditor.js +2 -3
- package/lib/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/components-react/editors/EditorContainer.d.ts +5 -1
- package/lib/components-react/editors/EditorContainer.d.ts.map +1 -1
- package/lib/components-react/editors/EditorContainer.js +1 -1
- package/lib/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/components-react/editors/EnumButtonGroupEditor.d.ts +2 -0
- package/lib/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
- package/lib/components-react/editors/EnumButtonGroupEditor.js +3 -1
- package/lib/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/components-react/editors/EnumEditor.d.ts +2 -0
- package/lib/components-react/editors/EnumEditor.d.ts.map +1 -1
- package/lib/components-react/editors/EnumEditor.js +3 -0
- package/lib/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/components-react/editors/IconEditor.d.ts +2 -0
- package/lib/components-react/editors/IconEditor.d.ts.map +1 -1
- package/lib/components-react/editors/IconEditor.js +3 -1
- package/lib/components-react/editors/IconEditor.js.map +1 -1
- package/lib/components-react/editors/ImageCheckBoxEditor.d.ts +2 -0
- package/lib/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
- package/lib/components-react/editors/ImageCheckBoxEditor.js +3 -3
- package/lib/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/components-react/editors/NumericInputEditor.d.ts +2 -0
- package/lib/components-react/editors/NumericInputEditor.d.ts.map +1 -1
- package/lib/components-react/editors/NumericInputEditor.js +4 -4
- package/lib/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/components-react/editors/PopupButton.d.ts +2 -0
- package/lib/components-react/editors/PopupButton.d.ts.map +1 -1
- package/lib/components-react/editors/PopupButton.js +1 -1
- package/lib/components-react/editors/PopupButton.js.map +1 -1
- package/lib/components-react/editors/PropertyEditorManager.d.ts +11 -2
- package/lib/components-react/editors/PropertyEditorManager.d.ts.map +1 -1
- package/lib/components-react/editors/PropertyEditorManager.js +6 -1
- package/lib/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/components-react/editors/SliderEditor.d.ts +4 -1
- package/lib/components-react/editors/SliderEditor.d.ts.map +1 -1
- package/lib/components-react/editors/SliderEditor.js +7 -8
- package/lib/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/components-react/editors/TextEditor.d.ts +1 -0
- package/lib/components-react/editors/TextEditor.d.ts.map +1 -1
- package/lib/components-react/editors/TextEditor.js +3 -6
- package/lib/components-react/editors/TextEditor.js.map +1 -1
- package/lib/components-react/editors/TextareaEditor.d.ts +2 -0
- package/lib/components-react/editors/TextareaEditor.d.ts.map +1 -1
- package/lib/components-react/editors/TextareaEditor.js +3 -1
- package/lib/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/components-react/editors/ToggleEditor.d.ts +2 -0
- package/lib/components-react/editors/ToggleEditor.d.ts.map +1 -1
- package/lib/components-react/editors/ToggleEditor.js +3 -1
- package/lib/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/components-react/editors/registerEditors.d.ts.map +1 -1
- package/lib/components-react/editors/registerEditors.js +1 -0
- package/lib/components-react/editors/registerEditors.js.map +1 -1
- package/lib/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
- package/lib/components-react/favorite/FavoritePropertyList.js +4 -1
- package/lib/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/components-react/filter-builder/FilterBuilderRule.d.ts +1 -0
- package/lib/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
- package/lib/components-react/filter-builder/FilterBuilderRule.js +5 -3
- package/lib/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +1 -0
- package/lib/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
- package/lib/components-react/filter-builder/FilterBuilderRuleGroup.js +5 -5
- package/lib/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/components-react/filter-builder/FilterBuilderRuleValue.d.ts +45 -8
- package/lib/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
- package/lib/components-react/filter-builder/FilterBuilderRuleValue.js +17 -8
- package/lib/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/components-react/new-editors/ConstraintUtils.d.ts +62 -0
- package/lib/components-react/new-editors/ConstraintUtils.d.ts.map +1 -0
- package/lib/components-react/new-editors/ConstraintUtils.js +49 -0
- package/lib/components-react/new-editors/ConstraintUtils.js.map +1 -0
- package/lib/components-react/new-editors/Types.d.ts +6 -0
- package/lib/components-react/new-editors/Types.d.ts.map +1 -1
- package/lib/components-react/new-editors/Types.js.map +1 -1
- package/lib/components-react/new-editors/UseCommittableValue.d.ts +2 -5
- package/lib/components-react/new-editors/UseCommittableValue.d.ts.map +1 -1
- package/lib/components-react/new-editors/UseCommittableValue.js +4 -1
- package/lib/components-react/new-editors/UseCommittableValue.js.map +1 -1
- package/lib/components-react/new-editors/editors/BooleanEditor.d.ts +1 -1
- package/lib/components-react/new-editors/editors/BooleanEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/BooleanEditor.js +2 -2
- package/lib/components-react/new-editors/editors/BooleanEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors/DateEditor.d.ts +1 -1
- package/lib/components-react/new-editors/editors/DateEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/DateEditor.js +2 -2
- package/lib/components-react/new-editors/editors/DateEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors/DateInput.d.ts +2 -1
- package/lib/components-react/new-editors/editors/DateInput.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/DateInput.js +2 -2
- package/lib/components-react/new-editors/editors/DateInput.js.map +1 -1
- package/lib/components-react/new-editors/editors/DateTimeEditor.d.ts +1 -1
- package/lib/components-react/new-editors/editors/DateTimeEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/DateTimeEditor.js +2 -2
- package/lib/components-react/new-editors/editors/DateTimeEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors/EnumEditor.d.ts +1 -1
- package/lib/components-react/new-editors/editors/EnumEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/EnumEditor.js +2 -2
- package/lib/components-react/new-editors/editors/EnumEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors/FallbackEditor.d.ts +1 -1
- package/lib/components-react/new-editors/editors/FallbackEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/FallbackEditor.js +2 -2
- package/lib/components-react/new-editors/editors/FallbackEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors/NumericEditor.d.ts +2 -2
- package/lib/components-react/new-editors/editors/NumericEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/NumericEditor.js +7 -3
- package/lib/components-react/new-editors/editors/NumericEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors/TextEditor.d.ts +2 -2
- package/lib/components-react/new-editors/editors/TextEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/TextEditor.js +4 -2
- package/lib/components-react/new-editors/editors/TextEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors/ToggleEditor.d.ts +1 -1
- package/lib/components-react/new-editors/editors/ToggleEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors/ToggleEditor.js +2 -2
- package/lib/components-react/new-editors/editors/ToggleEditor.js.map +1 -1
- package/lib/components-react/new-editors/editors-registry/DefaultEditors.d.ts.map +1 -1
- package/lib/components-react/new-editors/editors-registry/DefaultEditors.js.map +1 -1
- package/lib/components-react/new-editors/interop/EditorInterop.d.ts +5 -4
- package/lib/components-react/new-editors/interop/EditorInterop.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/EditorInterop.js +1 -0
- package/lib/components-react/new-editors/interop/EditorInterop.js.map +1 -1
- package/lib/components-react/new-editors/interop/Metadata.d.ts +9 -6
- package/lib/components-react/new-editors/interop/Metadata.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/Metadata.js +6 -3
- package/lib/components-react/new-editors/interop/Metadata.js.map +1 -1
- package/lib/components-react/new-editors/interop/PropertyRecordEditor.d.ts +42 -3
- package/lib/components-react/new-editors/interop/PropertyRecordEditor.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/PropertyRecordEditor.js +11 -6
- package/lib/components-react/new-editors/interop/PropertyRecordEditor.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/Color.js +4 -4
- package/lib/components-react/new-editors/interop/old-editors/Color.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/CustomNumber.d.ts +4 -3
- package/lib/components-react/new-editors/interop/old-editors/CustomNumber.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/CustomNumber.js +11 -5
- package/lib/components-react/new-editors/interop/old-editors/CustomNumber.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/Enum.js +2 -2
- package/lib/components-react/new-editors/interop/old-editors/Enum.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/EnumButtonGroup.js +4 -4
- package/lib/components-react/new-editors/interop/old-editors/EnumButtonGroup.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/NumericInput.d.ts +7 -1
- package/lib/components-react/new-editors/interop/old-editors/NumericInput.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/NumericInput.js +21 -6
- package/lib/components-react/new-editors/interop/old-editors/NumericInput.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/Slider.js +4 -4
- package/lib/components-react/new-editors/interop/old-editors/Slider.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/TextArea.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/TextArea.js +4 -4
- package/lib/components-react/new-editors/interop/old-editors/TextArea.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/UseEditorParams.d.ts +8 -8
- package/lib/components-react/new-editors/interop/old-editors/UseEditorParams.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/UseEditorParams.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/UseEnumMetadata.d.ts +2 -2
- package/lib/components-react/new-editors/interop/old-editors/UseEnumMetadata.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/UseEnumMetadata.js.map +1 -1
- package/lib/components-react/new-editors/values/Metadata.d.ts +22 -0
- package/lib/components-react/new-editors/values/Metadata.d.ts.map +1 -1
- package/lib/components-react/new-editors/values/Metadata.js.map +1 -1
- package/lib/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
- package/lib/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +4 -1
- package/lib/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/components-react/properties/renderers/PropertyRenderer.d.ts +45 -7
- package/lib/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
- package/lib/components-react/properties/renderers/PropertyRenderer.js +13 -5
- package/lib/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/components-react/propertygrid/component/PropertyList.d.ts +40 -10
- package/lib/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
- package/lib/components-react/propertygrid/component/PropertyList.js +7 -2
- package/lib/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +37 -33
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGrid.js +10 -4
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +41 -5
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts.map +1 -1
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js +6 -4
- package/lib/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +3 -1
- package/lib/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/components-react.d.ts +2 -1
- package/lib/components-react.d.ts.map +1 -1
- package/lib/components-react.js +1 -0
- package/lib/components-react.js.map +1 -1
- package/lib/internal.d.ts +1 -1
- package/lib/internal.d.ts.map +1 -1
- package/lib/internal.js +1 -1
- package/lib/internal.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyRecordEditor.js","sourceRoot":"","sources":["../../../../src/components-react/new-editors/interop/PropertyRecordEditor.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,GAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"PropertyRecordEditor.js","sourceRoot":"","sources":["../../../../src/components-react/new-editors/interop/PropertyRecordEditor.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,GAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA+CtD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkC,CAAC,EAClE,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI;AACJ,4DAA4D;AAC5D,YAAY,GACc,EAAE,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC9E,IAAI,YAAY,KAAK,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QAChD,OAAO,CACL,oBAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,QAAQ,CAAC;oBACP,cAAc;oBACd,QAAQ,EACN,QAAQ,KAAK,SAAS;wBACpB,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,CAAC,SAAS,EAAE;wBAChD,CAAC,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;iBACtD,CAAC,CAAC;YACL,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,EAChE,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,GAChC,CACH,CAAC;IACJ,CAAC;IAED,OAAO;IACL,4DAA4D;IAC5D,oBAAC,eAAe,IACd,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,EAAE,GAUH;IACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC;QACzE,YAAY;QACZ,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO,CACL,6BACE,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,cAAc;QAEnB,oBAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,GACN,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyEditors\n */\n\nimport * as React from \"react\";\nimport {\n type PropertyRecord,\n PropertyValueFormat,\n} from \"@itwin/appui-abstract\";\nimport { EditorInterop } from \"./EditorInterop.js\";\nimport {\n EditorContainer,\n type PropertyUpdatedArgs,\n} from \"../../editors/EditorContainer.js\";\nimport { useCommittableValue } from \"../UseCommittableValue.js\";\nimport { EditorRenderer } from \"../EditorRenderer.js\";\nimport type { ValueMetadata } from \"../values/Metadata.js\";\nimport type { Value } from \"../values/Values.js\";\nimport type { WithConstraints } from \"../ConstraintUtils.js\";\n\ninterface PropertyRecordEditorBaseProps {\n propertyRecord: PropertyRecord;\n onCommit: (args: PropertyUpdatedArgs) => void;\n onCancel: () => void;\n onClick?: () => void;\n setFocus?: boolean;\n size?: \"small\" | \"large\";\n}\n\ninterface PropertyRecordEditorLegacyProps\n extends PropertyRecordEditorBaseProps {\n /**\n * @deprecated in 5.30. Use `PropertyRecordEditor` with `editorSystem=\"new\"` instead. This is provided only in case\n * there is a need to switch back to the legacy editor system.\n */\n editorSystem?: \"legacy\";\n}\n\ninterface PropertyRecordEditorNewProps extends PropertyRecordEditorBaseProps {\n editorSystem: \"new\";\n}\n\ntype PropertyRecordEditorProps =\n | PropertyRecordEditorLegacyProps\n | PropertyRecordEditorNewProps;\n\ninterface PropertyRecordEditorComponent {\n /**\n * Editor component for editing property values represented by `PropertyRecord`.\n * @beta\n */\n (props: PropertyRecordEditorNewProps): React.JSX.Element;\n /**\n * @deprecated in 5.30. Use `PropertyRecordEditor` with `editorSystem=\"new\"` instead. This is provided only in case\n * there is a need to switch back to the legacy editor system.\n * @beta\n */\n (props: PropertyRecordEditorLegacyProps): React.JSX.Element;\n /** @beta */\n (props: PropertyRecordEditorProps): React.JSX.Element;\n}\n\n/**\n * Editor component for editing property values represented by `PropertyRecord`.\n * @beta\n */\nexport const PropertyRecordEditor: PropertyRecordEditorComponent = ({\n propertyRecord,\n onCommit,\n onCancel,\n onClick,\n setFocus,\n size,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n editorSystem,\n}: PropertyRecordEditorProps) => {\n const { metadata, value } = EditorInterop.getMetadataAndValue(propertyRecord);\n if (editorSystem === \"new\" && metadata && value) {\n return (\n <CommittingEditor\n metadata={metadata}\n initialValue={value}\n onCommit={(newValue) => {\n onCommit({\n propertyRecord,\n newValue:\n newValue === undefined\n ? { valueFormat: PropertyValueFormat.Primitive }\n : EditorInterop.convertToPrimitiveValue(newValue),\n });\n }}\n onCancel={onCancel}\n onClick={onClick}\n disabled={propertyRecord.isDisabled || propertyRecord.isReadonly}\n size={size}\n id={propertyRecord.property.name}\n />\n );\n }\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <EditorContainer\n propertyRecord={propertyRecord}\n onCommit={onCommit}\n onCancel={onCancel}\n onClick={onClick}\n setFocus={setFocus}\n />\n );\n};\n\n/** @internal */\nexport function CommittingEditor({\n metadata,\n initialValue,\n onCancel,\n onCommit,\n onClick,\n disabled,\n size,\n id,\n}: {\n metadata: WithConstraints<ValueMetadata>;\n initialValue?: Value;\n onCommit: (value?: Value) => void;\n onCancel: () => void;\n onClick?: () => void;\n disabled?: boolean;\n size?: \"small\" | \"large\";\n id?: string;\n}) {\n const { value, onChange, onKeydown, commit, cancel } = useCommittableValue({\n initialValue,\n onCommit,\n onCancel,\n });\n\n return (\n <div\n onKeyDown={onKeydown}\n onBlur={commit}\n onClick={onClick}\n role=\"presentation\"\n >\n <EditorRenderer\n metadata={metadata}\n value={value}\n onChange={onChange}\n commit={commit}\n cancel={cancel}\n disabled={disabled}\n size={size}\n id={id}\n />\n </div>\n );\n}\n"]}
|
|
@@ -6,7 +6,7 @@ import * as React from "react";
|
|
|
6
6
|
import { PropertyEditorParamTypes, StandardEditorNames, } from "@itwin/appui-abstract";
|
|
7
7
|
import { ColorPalette, ColorPicker, ColorSwatch, ColorValue, IconButton, Popover, } from "@itwin/itwinui-react";
|
|
8
8
|
import { createEditorSpec } from "../../Types.js";
|
|
9
|
-
import {
|
|
9
|
+
import { isPropertyRecordEditorMetadata } from "../Metadata.js";
|
|
10
10
|
import { useColorEditorParams } from "./UseEditorParams.js";
|
|
11
11
|
import { isNumeric } from "../../values/ValueUtilities.js";
|
|
12
12
|
/* v8 ignore start */
|
|
@@ -15,14 +15,14 @@ import { isNumeric } from "../../values/ValueUtilities.js";
|
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export const ColorEditorSpec = createEditorSpec({
|
|
18
|
-
isMetadataSupported: (metadata) =>
|
|
18
|
+
isMetadataSupported: (metadata) => isPropertyRecordEditorMetadata(metadata) &&
|
|
19
19
|
metadata.type === "number" &&
|
|
20
20
|
!!metadata.params?.find((param) => param.type === PropertyEditorParamTypes.ColorData.valueOf()) &&
|
|
21
21
|
metadata.preferredEditor === StandardEditorNames.ColorPicker,
|
|
22
22
|
isValueSupported: isNumeric,
|
|
23
23
|
Editor: ColorEditor,
|
|
24
24
|
});
|
|
25
|
-
function ColorEditor({ value, metadata, onChange, commit, size, }) {
|
|
25
|
+
function ColorEditor({ value, metadata, onChange, commit, size, id, }) {
|
|
26
26
|
const colorParams = useColorEditorParams(metadata);
|
|
27
27
|
const colors = colorParams?.colorValues ?? [];
|
|
28
28
|
const currentValue = value
|
|
@@ -41,7 +41,7 @@ function ColorEditor({ value, metadata, onChange, commit, size, }) {
|
|
|
41
41
|
commit?.();
|
|
42
42
|
}
|
|
43
43
|
} },
|
|
44
|
-
React.createElement(IconButton, { size: size },
|
|
44
|
+
React.createElement(IconButton, { id: id, size: size },
|
|
45
45
|
React.createElement(ColorSwatch, { color: activeColor }))));
|
|
46
46
|
}
|
|
47
47
|
/* v8 ignore stop */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/Color.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,OAAO,GACR,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/Color.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,OAAO,GACR,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,qBAAqB;AAErB;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAe,gBAAgB,CAAC;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAA4C,EAAE,CAC1E,8BAA8B,CAAC,QAAQ,CAAC;QACxC,QAAQ,CAAC,IAAI,KAAK,QAAQ;QAC1B,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB,CAAC,SAAS,CAAC,OAAO,EAAE,CACvE;QACD,QAAQ,CAAC,eAAe,KAAK,mBAAmB,CAAC,WAAW;IAC9D,gBAAgB,EAAE,SAAS;IAC3B,MAAM,EAAE,WAAW;CACpB,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,EAAE,GACsD;IACxD,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC;IAE9C,MAAM,YAAY,GAAG,KAAK;QACxB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,MAAM,WAAW,GACf,YAAY,CAAC,QAAQ,KAAK,SAAS;QACjC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEpB,MAAM,cAAc,GAAG,CAAC,KAAiB,EAAE,EAAE;QAC3C,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,OAAO,IACN,OAAO,EACL,oBAAC,WAAW,IACV,aAAa,EAAE,WAAW,EAC1B,gBAAgB,EAAE,cAAc;YAEhC,oBAAC,YAAY,IAAC,MAAM,EAAE,UAAU,GAAI,CACxB,EAEhB,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,EAAE,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAED,oBAAC,UAAU,IAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI;YAC5B,oBAAC,WAAW,IAAC,KAAK,EAAE,WAAW,GAAI,CACxB,CACL,CACX,CAAC;AACJ,CAAC;AAED,oBAAoB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport {\n PropertyEditorParamTypes,\n StandardEditorNames,\n} from \"@itwin/appui-abstract\";\nimport {\n ColorPalette,\n ColorPicker,\n ColorSwatch,\n ColorValue,\n IconButton,\n Popover,\n} from \"@itwin/itwinui-react\";\nimport type { EditorProps, EditorSpec } from \"../../Types.js\";\nimport { createEditorSpec } from \"../../Types.js\";\nimport type { PropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { isPropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport type { NumericValue } from \"../../values/Values.js\";\nimport { useColorEditorParams } from \"./UseEditorParams.js\";\nimport { isNumeric } from \"../../values/ValueUtilities.js\";\n\n/* v8 ignore start */\n\n/**\n * Editor specification for color editor.\n * @internal\n */\nexport const ColorEditorSpec: EditorSpec = createEditorSpec({\n isMetadataSupported: (metadata): metadata is PropertyRecordEditorMetadata =>\n isPropertyRecordEditorMetadata(metadata) &&\n metadata.type === \"number\" &&\n !!metadata.params?.find(\n (param) => param.type === PropertyEditorParamTypes.ColorData.valueOf()\n ) &&\n metadata.preferredEditor === StandardEditorNames.ColorPicker,\n isValueSupported: isNumeric,\n Editor: ColorEditor,\n});\n\nfunction ColorEditor({\n value,\n metadata,\n onChange,\n commit,\n size,\n id,\n}: EditorProps<PropertyRecordEditorMetadata, NumericValue>) {\n const colorParams = useColorEditorParams(metadata);\n const colors = colorParams?.colorValues ?? [];\n\n const currentValue = value\n ? value\n : { rawValue: colors[0], displayValue: \"\" };\n const colorsList = colors.map((color) => ColorValue.fromTbgr(color));\n const activeColor =\n currentValue.rawValue !== undefined\n ? ColorValue.fromTbgr(currentValue.rawValue)\n : colorsList[0];\n\n const onColorChanged = (color: ColorValue) => {\n onChange({ rawValue: color.toTbgr(), displayValue: \"\" });\n };\n\n return (\n <Popover\n content={\n <ColorPicker\n selectedColor={activeColor}\n onChangeComplete={onColorChanged}\n >\n <ColorPalette colors={colorsList} />\n </ColorPicker>\n }\n onVisibleChange={(visible) => {\n if (!visible) {\n commit?.();\n }\n }}\n >\n <IconButton id={id} size={size}>\n <ColorSwatch color={activeColor} />\n </IconButton>\n </Popover>\n );\n}\n\n/* v8 ignore stop */\n"]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { EditorProps } from "../../Types.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { PropertyRecordEditorMetadata } from "../Metadata.js";
|
|
4
4
|
import type { NumericValue } from "../../values/Values.js";
|
|
5
|
+
import type { WithConstraints } from "../../ConstraintUtils.js";
|
|
5
6
|
/** @internal */
|
|
6
7
|
export declare const CustomNumberEditorSpec: import("../../Types.js").EditorSpec;
|
|
7
|
-
interface CustomNumberEditorProps extends EditorProps<
|
|
8
|
+
interface CustomNumberEditorProps extends EditorProps<WithConstraints<PropertyRecordEditorMetadata>, NumericValue> {
|
|
8
9
|
decoration?: React.ReactNode;
|
|
9
10
|
}
|
|
10
11
|
/** @internal */
|
|
11
|
-
export declare function CustomNumberEditor({ metadata, value, onChange, size, disabled, decoration, }: CustomNumberEditorProps): React.JSX.Element | null;
|
|
12
|
+
export declare function CustomNumberEditor({ metadata, value, onChange, size, disabled, decoration, id, }: CustomNumberEditorProps): React.JSX.Element | null;
|
|
12
13
|
export {};
|
|
13
14
|
//# sourceMappingURL=CustomNumber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomNumber.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/CustomNumber.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CustomNumber.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/CustomNumber.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQ3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOhE,gBAAgB;AAChB,eAAO,MAAM,sBAAsB,qCAWjC,CAAC;AAEH,UAAU,uBACR,SAAQ,WAAW,CACjB,eAAe,CAAC,4BAA4B,CAAC,EAC7C,YAAY,CACb;IACD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,EAAE,GACH,EAAE,uBAAuB,4BAiEzB"}
|
|
@@ -6,14 +6,15 @@ import * as React from "react";
|
|
|
6
6
|
import { PropertyEditorParamTypes, StandardEditorNames, } from "@itwin/appui-abstract";
|
|
7
7
|
import { InputWithDecorations } from "@itwin/itwinui-react";
|
|
8
8
|
import { createEditorSpec } from "../../Types.js";
|
|
9
|
-
import {
|
|
9
|
+
import { isPropertyRecordEditorMetadata } from "../Metadata.js";
|
|
10
10
|
import { useCustomFormattedNumberParams, useIconEditorParams, useInputEditorSizeParams, } from "./UseEditorParams.js";
|
|
11
11
|
import { findIcon } from "../IconsRegistry.js";
|
|
12
12
|
import { isNumeric } from "../../values/ValueUtilities.js";
|
|
13
|
+
import { applyNumericConstraints, getNumericConstraints, } from "../../ConstraintUtils.js";
|
|
13
14
|
/* v8 ignore start */
|
|
14
15
|
/** @internal */
|
|
15
16
|
export const CustomNumberEditorSpec = createEditorSpec({
|
|
16
|
-
isMetadataSupported: (metadata) =>
|
|
17
|
+
isMetadataSupported: (metadata) => isPropertyRecordEditorMetadata(metadata) &&
|
|
17
18
|
metadata.type === "number" &&
|
|
18
19
|
!!metadata.params?.find((param) => param.type === PropertyEditorParamTypes.CustomFormattedNumber.valueOf()) &&
|
|
19
20
|
metadata.preferredEditor === StandardEditorNames.NumberCustom,
|
|
@@ -21,7 +22,7 @@ export const CustomNumberEditorSpec = createEditorSpec({
|
|
|
21
22
|
Editor: CustomNumberEditor,
|
|
22
23
|
});
|
|
23
24
|
/** @internal */
|
|
24
|
-
export function CustomNumberEditor({ metadata, value, onChange, size, disabled, decoration, }) {
|
|
25
|
+
export function CustomNumberEditor({ metadata, value, onChange, size, disabled, decoration, id, }) {
|
|
25
26
|
const formatParams = useCustomFormattedNumberParams(metadata);
|
|
26
27
|
const sizeParams = useInputEditorSizeParams(metadata);
|
|
27
28
|
const iconParams = useIconEditorParams(metadata);
|
|
@@ -48,7 +49,12 @@ export function CustomNumberEditor({ metadata, value, onChange, size, disabled,
|
|
|
48
49
|
const handleChange = (e) => {
|
|
49
50
|
const currentValue = e.target.value;
|
|
50
51
|
const result = formatParams.parseFunction(currentValue);
|
|
51
|
-
const parsedValue = typeof result.value === "number"
|
|
52
|
+
const parsedValue = typeof result.value === "number"
|
|
53
|
+
? applyNumericConstraints({
|
|
54
|
+
...getNumericConstraints(metadata.constraints),
|
|
55
|
+
value: result.value,
|
|
56
|
+
})
|
|
57
|
+
: undefined;
|
|
52
58
|
setInputValue(currentValue);
|
|
53
59
|
onChange({
|
|
54
60
|
rawValue: parsedValue,
|
|
@@ -57,7 +63,7 @@ export function CustomNumberEditor({ metadata, value, onChange, size, disabled,
|
|
|
57
63
|
};
|
|
58
64
|
return (React.createElement(InputWithDecorations, { size: size },
|
|
59
65
|
icon !== undefined ? (React.createElement(InputWithDecorations.Icon, null, icon)) : null,
|
|
60
|
-
React.createElement(InputWithDecorations.Input, { ref: inputRef, style: style, disabled: disabled, onChange: handleChange, value: inputValue }),
|
|
66
|
+
React.createElement(InputWithDecorations.Input, { id: id, ref: inputRef, style: style, disabled: disabled, onChange: handleChange, value: inputValue }),
|
|
61
67
|
decoration));
|
|
62
68
|
}
|
|
63
69
|
/* v8 ignore stop */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomNumber.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/CustomNumber.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CustomNumber.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/CustomNumber.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport {\n PropertyEditorParamTypes,\n StandardEditorNames,\n} from \"@itwin/appui-abstract\";\nimport { InputWithDecorations } from \"@itwin/itwinui-react\";\nimport type { EditorProps } from \"../../Types.js\";\nimport { createEditorSpec } from \"../../Types.js\";\nimport type { PropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { isPropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport type { NumericValue } from \"../../values/Values.js\";\nimport {\n useCustomFormattedNumberParams,\n useIconEditorParams,\n useInputEditorSizeParams,\n} from \"./UseEditorParams.js\";\nimport { findIcon } from \"../IconsRegistry.js\";\nimport { isNumeric } from \"../../values/ValueUtilities.js\";\nimport type { WithConstraints } from \"../../ConstraintUtils.js\";\nimport {\n applyNumericConstraints,\n getNumericConstraints,\n} from \"../../ConstraintUtils.js\";\n/* v8 ignore start */\n\n/** @internal */\nexport const CustomNumberEditorSpec = createEditorSpec({\n isMetadataSupported: (metadata): metadata is PropertyRecordEditorMetadata =>\n isPropertyRecordEditorMetadata(metadata) &&\n metadata.type === \"number\" &&\n !!metadata.params?.find(\n (param) =>\n param.type === PropertyEditorParamTypes.CustomFormattedNumber.valueOf()\n ) &&\n metadata.preferredEditor === StandardEditorNames.NumberCustom,\n isValueSupported: isNumeric,\n Editor: CustomNumberEditor,\n});\n\ninterface CustomNumberEditorProps\n extends EditorProps<\n WithConstraints<PropertyRecordEditorMetadata>,\n NumericValue\n > {\n decoration?: React.ReactNode;\n}\n\n/** @internal */\nexport function CustomNumberEditor({\n metadata,\n value,\n onChange,\n size,\n disabled,\n decoration,\n id,\n}: CustomNumberEditorProps) {\n const formatParams = useCustomFormattedNumberParams(metadata);\n const sizeParams = useInputEditorSizeParams(metadata);\n const iconParams = useIconEditorParams(metadata);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [inputValue, setInputValue] = React.useState(() => {\n return value?.rawValue !== undefined && formatParams\n ? formatParams.formatFunction(value.rawValue)\n : \"\";\n });\n\n if (!formatParams) {\n return null;\n }\n\n const style: React.CSSProperties | undefined =\n sizeParams?.size !== undefined\n ? {\n minWidth: `${sizeParams?.size * 0.75}em`,\n maxWidth:\n sizeParams?.maxSize !== undefined\n ? `${sizeParams?.maxSize * 0.75}em`\n : undefined,\n }\n : undefined;\n const icon =\n iconParams?.definition?.iconSpec !== undefined\n ? findIcon(iconParams.definition.iconSpec)\n : undefined;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = e.target.value;\n const result = formatParams.parseFunction(currentValue);\n const parsedValue =\n typeof result.value === \"number\"\n ? applyNumericConstraints({\n ...getNumericConstraints(metadata.constraints),\n value: result.value,\n })\n : undefined;\n\n setInputValue(currentValue);\n\n onChange({\n rawValue: parsedValue,\n displayValue: currentValue,\n });\n };\n\n return (\n <InputWithDecorations size={size}>\n {icon !== undefined ? (\n <InputWithDecorations.Icon>{icon}</InputWithDecorations.Icon>\n ) : null}\n <InputWithDecorations.Input\n id={id}\n ref={inputRef}\n style={style}\n disabled={disabled}\n onChange={handleChange}\n value={inputValue}\n />\n {decoration}\n </InputWithDecorations>\n );\n}\n\n/* v8 ignore stop */\n"]}
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { createEditorSpec, } from "../../Types.js";
|
|
7
7
|
import { EnumEditor as NewEnumEditor } from "../../editors/EnumEditor.js";
|
|
8
|
-
import {
|
|
8
|
+
import { isPropertyRecordEditorMetadata } from "../Metadata.js";
|
|
9
9
|
import { useEnumMetadata } from "./UseEnumMetadata.js";
|
|
10
10
|
import { isEnum } from "../../values/ValueUtilities.js";
|
|
11
11
|
/* v8 ignore start */
|
|
12
12
|
/** @internal */
|
|
13
13
|
export const EnumEditorSpec = createEditorSpec({
|
|
14
|
-
isMetadataSupported: (metadata) =>
|
|
14
|
+
isMetadataSupported: (metadata) => isPropertyRecordEditorMetadata(metadata) && metadata.type === "enum",
|
|
15
15
|
isValueSupported: isEnum,
|
|
16
16
|
Editor: EnumEditor,
|
|
17
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Enum.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/Enum.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Enum.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/Enum.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,qBAAqB;AAErB,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAe,gBAAgB,CAAC;IACzD,mBAAmB,EAAE,CAAC,QAAQ,EAA4C,EAAE,CAC1E,8BAA8B,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;IACtE,gBAAgB,EAAE,MAAM;IACxB,MAAM,EAAE,UAAU;CACnB,CAAC,CAAC;AAEH,SAAS,UAAU,CACjB,KAA2D;IAE3D,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,oBAAC,aAAa,OAAK,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAI,CAAC;AAC7D,CAAC;AAED,oBAAoB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport {\n createEditorSpec,\n type EditorProps,\n type EditorSpec,\n} from \"../../Types.js\";\nimport { EnumEditor as NewEnumEditor } from \"../../editors/EnumEditor.js\";\nimport type { PropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { isPropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport type { EnumValue } from \"../../values/Values.js\";\nimport { useEnumMetadata } from \"./UseEnumMetadata.js\";\nimport { isEnum } from \"../../values/ValueUtilities.js\";\n\n/* v8 ignore start */\n\n/** @internal */\nexport const EnumEditorSpec: EditorSpec = createEditorSpec({\n isMetadataSupported: (metadata): metadata is PropertyRecordEditorMetadata =>\n isPropertyRecordEditorMetadata(metadata) && metadata.type === \"enum\",\n isValueSupported: isEnum,\n Editor: EnumEditor,\n});\n\nfunction EnumEditor(\n props: EditorProps<PropertyRecordEditorMetadata, EnumValue>\n) {\n const newMetadata = useEnumMetadata(props.metadata);\n return <NewEnumEditor {...props} metadata={newMetadata} />;\n}\n\n/* v8 ignore stop */\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { StandardEditorNames, } from "@itwin/appui-abstract";
|
|
7
7
|
import { createEditorSpec } from "../../Types.js";
|
|
8
|
-
import {
|
|
8
|
+
import { isPropertyRecordEditorMetadata } from "../Metadata.js";
|
|
9
9
|
import { useEnumMetadata } from "./UseEnumMetadata.js";
|
|
10
10
|
import { useButtonGroupEditorParams } from "./UseEditorParams.js";
|
|
11
11
|
import { ButtonGroup, IconButton } from "@itwin/itwinui-react";
|
|
@@ -14,13 +14,13 @@ import { isEnum } from "../../values/ValueUtilities.js";
|
|
|
14
14
|
/* v8 ignore start */
|
|
15
15
|
/** @internal */
|
|
16
16
|
export const EnumButtonGroupEditorSpec = createEditorSpec({
|
|
17
|
-
isMetadataSupported: (metadata) =>
|
|
17
|
+
isMetadataSupported: (metadata) => isPropertyRecordEditorMetadata(metadata) &&
|
|
18
18
|
metadata.type === "enum" &&
|
|
19
19
|
metadata.preferredEditor === StandardEditorNames.EnumButtonGroup,
|
|
20
20
|
isValueSupported: isEnum,
|
|
21
21
|
Editor: EnumButtonGroupEditor,
|
|
22
22
|
});
|
|
23
|
-
function EnumButtonGroupEditor({ value, onChange, commit, size, disabled, metadata, }) {
|
|
23
|
+
function EnumButtonGroupEditor({ value, onChange, commit, size, disabled, metadata, id, }) {
|
|
24
24
|
const enumMetadata = useEnumMetadata(metadata);
|
|
25
25
|
const buttonGroupParams = useButtonGroupEditorParams(metadata);
|
|
26
26
|
const enumIcons = React.useMemo(() => {
|
|
@@ -30,7 +30,7 @@ function EnumButtonGroupEditor({ value, onChange, commit, size, disabled, metada
|
|
|
30
30
|
}, [enumMetadata, buttonGroupParams]);
|
|
31
31
|
const firstChoice = enumMetadata.choices[0];
|
|
32
32
|
const currentValue = value ? value : { choice: firstChoice?.value ?? "" };
|
|
33
|
-
return (React.createElement(ButtonGroup, { orientation: "horizontal" }, enumMetadata.choices.map((choice) => {
|
|
33
|
+
return (React.createElement(ButtonGroup, { id: id, orientation: "horizontal" }, enumMetadata.choices.map((choice) => {
|
|
34
34
|
const icon = findIcon(enumIcons?.get(choice.value));
|
|
35
35
|
return (React.createElement(IconButton, { key: choice.value, onClick: () => {
|
|
36
36
|
onChange({ choice: choice.value });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumButtonGroup.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/EnumButtonGroup.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAEL,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EnumButtonGroup.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/EnumButtonGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport type { ButtonGroupEditorParams } from \"@itwin/appui-abstract\";\nimport {\n type EnumerationChoice,\n StandardEditorNames,\n} from \"@itwin/appui-abstract\";\nimport type { EditorProps, EditorSpec } from \"../../Types.js\";\nimport { createEditorSpec } from \"../../Types.js\";\nimport type { PropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { isPropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport type { EnumValue } from \"../../values/Values.js\";\nimport { useEnumMetadata } from \"./UseEnumMetadata.js\";\nimport { useButtonGroupEditorParams } from \"./UseEditorParams.js\";\nimport { ButtonGroup, IconButton } from \"@itwin/itwinui-react\";\nimport { findIcon } from \"../IconsRegistry.js\";\nimport { isEnum } from \"../../values/ValueUtilities.js\";\n\n/* v8 ignore start */\n\n/** @internal */\nexport const EnumButtonGroupEditorSpec: EditorSpec = createEditorSpec({\n isMetadataSupported: (metadata): metadata is PropertyRecordEditorMetadata =>\n isPropertyRecordEditorMetadata(metadata) &&\n metadata.type === \"enum\" &&\n metadata.preferredEditor === StandardEditorNames.EnumButtonGroup,\n isValueSupported: isEnum,\n Editor: EnumButtonGroupEditor,\n});\n\nfunction EnumButtonGroupEditor({\n value,\n onChange,\n commit,\n size,\n disabled,\n metadata,\n id,\n}: EditorProps<PropertyRecordEditorMetadata, EnumValue>) {\n const enumMetadata = useEnumMetadata(metadata);\n const buttonGroupParams = useButtonGroupEditorParams(metadata);\n\n const enumIcons = React.useMemo(() => {\n return buttonGroupParams\n ? createIconsMap(enumMetadata.choices, buttonGroupParams)\n : undefined;\n }, [enumMetadata, buttonGroupParams]);\n\n const firstChoice = enumMetadata.choices[0] as EnumerationChoice | undefined;\n const currentValue = value ? value : { choice: firstChoice?.value ?? \"\" };\n\n return (\n <ButtonGroup id={id} orientation=\"horizontal\">\n {enumMetadata.choices.map((choice) => {\n const icon = findIcon(enumIcons?.get(choice.value));\n return (\n <IconButton\n key={choice.value}\n onClick={() => {\n onChange({ choice: choice.value });\n commit?.();\n }}\n label={choice.label}\n isActive={choice.value === currentValue.choice}\n size={size}\n disabled={disabled}\n >\n {icon}\n </IconButton>\n );\n })}\n </ButtonGroup>\n );\n}\n\nfunction createIconsMap(\n choices: EnumerationChoice[],\n params: ButtonGroupEditorParams\n) {\n const icons = new Map<string | number, string>();\n for (let i = 0; i < choices.length; i++) {\n const iconDef = params.buttons[i];\n icons.set(choices[i].value, iconDef.iconSpec);\n }\n return icons;\n}\n\n/* v8 ignore stop */\n"]}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { EditorProps, EditorSpec } from "../../Types.js";
|
|
3
|
+
import type { PropertyRecordEditorMetadata } from "../Metadata.js";
|
|
4
|
+
import type { NumericValue } from "../../values/Values.js";
|
|
5
|
+
import type { WithConstraints } from "../../ConstraintUtils.js";
|
|
2
6
|
/** @internal */
|
|
3
7
|
export declare const NumericInputEditorSpec: EditorSpec;
|
|
8
|
+
/** @internal */
|
|
9
|
+
export declare function NumericInputEditor({ metadata, value, onChange, size, disabled, id, }: EditorProps<WithConstraints<PropertyRecordEditorMetadata>, NumericValue>): React.JSX.Element;
|
|
4
10
|
//# sourceMappingURL=NumericInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumericInput.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/NumericInput.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NumericInput.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/NumericInput.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKhE,gBAAgB;AAChB,eAAO,MAAM,sBAAsB,EAAE,UAOnC,CAAC;AAEH,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,EAAE,GACH,EAAE,WAAW,CAAC,eAAe,CAAC,4BAA4B,CAAC,EAAE,YAAY,CAAC,qBA2D1E"}
|
|
@@ -5,22 +5,37 @@
|
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { StandardEditorNames } from "@itwin/appui-abstract";
|
|
7
7
|
import { createEditorSpec } from "../../Types.js";
|
|
8
|
-
import {
|
|
8
|
+
import { isPropertyRecordEditorMetadata } from "../Metadata.js";
|
|
9
9
|
import { useInputEditorSizeParams, useRangeEditorParams, } from "./UseEditorParams.js";
|
|
10
10
|
import { Input } from "@itwin/itwinui-react";
|
|
11
11
|
import { isNumeric } from "../../values/ValueUtilities.js";
|
|
12
|
+
import { getNumericConstraints } from "../../ConstraintUtils.js";
|
|
12
13
|
/* v8 ignore start */
|
|
13
14
|
/** @internal */
|
|
14
15
|
export const NumericInputEditorSpec = createEditorSpec({
|
|
15
|
-
isMetadataSupported: (metadata) =>
|
|
16
|
+
isMetadataSupported: (metadata) => isPropertyRecordEditorMetadata(metadata) &&
|
|
16
17
|
metadata.type === "number" &&
|
|
17
18
|
metadata.preferredEditor === StandardEditorNames.NumericInput,
|
|
18
19
|
isValueSupported: isNumeric,
|
|
19
20
|
Editor: NumericInputEditor,
|
|
20
21
|
});
|
|
21
|
-
|
|
22
|
+
/** @internal */
|
|
23
|
+
export function NumericInputEditor({ metadata, value, onChange, size, disabled, id, }) {
|
|
22
24
|
const sizeParams = useInputEditorSizeParams(metadata);
|
|
23
25
|
const rangeParams = useRangeEditorParams(metadata);
|
|
26
|
+
const { min: constraintMin, max: constraintMax } = getNumericConstraints(metadata.constraints);
|
|
27
|
+
// Larger minimum value takes precedence
|
|
28
|
+
const effectiveMin = rangeParams?.minimum !== undefined
|
|
29
|
+
? constraintMin !== undefined
|
|
30
|
+
? Math.max(rangeParams.minimum, constraintMin)
|
|
31
|
+
: rangeParams.minimum
|
|
32
|
+
: constraintMin;
|
|
33
|
+
// Smaller maximum value takes precedence
|
|
34
|
+
const effectiveMax = rangeParams?.maximum !== undefined
|
|
35
|
+
? constraintMax !== undefined
|
|
36
|
+
? Math.min(rangeParams.maximum, constraintMax)
|
|
37
|
+
: rangeParams.maximum
|
|
38
|
+
: constraintMax;
|
|
24
39
|
const handleChange = (newValue) => {
|
|
25
40
|
onChange({
|
|
26
41
|
displayValue: newValue,
|
|
@@ -36,15 +51,15 @@ function NumericInputEditor({ metadata, value, onChange, size, disabled, }) {
|
|
|
36
51
|
}
|
|
37
52
|
: undefined;
|
|
38
53
|
const inputProps = useNumericInput({
|
|
39
|
-
min:
|
|
40
|
-
max:
|
|
54
|
+
min: effectiveMin,
|
|
55
|
+
max: effectiveMax,
|
|
41
56
|
precision: rangeParams?.precision,
|
|
42
57
|
step: rangeParams?.step,
|
|
43
58
|
maxLength: sizeParams?.maxLength,
|
|
44
59
|
onChange: handleChange,
|
|
45
60
|
value: value?.displayValue ?? "",
|
|
46
61
|
});
|
|
47
|
-
return (React.createElement(Input, { style: style, size: size, disabled: disabled, ...inputProps }));
|
|
62
|
+
return (React.createElement(Input, { id: id, style: style, size: size, disabled: disabled, ...inputProps }));
|
|
48
63
|
}
|
|
49
64
|
function useNumericInput({ min, max, step, precision, maxLength, value, onChange, }) {
|
|
50
65
|
const formatValue = (val) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumericInput.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/NumericInput.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"NumericInput.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/NumericInput.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport { StandardEditorNames } from \"@itwin/appui-abstract\";\nimport type { EditorProps, EditorSpec } from \"../../Types.js\";\nimport { createEditorSpec } from \"../../Types.js\";\nimport type { PropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { isPropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport type { NumericValue } from \"../../values/Values.js\";\nimport {\n useInputEditorSizeParams,\n useRangeEditorParams,\n} from \"./UseEditorParams.js\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { isNumeric } from \"../../values/ValueUtilities.js\";\nimport type { WithConstraints } from \"../../ConstraintUtils.js\";\nimport { getNumericConstraints } from \"../../ConstraintUtils.js\";\n\n/* v8 ignore start */\n\n/** @internal */\nexport const NumericInputEditorSpec: EditorSpec = createEditorSpec({\n isMetadataSupported: (metadata): metadata is PropertyRecordEditorMetadata =>\n isPropertyRecordEditorMetadata(metadata) &&\n metadata.type === \"number\" &&\n metadata.preferredEditor === StandardEditorNames.NumericInput,\n isValueSupported: isNumeric,\n Editor: NumericInputEditor,\n});\n\n/** @internal */\nexport function NumericInputEditor({\n metadata,\n value,\n onChange,\n size,\n disabled,\n id,\n}: EditorProps<WithConstraints<PropertyRecordEditorMetadata>, NumericValue>) {\n const sizeParams = useInputEditorSizeParams(metadata);\n const rangeParams = useRangeEditorParams(metadata);\n const { min: constraintMin, max: constraintMax } = getNumericConstraints(\n metadata.constraints\n );\n\n // Larger minimum value takes precedence\n const effectiveMin =\n rangeParams?.minimum !== undefined\n ? constraintMin !== undefined\n ? Math.max(rangeParams.minimum, constraintMin)\n : rangeParams.minimum\n : constraintMin;\n // Smaller maximum value takes precedence\n const effectiveMax =\n rangeParams?.maximum !== undefined\n ? constraintMax !== undefined\n ? Math.min(rangeParams.maximum, constraintMax)\n : rangeParams.maximum\n : constraintMax;\n\n const handleChange = (newValue: string) => {\n onChange({\n displayValue: newValue,\n rawValue: parseFloat(newValue),\n });\n };\n\n const style: React.CSSProperties | undefined =\n sizeParams?.size !== undefined\n ? {\n minWidth: `${sizeParams?.size * 0.75}em`,\n maxWidth:\n sizeParams?.maxSize !== undefined\n ? `${sizeParams?.maxSize * 0.75}em`\n : undefined,\n }\n : undefined;\n\n const inputProps = useNumericInput({\n min: effectiveMin,\n max: effectiveMax,\n precision: rangeParams?.precision,\n step: rangeParams?.step,\n maxLength: sizeParams?.maxLength,\n onChange: handleChange,\n value: value?.displayValue ?? \"\",\n });\n\n return (\n <Input\n id={id}\n style={style}\n size={size}\n disabled={disabled}\n {...inputProps}\n />\n );\n}\n\ninterface UseNumericInputProps {\n min?: number;\n max?: number;\n step?: number;\n precision?: number;\n maxLength?: number;\n value: string;\n onChange: (newValue: string) => void;\n}\n\nfunction useNumericInput({\n min,\n max,\n step,\n precision,\n maxLength,\n value,\n onChange,\n}: UseNumericInputProps) {\n const formatValue = (val: number) => {\n const appliedMin = min ?? Number.MIN_VALUE;\n const appliedMax = max ?? Number.MAX_VALUE;\n const valueInRange = Math.min(appliedMax, Math.max(appliedMin, val));\n\n return precision\n ? valueInRange.toFixed(precision)\n : valueInRange.toString();\n };\n\n const [formattedValue, setFormattedValue] = React.useState(() => {\n return value.length !== 0 ? formatValue(Number(value)) : value;\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = event.target.value;\n if (maxLength && currentValue.length > maxLength) {\n return;\n }\n setFormattedValue(currentValue);\n onChange(currentValue);\n };\n\n const handleBlur = () => {\n if (precision) {\n const newFormattedValue = formatValue(Number(formattedValue));\n if (newFormattedValue !== formattedValue) {\n setFormattedValue(newFormattedValue);\n onChange(newFormattedValue);\n }\n }\n };\n\n return {\n type: \"number\",\n min,\n max,\n step,\n value: formattedValue,\n onChange: handleChange,\n onBlur: handleBlur,\n };\n}\n\n/* v8 ignore stop */\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { createEditorSpec } from "../../Types.js";
|
|
7
|
-
import {
|
|
7
|
+
import { isPropertyRecordEditorMetadata } from "../Metadata.js";
|
|
8
8
|
import { PropertyEditorParamTypes, StandardEditorNames, } from "@itwin/appui-abstract";
|
|
9
9
|
import { Button, Icon, Popover, Slider } from "@itwin/itwinui-react";
|
|
10
10
|
import { useSliderEditorParams } from "./UseEditorParams.js";
|
|
@@ -13,14 +13,14 @@ import { isNumeric } from "../../values/ValueUtilities.js";
|
|
|
13
13
|
/* v8 ignore start */
|
|
14
14
|
/** @internal */
|
|
15
15
|
export const SliderEditorSpec = createEditorSpec({
|
|
16
|
-
isMetadataSupported: (metadata) =>
|
|
16
|
+
isMetadataSupported: (metadata) => isPropertyRecordEditorMetadata(metadata) &&
|
|
17
17
|
metadata.type === "number" &&
|
|
18
18
|
!!metadata.params?.find((param) => param.type === PropertyEditorParamTypes.Slider.valueOf()) &&
|
|
19
19
|
metadata.preferredEditor === StandardEditorNames.Slider,
|
|
20
20
|
isValueSupported: isNumeric,
|
|
21
21
|
Editor: SliderEditor,
|
|
22
22
|
});
|
|
23
|
-
function SliderEditor({ metadata, value, disabled, onChange, commit, size, }) {
|
|
23
|
+
function SliderEditor({ metadata, value, disabled, onChange, commit, size, id, }) {
|
|
24
24
|
const sliderParams = useSliderEditorParams(metadata);
|
|
25
25
|
if (!sliderParams) {
|
|
26
26
|
return null;
|
|
@@ -44,7 +44,7 @@ function SliderEditor({ metadata, value, disabled, onChange, commit, size, }) {
|
|
|
44
44
|
commit?.();
|
|
45
45
|
}
|
|
46
46
|
}, applyBackground: true },
|
|
47
|
-
React.createElement(Button, { style: { width: "100%" }, size: size, disabled: disabled }, currentValue)));
|
|
47
|
+
React.createElement(Button, { id: id, style: { width: "100%" }, size: size, disabled: disabled }, currentValue)));
|
|
48
48
|
}
|
|
49
49
|
function getTickLabels(sliderParams) {
|
|
50
50
|
if (!sliderParams.showTicks || !sliderParams.showTickLabels) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/Slider.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/Slider.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,qBAAqB;AAErB,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;IAC/C,mBAAmB,EAAE,CAAC,QAAQ,EAA4C,EAAE,CAC1E,8BAA8B,CAAC,QAAQ,CAAC;QACxC,QAAQ,CAAC,IAAI,KAAK,QAAQ;QAC1B,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,CACpE;QACD,QAAQ,CAAC,eAAe,KAAK,mBAAmB,CAAC,MAAM;IACzD,gBAAgB,EAAE,SAAS;IAC3B,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,EACpB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,EAAE,GACsD;IACxD,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GACZ,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CACpD,oBAAC,IAAI,QAAE,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAQ,CAClD,CAAC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GACZ,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CACpD,oBAAC,IAAI,QAAE,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAQ,CAClD,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,YAAY,GAAG,CAAC,MAA6B,EAAQ,EAAE;QAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC;IAC7D,MAAM,MAAM,GAAG,CACb,oBAAC,MAAM,IACL,MAAM,EAAE,CAAC,YAAY,CAAC,EACtB,GAAG,EAAE,YAAY,CAAC,OAAO,EACzB,GAAG,EAAE,YAAY,CAAC,OAAO,EACzB,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,SAAS,EACP,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,EAEjE,gBAAgB,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,EAClE,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;YACrC,OAAO;gBACL,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;gBACvD,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC;gBACpD,OAAO,EAAE,YAAY,CAAC,WAAW;aAClC,CAAC;QACJ,CAAC,EACD,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,EACvC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;IACF,OAAO,CACL,oBAAC,OAAO,IACN,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAC5C,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,EAAE,EAAE,CAAC;YACb,CAAC;QACH,CAAC,EACD,eAAe,EAAE,IAAI;QAErB,oBAAC,MAAM,IAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IACrE,YAAY,CACN,CACD,CACX,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,YAAgC;IACrD,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACxE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAChD,eAAe,CAAC,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,YAAY;SAChB,aAAa,EAAE,EAAE;SACjB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,MAA0B;IAChE,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;AACzE,CAAC;AAED,oBAAoB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport type { EditorProps } from \"../../Types.js\";\nimport { createEditorSpec } from \"../../Types.js\";\nimport type { PropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { isPropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport type { NumericValue } from \"../../values/Values.js\";\nimport type { SliderEditorParams } from \"@itwin/appui-abstract\";\nimport {\n PropertyEditorParamTypes,\n StandardEditorNames,\n} from \"@itwin/appui-abstract\";\nimport { Button, Icon, Popover, Slider } from \"@itwin/itwinui-react\";\nimport { useSliderEditorParams } from \"./UseEditorParams.js\";\nimport { findIcon } from \"../IconsRegistry.js\";\nimport { isNumeric } from \"../../values/ValueUtilities.js\";\n\n/* v8 ignore start */\n\n/** @internal */\nexport const SliderEditorSpec = createEditorSpec({\n isMetadataSupported: (metadata): metadata is PropertyRecordEditorMetadata =>\n isPropertyRecordEditorMetadata(metadata) &&\n metadata.type === \"number\" &&\n !!metadata.params?.find(\n (param) => param.type === PropertyEditorParamTypes.Slider.valueOf()\n ) &&\n metadata.preferredEditor === StandardEditorNames.Slider,\n isValueSupported: isNumeric,\n Editor: SliderEditor,\n});\n\nfunction SliderEditor({\n metadata,\n value,\n disabled,\n onChange,\n commit,\n size,\n id,\n}: EditorProps<PropertyRecordEditorMetadata, NumericValue>) {\n const sliderParams = useSliderEditorParams(metadata);\n if (!sliderParams) {\n return null;\n }\n\n const minLabel =\n sliderParams.showMinMax && sliderParams.minIconSpec ? (\n <Icon>{findIcon(sliderParams.minIconSpec)}</Icon>\n ) : undefined;\n const maxLabel =\n sliderParams.showMinMax && sliderParams.maxIconSpec ? (\n <Icon>{findIcon(sliderParams.maxIconSpec)}</Icon>\n ) : undefined;\n\n const handleChange = (values: ReadonlyArray<number>): void => {\n const newValue = values[0];\n onChange({ rawValue: newValue, displayValue: `${newValue}` });\n };\n\n const currentValue = value?.rawValue ?? sliderParams.minimum;\n const slider = (\n <Slider\n values={[currentValue]}\n min={sliderParams.minimum}\n max={sliderParams.maximum}\n step={sliderParams.step}\n thumbMode={\n 1 === sliderParams.mode ? \"allow-crossing\" : \"inhibit-crossing\"\n }\n trackDisplayMode={!sliderParams.reversed ? \"auto\" : \"odd-segments\"}\n minLabel={minLabel}\n maxLabel={maxLabel}\n tooltipProps={(_index, tooltipValue) => {\n return {\n placement: sliderParams.tooltipBelow ? \"bottom\" : \"top\",\n content: formatTickLabel(tooltipValue, sliderParams),\n visible: sliderParams.showTooltip,\n };\n }}\n tickLabels={getTickLabels(sliderParams)}\n onChange={handleChange}\n disabled={disabled}\n />\n );\n return (\n <Popover\n placement=\"bottom\"\n style={{ minWidth: \"300px\", padding: \"8px\" }}\n content={slider}\n onVisibleChange={(visible) => {\n if (!visible) {\n commit?.();\n }\n }}\n applyBackground={true}\n >\n <Button id={id} style={{ width: \"100%\" }} size={size} disabled={disabled}>\n {currentValue}\n </Button>\n </Popover>\n );\n}\n\nfunction getTickLabels(sliderParams: SliderEditorParams) {\n if (!sliderParams.showTicks || !sliderParams.showTickLabels) {\n return undefined;\n }\n const count = sliderParams.getTickCount ? sliderParams.getTickCount() : 0;\n if (count > 0) {\n const increment = (sliderParams.maximum - sliderParams.minimum) / count;\n return Array.from({ length: count + 1 }, (_, i) =>\n formatTickLabel(i * increment + sliderParams.minimum, sliderParams)\n );\n }\n return sliderParams\n .getTickValues?.()\n .map((val) => formatTickLabel(val, sliderParams));\n}\n\nfunction formatTickLabel(value: number, params: SliderEditorParams) {\n return params.formatTooltip ? params.formatTooltip(value) : `${value}`;\n}\n\n/* v8 ignore stop */\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/TextArea.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/TextArea.tsx"],"names":[],"mappings":"AAgBA,gBAAgB;AAChB,eAAO,MAAM,mBAAmB,qCAO9B,CAAC"}
|
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { Button, Popover, Textarea } from "@itwin/itwinui-react";
|
|
7
7
|
import { createEditorSpec } from "../../Types.js";
|
|
8
|
-
import {
|
|
8
|
+
import { isPropertyRecordEditorMetadata } from "../Metadata.js";
|
|
9
9
|
import { StandardEditorNames } from "@itwin/appui-abstract";
|
|
10
10
|
import { isText } from "../../values/ValueUtilities.js";
|
|
11
11
|
/* v8 ignore start */
|
|
12
12
|
/** @internal */
|
|
13
13
|
export const MultilineEditorSpec = createEditorSpec({
|
|
14
|
-
isMetadataSupported: (metadata) =>
|
|
14
|
+
isMetadataSupported: (metadata) => isPropertyRecordEditorMetadata(metadata) &&
|
|
15
15
|
metadata.type === "string" &&
|
|
16
16
|
metadata.preferredEditor === StandardEditorNames.MultiLine,
|
|
17
17
|
isValueSupported: isText,
|
|
18
18
|
Editor: TextAreaEditor,
|
|
19
19
|
});
|
|
20
|
-
function TextAreaEditor({ value, onChange, commit, size, disabled, }) {
|
|
20
|
+
function TextAreaEditor({ value, onChange, commit, size, disabled, id, }) {
|
|
21
21
|
const currentValue = value ?? { value: "" };
|
|
22
22
|
return (React.createElement(Popover, { placement: "bottom", content: React.createElement(Textarea, { value: currentValue.value, onChange: (e) => {
|
|
23
23
|
const newValue = e.currentTarget.value;
|
|
@@ -27,7 +27,7 @@ function TextAreaEditor({ value, onChange, commit, size, disabled, }) {
|
|
|
27
27
|
commit?.();
|
|
28
28
|
}
|
|
29
29
|
} },
|
|
30
|
-
React.createElement(Button, { style: { width: "100%" }, size: size, disabled: disabled }, currentValue.value)));
|
|
30
|
+
React.createElement(Button, { id: id, style: { width: "100%" }, size: size, disabled: disabled }, currentValue.value)));
|
|
31
31
|
}
|
|
32
32
|
/* v8 ignore stop */
|
|
33
33
|
//# sourceMappingURL=TextArea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/TextArea.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../../../../../src/components-react/new-editors/interop/old-editors/TextArea.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,qBAAqB;AAErB,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;IAClD,mBAAmB,EAAE,CAAC,QAAQ,EAA4C,EAAE,CAC1E,8BAA8B,CAAC,QAAQ,CAAC;QACxC,QAAQ,CAAC,IAAI,KAAK,QAAQ;QAC1B,QAAQ,CAAC,eAAe,KAAK,mBAAmB,CAAC,SAAS;IAC5D,gBAAgB,EAAE,MAAM;IACxB,MAAM,EAAE,cAAc;CACvB,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,EAAE,GACmD;IACrD,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE5C,OAAO,CACL,oBAAC,OAAO,IACN,SAAS,EAAC,QAAQ,EAClB,OAAO,EACL,oBAAC,QAAQ,IACP,KAAK,EAAE,YAAY,CAAC,KAAK,EACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;gBACvC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChC,CAAC,GACD,EAEJ,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,EAAE,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAED,oBAAC,MAAM,IAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IACrE,YAAY,CAAC,KAAK,CACZ,CACD,CACX,CAAC;AACJ,CAAC;AAED,oBAAoB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport { Button, Popover, Textarea } from \"@itwin/itwinui-react\";\nimport { createEditorSpec, type EditorProps } from \"../../Types.js\";\nimport type { PropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { isPropertyRecordEditorMetadata } from \"../Metadata.js\";\nimport { type TextValue } from \"../../values/Values.js\";\nimport { StandardEditorNames } from \"@itwin/appui-abstract\";\nimport { isText } from \"../../values/ValueUtilities.js\";\n\n/* v8 ignore start */\n\n/** @internal */\nexport const MultilineEditorSpec = createEditorSpec({\n isMetadataSupported: (metadata): metadata is PropertyRecordEditorMetadata =>\n isPropertyRecordEditorMetadata(metadata) &&\n metadata.type === \"string\" &&\n metadata.preferredEditor === StandardEditorNames.MultiLine,\n isValueSupported: isText,\n Editor: TextAreaEditor,\n});\n\nfunction TextAreaEditor({\n value,\n onChange,\n commit,\n size,\n disabled,\n id,\n}: EditorProps<PropertyRecordEditorMetadata, TextValue>) {\n const currentValue = value ?? { value: \"\" };\n\n return (\n <Popover\n placement=\"bottom\"\n content={\n <Textarea\n value={currentValue.value}\n onChange={(e) => {\n const newValue = e.currentTarget.value;\n onChange({ value: newValue });\n }}\n />\n }\n onVisibleChange={(visible) => {\n if (!visible) {\n commit?.();\n }\n }}\n >\n <Button id={id} style={{ width: \"100%\" }} size={size} disabled={disabled}>\n {currentValue.value}\n </Button>\n </Popover>\n );\n}\n\n/* v8 ignore stop */\n"]}
|