@itwin/components-react 4.1.0-dev.1 → 4.1.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 +9 -1
- package/lib/cjs/components-react/UiComponents.js.map +1 -1
- package/lib/cjs/components-react/_target.scss +9 -9
- package/lib/cjs/components-react/common/DateUtils.js.map +1 -1
- package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
- package/lib/cjs/components-react/common/HighlightingComponentProps.js.map +1 -1
- package/lib/cjs/components-react/common/IImageLoader.js.map +1 -1
- package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/cjs/components-react/common/Links.js.map +1 -1
- package/lib/cjs/components-react/common/PageOptions.js.map +1 -1
- package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/cjs/components-react/common/UseAsyncValue.js.map +1 -1
- package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
- package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/cjs/components-react/common/UseRerender.js.map +1 -1
- package/lib/cjs/components-react/common/countMatchesInString.js.map +1 -1
- package/lib/cjs/components-react/common/selection/SelectionHandler.js.map +1 -1
- package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
- package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.scss +22 -22
- package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePicker.scss +176 -176
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +57 -57
- package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.scss +76 -76
- package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/BooleanEditor.scss +22 -22
- package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/CustomNumberEditor.scss +20 -20
- package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/DateTimeEditor.scss +9 -9
- package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/cjs/components-react/editors/EditorContainer.scss +6 -6
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +141 -141
- package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumEditor.scss +22 -22
- package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/IconEditor.scss +16 -16
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +24 -24
- package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/NumericInputEditor.scss +16 -16
- package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
- package/lib/cjs/components-react/editors/PopupButton.scss +116 -116
- package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.scss +13 -13
- package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextEditor.scss +20 -20
- package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextareaEditor.scss +14 -14
- package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ToggleEditor.scss +23 -23
- package/lib/cjs/components-react/editors/variables.scss +7 -7
- package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +38 -38
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.scss +58 -58
- package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/cjs/components-react/filtering/ResultSelector.scss +68 -68
- package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +75 -75
- package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/cjs/components-react/inputs/ParsedInput.scss +23 -23
- package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.scss +25 -25
- package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
- package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.scss +111 -111
- package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
- package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +73 -73
- package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.scss +20 -20
- package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Item.scss +91 -91
- package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/cjs/components-react/toolbar/ItemWrapper.scss +10 -10
- package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Items.scss +96 -96
- package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Overflow.scss +57 -57
- package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/OverflowPanel.scss +37 -37
- package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItem.scss +88 -88
- package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.scss +18 -18
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/_variables.scss +34 -34
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
- package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Column.scss +9 -9
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.scss +10 -10
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +15 -15
- package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Title.scss +33 -33
- package/lib/cjs/components-react/toolbar/groupPanel/_variables.scss +16 -16
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
- package/lib/cjs/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
- package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
- package/lib/cjs/components-react/toolbar/utilities/Direction.js.map +1 -1
- package/lib/cjs/components-react/tree/HighlightingEngine.js.map +1 -1
- package/lib/cjs/components-react/tree/HighlightingEngine.scss +7 -7
- package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeComponentTestId.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.scss +102 -102
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +27 -27
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/cjs/components-react.js.map +1 -1
- package/lib/esm/components-react/UiComponents.js.map +1 -1
- package/lib/esm/components-react/_target.scss +9 -9
- package/lib/esm/components-react/common/DateUtils.js.map +1 -1
- package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
- package/lib/esm/components-react/common/HighlightingComponentProps.js.map +1 -1
- package/lib/esm/components-react/common/IImageLoader.js.map +1 -1
- package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/esm/components-react/common/Links.js.map +1 -1
- package/lib/esm/components-react/common/PageOptions.js.map +1 -1
- package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/esm/components-react/common/UseAsyncValue.js.map +1 -1
- package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
- package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/esm/components-react/common/UseRerender.js.map +1 -1
- package/lib/esm/components-react/common/countMatchesInString.js.map +1 -1
- package/lib/esm/components-react/common/selection/SelectionHandler.js.map +1 -1
- package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
- package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.scss +22 -22
- package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
- package/lib/esm/components-react/datepicker/DatePicker.scss +176 -176
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +57 -57
- package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.scss +76 -76
- package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/esm/components-react/editors/BooleanEditor.scss +22 -22
- package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/esm/components-react/editors/CustomNumberEditor.scss +20 -20
- package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/esm/components-react/editors/DateTimeEditor.scss +9 -9
- package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/esm/components-react/editors/EditorContainer.scss +6 -6
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +141 -141
- package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EnumEditor.scss +22 -22
- package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
- package/lib/esm/components-react/editors/IconEditor.scss +16 -16
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +24 -24
- package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/esm/components-react/editors/NumericInputEditor.scss +16 -16
- package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
- package/lib/esm/components-react/editors/PopupButton.scss +116 -116
- package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.scss +13 -13
- package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextEditor.scss +20 -20
- package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextareaEditor.scss +14 -14
- package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ToggleEditor.scss +23 -23
- package/lib/esm/components-react/editors/variables.scss +7 -7
- package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +38 -38
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.scss +58 -58
- package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/esm/components-react/filtering/ResultSelector.scss +68 -68
- package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/esm/components-react/iconpicker/IconPickerButton.scss +75 -75
- package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/esm/components-react/inputs/ParsedInput.scss +23 -23
- package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.scss +25 -25
- package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
- package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.scss +111 -111
- package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
- package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +73 -73
- package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.scss +20 -20
- package/lib/esm/components-react/toolbar/Item.js.map +1 -1
- package/lib/esm/components-react/toolbar/Item.scss +91 -91
- package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/esm/components-react/toolbar/ItemWrapper.scss +10 -10
- package/lib/esm/components-react/toolbar/Items.js.map +1 -1
- package/lib/esm/components-react/toolbar/Items.scss +96 -96
- package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/Overflow.scss +57 -57
- package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/OverflowPanel.scss +37 -37
- package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItem.scss +88 -88
- package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.scss +18 -18
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/_variables.scss +34 -34
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
- package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Column.scss +9 -9
- package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Columns.scss +10 -10
- package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +15 -15
- package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Title.scss +33 -33
- package/lib/esm/components-react/toolbar/groupPanel/_variables.scss +16 -16
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
- package/lib/esm/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
- package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
- package/lib/esm/components-react/toolbar/utilities/Direction.js.map +1 -1
- package/lib/esm/components-react/tree/HighlightingEngine.js.map +1 -1
- package/lib/esm/components-react/tree/HighlightingEngine.scss +7 -7
- package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/TreeComponentTestId.js.map +1 -1
- package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.scss +102 -102
- package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +27 -27
- package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/esm/components-react.js.map +1 -1
- package/lib/public/locales/en/UiComponents.json +139 -139
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/DateTimeTypeConverter.ts"],"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/** @packageDocumentation\n * @module TypeConverters\n */\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport type { Primitives} from \"@itwin/appui-abstract\";\nimport { AlternateDateFormats, StandardTypeNames, TimeDisplay } from \"@itwin/appui-abstract\";\nimport { TimeFormat } from \"@itwin/core-react\";\nimport { formatInputDate } from \"../datepicker/DateField\";\nimport { adjustDateToTimezone } from \"../common/DateUtils\";\nimport { UiComponents } from \"../UiComponents\";\nimport type { LessGreaterOperatorProcessor} from \"./TypeConverter\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\nimport type { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\n\n// cSpell:ignore datepicker valuetypes\n\n/**\n * DateTime Type Converter.\n * @public\n */\nexport abstract class DateTimeTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\n public override convertToString(value?: Primitives.Value) {\n if (value === undefined)\n return \"\";\n\n if (typeof value === \"string\")\n value = new Date(value);\n\n // istanbul ignore else\n if (value instanceof Date) {\n switch (this.getTimeFormat()) {\n case TimeFormat.Short: return value.toLocaleDateString();\n case TimeFormat.Long: return value.toLocaleString();\n }\n return value.toISOString();\n }\n\n // istanbul ignore next\n return value.toString();\n }\n\n public static isValidTimeDisplay(type: TimeDisplay): boolean {\n return Object.keys(TimeDisplay).some((key) => (TimeDisplay as any)[key] === type);\n }\n\n public static isAlternateDateFormats(type: AlternateDateFormats): boolean {\n return Object.keys(AlternateDateFormats).some((key) => (AlternateDateFormats as any)[key] === type);\n }\n\n // supported options:\n // timeDisplay?: TimeDisplay\n // alternateDateFormat?: AlternateDateFormats\n public override convertToStringWithOptions(value?: Primitives.Value, options?: { [key: string]: any }): string | Promise<string> {\n if (value === undefined)\n return \"\";\n\n if (options) {\n let timeDisplay: TimeDisplay | undefined = (this.getTimeFormat() === TimeFormat.Long) ? TimeDisplay.H12MC : undefined;\n let alternateDateFormat = AlternateDateFormats.None;\n\n // istanbul ignore else\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\n alternateDateFormat = options.alternateDateFormat;\n }\n\n if (this.getTimeFormat() === TimeFormat.Long) {\n // istanbul ignore else\n if (\"timeDisplay\" in options) {\n // istanbul ignore if\n if (alternateDateFormat) {\n Logger.logInfo(UiComponents.loggerCategory(this), `Invalid specification of timeDisplay with alternateDateFormat specification`);\n } else {\n // istanbul ignore else\n if (DateTimeTypeConverterBase.isValidTimeDisplay(options.timeDisplay))\n timeDisplay = options.timeDisplay;\n }\n }\n }\n\n // istanbul ignore else\n if (typeof value === \"string\") {\n value = new Date(value); // this value will be based on local time zone\n // istanbul ignore else\n if (value instanceof Date && alternateDateFormat) {\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\n value = adjustDateToTimezone(value, value.getTimezoneOffset() * -1);\n }\n }\n\n // istanbul ignore else\n if (value instanceof Date) {\n // Ensure if alternateDateFormat is specified make sure it matches proper Long/Short format.\n if (this.getTimeFormat() === TimeFormat.Long) {\n if (alternateDateFormat === AlternateDateFormats.IsoShort)\n alternateDateFormat = AlternateDateFormats.IsoDateTime;\n if (alternateDateFormat === AlternateDateFormats.UtcShort)\n alternateDateFormat = AlternateDateFormats.UtcDateTime;\n if (alternateDateFormat === AlternateDateFormats.UtcShortWithDay)\n alternateDateFormat = AlternateDateFormats.UtcDateTimeWithDay;\n } else {\n // short time format\n if (alternateDateFormat === AlternateDateFormats.IsoDateTime)\n alternateDateFormat = AlternateDateFormats.IsoShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTime)\n alternateDateFormat = AlternateDateFormats.UtcShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTimeWithDay)\n alternateDateFormat = AlternateDateFormats.UtcShortWithDay;\n }\n\n const formattedDateTime = formatInputDate(value, timeDisplay, undefined, alternateDateFormat);\n // istanbul ignore else\n if (formattedDateTime)\n return formattedDateTime;\n }\n }\n\n return this.convertToString(value);\n }\n\n /** Default implementation just calls convertFromString with no options */\n public override convertFromStringWithOptions(value: string, options?: { [key: string]: any }): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\n if (!value)\n return undefined;\n\n if (options) {\n let alternateDateFormat = AlternateDateFormats.None;\n\n // istanbul ignore else\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\n alternateDateFormat = options.alternateDateFormat;\n }\n\n // istanbul ignore else\n let date = new Date(value); // this value will be based on local time zone\n // istanbul ignore else\n if (date instanceof Date && alternateDateFormat) {\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\n date = adjustDateToTimezone(date, date.getTimezoneOffset() * -1);\n }\n }\n\n return this.convertFromString(value);\n }\n\n private isDateValid(date: Date) {\n return date instanceof Date && !isNaN(+date);\n }\n\n public override convertFromString(value: string) {\n if (!value)\n return undefined;\n\n const dateValue = new Date(value);\n\n if (!this.isDateValid(dateValue))\n return undefined;\n\n return dateValue;\n }\n\n protected abstract getTimeFormat(): TimeFormat;\n\n public override get isLessGreaterType(): boolean { return true; }\n\n public sortCompare(valueA: Date, valueB: Date, _ignoreCase?: boolean): number {\n return valueA.valueOf() - valueB.valueOf();\n }\n\n public override isEqualTo(valueA: Date, valueB: Date): boolean {\n return valueA.valueOf() === valueB.valueOf();\n }\n\n public override isNotEqualTo(valueA: Date, valueB: Date): boolean {\n return valueA.valueOf() !== valueB.valueOf();\n }\n\n public isLessThan(a: Date, b: Date): boolean {\n return a.valueOf() < b.valueOf();\n }\n\n public isLessThanOrEqualTo(a: Date, b: Date): boolean {\n return a.valueOf() <= b.valueOf();\n }\n\n public isGreaterThan(a: Date, b: Date): boolean {\n return a.valueOf() > b.valueOf();\n }\n\n public isGreaterThanOrEqualTo(a: Date, b: Date): boolean {\n return a.valueOf() >= b.valueOf();\n }\n}\n\n/**\n * Short Date Type Converter.\n * @public\n */\nexport class ShortDateTypeConverter extends DateTimeTypeConverterBase {\n protected getTimeFormat(): TimeFormat { return TimeFormat.Short; }\n}\nTypeConverterManager.registerConverter(StandardTypeNames.ShortDate, ShortDateTypeConverter);\n\n/**\n * Date Time Type Converter.\n * @public\n */\nexport class DateTimeTypeConverter extends DateTimeTypeConverterBase {\n protected getTimeFormat(): TimeFormat { return TimeFormat.Long; }\n}\nTypeConverterManager.registerConverter(StandardTypeNames.DateTime, DateTimeTypeConverter);\n"]}
|
|
1
|
+
{"version":3,"file":"DateTimeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/DateTimeTypeConverter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport type { Primitives} from \"@itwin/appui-abstract\";\r\nimport { AlternateDateFormats, StandardTypeNames, TimeDisplay } from \"@itwin/appui-abstract\";\r\nimport { TimeFormat } from \"@itwin/core-react\";\r\nimport { formatInputDate } from \"../datepicker/DateField\";\r\nimport { adjustDateToTimezone } from \"../common/DateUtils\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport type { LessGreaterOperatorProcessor} from \"./TypeConverter\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\nimport type { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\r\n\r\n// cSpell:ignore datepicker valuetypes\r\n\r\n/**\r\n * DateTime Type Converter.\r\n * @public\r\n */\r\nexport abstract class DateTimeTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\r\n public override convertToString(value?: Primitives.Value) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n if (typeof value === \"string\")\r\n value = new Date(value);\r\n\r\n // istanbul ignore else\r\n if (value instanceof Date) {\r\n switch (this.getTimeFormat()) {\r\n case TimeFormat.Short: return value.toLocaleDateString();\r\n case TimeFormat.Long: return value.toLocaleString();\r\n }\r\n return value.toISOString();\r\n }\r\n\r\n // istanbul ignore next\r\n return value.toString();\r\n }\r\n\r\n public static isValidTimeDisplay(type: TimeDisplay): boolean {\r\n return Object.keys(TimeDisplay).some((key) => (TimeDisplay as any)[key] === type);\r\n }\r\n\r\n public static isAlternateDateFormats(type: AlternateDateFormats): boolean {\r\n return Object.keys(AlternateDateFormats).some((key) => (AlternateDateFormats as any)[key] === type);\r\n }\r\n\r\n // supported options:\r\n // timeDisplay?: TimeDisplay\r\n // alternateDateFormat?: AlternateDateFormats\r\n public override convertToStringWithOptions(value?: Primitives.Value, options?: { [key: string]: any }): string | Promise<string> {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n if (options) {\r\n let timeDisplay: TimeDisplay | undefined = (this.getTimeFormat() === TimeFormat.Long) ? TimeDisplay.H12MC : undefined;\r\n let alternateDateFormat = AlternateDateFormats.None;\r\n\r\n // istanbul ignore else\r\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\r\n alternateDateFormat = options.alternateDateFormat;\r\n }\r\n\r\n if (this.getTimeFormat() === TimeFormat.Long) {\r\n // istanbul ignore else\r\n if (\"timeDisplay\" in options) {\r\n // istanbul ignore if\r\n if (alternateDateFormat) {\r\n Logger.logInfo(UiComponents.loggerCategory(this), `Invalid specification of timeDisplay with alternateDateFormat specification`);\r\n } else {\r\n // istanbul ignore else\r\n if (DateTimeTypeConverterBase.isValidTimeDisplay(options.timeDisplay))\r\n timeDisplay = options.timeDisplay;\r\n }\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (typeof value === \"string\") {\r\n value = new Date(value); // this value will be based on local time zone\r\n // istanbul ignore else\r\n if (value instanceof Date && alternateDateFormat) {\r\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\r\n value = adjustDateToTimezone(value, value.getTimezoneOffset() * -1);\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (value instanceof Date) {\r\n // Ensure if alternateDateFormat is specified make sure it matches proper Long/Short format.\r\n if (this.getTimeFormat() === TimeFormat.Long) {\r\n if (alternateDateFormat === AlternateDateFormats.IsoShort)\r\n alternateDateFormat = AlternateDateFormats.IsoDateTime;\r\n if (alternateDateFormat === AlternateDateFormats.UtcShort)\r\n alternateDateFormat = AlternateDateFormats.UtcDateTime;\r\n if (alternateDateFormat === AlternateDateFormats.UtcShortWithDay)\r\n alternateDateFormat = AlternateDateFormats.UtcDateTimeWithDay;\r\n } else {\r\n // short time format\r\n if (alternateDateFormat === AlternateDateFormats.IsoDateTime)\r\n alternateDateFormat = AlternateDateFormats.IsoShort;\r\n if (alternateDateFormat === AlternateDateFormats.UtcDateTime)\r\n alternateDateFormat = AlternateDateFormats.UtcShort;\r\n if (alternateDateFormat === AlternateDateFormats.UtcDateTimeWithDay)\r\n alternateDateFormat = AlternateDateFormats.UtcShortWithDay;\r\n }\r\n\r\n const formattedDateTime = formatInputDate(value, timeDisplay, undefined, alternateDateFormat);\r\n // istanbul ignore else\r\n if (formattedDateTime)\r\n return formattedDateTime;\r\n }\r\n }\r\n\r\n return this.convertToString(value);\r\n }\r\n\r\n /** Default implementation just calls convertFromString with no options */\r\n public override convertFromStringWithOptions(value: string, options?: { [key: string]: any }): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\r\n if (!value)\r\n return undefined;\r\n\r\n if (options) {\r\n let alternateDateFormat = AlternateDateFormats.None;\r\n\r\n // istanbul ignore else\r\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\r\n alternateDateFormat = options.alternateDateFormat;\r\n }\r\n\r\n // istanbul ignore else\r\n let date = new Date(value); // this value will be based on local time zone\r\n // istanbul ignore else\r\n if (date instanceof Date && alternateDateFormat) {\r\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\r\n date = adjustDateToTimezone(date, date.getTimezoneOffset() * -1);\r\n }\r\n }\r\n\r\n return this.convertFromString(value);\r\n }\r\n\r\n private isDateValid(date: Date) {\r\n return date instanceof Date && !isNaN(+date);\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n if (!value)\r\n return undefined;\r\n\r\n const dateValue = new Date(value);\r\n\r\n if (!this.isDateValid(dateValue))\r\n return undefined;\r\n\r\n return dateValue;\r\n }\r\n\r\n protected abstract getTimeFormat(): TimeFormat;\r\n\r\n public override get isLessGreaterType(): boolean { return true; }\r\n\r\n public sortCompare(valueA: Date, valueB: Date, _ignoreCase?: boolean): number {\r\n return valueA.valueOf() - valueB.valueOf();\r\n }\r\n\r\n public override isEqualTo(valueA: Date, valueB: Date): boolean {\r\n return valueA.valueOf() === valueB.valueOf();\r\n }\r\n\r\n public override isNotEqualTo(valueA: Date, valueB: Date): boolean {\r\n return valueA.valueOf() !== valueB.valueOf();\r\n }\r\n\r\n public isLessThan(a: Date, b: Date): boolean {\r\n return a.valueOf() < b.valueOf();\r\n }\r\n\r\n public isLessThanOrEqualTo(a: Date, b: Date): boolean {\r\n return a.valueOf() <= b.valueOf();\r\n }\r\n\r\n public isGreaterThan(a: Date, b: Date): boolean {\r\n return a.valueOf() > b.valueOf();\r\n }\r\n\r\n public isGreaterThanOrEqualTo(a: Date, b: Date): boolean {\r\n return a.valueOf() >= b.valueOf();\r\n }\r\n}\r\n\r\n/**\r\n * Short Date Type Converter.\r\n * @public\r\n */\r\nexport class ShortDateTypeConverter extends DateTimeTypeConverterBase {\r\n protected getTimeFormat(): TimeFormat { return TimeFormat.Short; }\r\n}\r\nTypeConverterManager.registerConverter(StandardTypeNames.ShortDate, ShortDateTypeConverter);\r\n\r\n/**\r\n * Date Time Type Converter.\r\n * @public\r\n */\r\nexport class DateTimeTypeConverter extends DateTimeTypeConverterBase {\r\n protected getTimeFormat(): TimeFormat { return TimeFormat.Long; }\r\n}\r\nTypeConverterManager.registerConverter(StandardTypeNames.DateTime, DateTimeTypeConverter);\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/EnumTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAA0D;AAC1D,mDAAgD;AAChD,iEAA8D;AAE9D;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,6BAAa;IAClC,uBAAuB,CAAC,mBAAwC,EAAE,KAAuB;QACvG,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACrE;QAED,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAA+B,EAAE,KAAsB;QAC1F,IAAI,OAAO,GAAwB,EAAE,CAAC;QAEtC,IAAI,OAAO,CAAC,OAAO,YAAY,OAAO,EAAE;YACtC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;SACjC;aAAM;YACL,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAC3B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,KAAK,GAAG;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAE5B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,WAAW,CAAC,OAA4B,EAAE,KAAsB;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;gBAC5B,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEM,WAAW,CAAC,CAAkB,EAAE,CAAkB,EAAE,UAAoB;QAC7E,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1B,OAAO,2CAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SAClF;QAED,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;CACF;AA3CD,8CA2CC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,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 TypeConverters\n */\n\nimport type { EnumerationChoice, EnumerationChoicesInfo, Primitives, PropertyDescription} from \"@itwin/appui-abstract\";\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/**\n * Enum Type Converter.\n * @public\n */\nexport class EnumTypeConverter extends TypeConverter {\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Enum): string | Promise<string> {\n if (value === undefined)\n return \"\";\n\n if (propertyDescription.enum) {\n return this.getMatchingStringValue(propertyDescription.enum, value);\n }\n\n return super.convertToString(value);\n }\n\n private async getMatchingStringValue(enumVal: EnumerationChoicesInfo, value: Primitives.Enum) {\n let choices: EnumerationChoice[] = [];\n\n if (enumVal.choices instanceof Promise) {\n choices = await enumVal.choices;\n } else {\n choices = enumVal.choices;\n }\n\n const pos = this.getPosition(choices, value);\n if (-1 !== pos)\n return choices[pos].label;\n\n return this.convertToString(value);\n }\n\n private getPosition(choices: EnumerationChoice[], value: Primitives.Enum): number {\n for (let i = 0; i < choices.length; ++i) {\n if (choices[i].value === value)\n return i;\n }\n return -1;\n }\n\n public sortCompare(a: Primitives.Enum, b: Primitives.Enum, ignoreCase?: boolean): number {\n if (isNaN(+a) || isNaN(+b)) {\n return TypeConverterManager.getConverter(\"string\").sortCompare(a, b, ignoreCase);\n }\n\n return (+a) - (+b);\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Enum, EnumTypeConverter);\n"]}
|
|
1
|
+
{"version":3,"file":"EnumTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/EnumTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAA0D;AAC1D,mDAAgD;AAChD,iEAA8D;AAE9D;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,6BAAa;IAClC,uBAAuB,CAAC,mBAAwC,EAAE,KAAuB;QACvG,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACrE;QAED,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAA+B,EAAE,KAAsB;QAC1F,IAAI,OAAO,GAAwB,EAAE,CAAC;QAEtC,IAAI,OAAO,CAAC,OAAO,YAAY,OAAO,EAAE;YACtC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;SACjC;aAAM;YACL,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAC3B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,KAAK,GAAG;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAE5B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,WAAW,CAAC,OAA4B,EAAE,KAAsB;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;gBAC5B,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEM,WAAW,CAAC,CAAkB,EAAE,CAAkB,EAAE,UAAoB;QAC7E,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1B,OAAO,2CAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SAClF;QAED,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;CACF;AA3CD,8CA2CC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport type { EnumerationChoice, EnumerationChoicesInfo, Primitives, PropertyDescription} from \"@itwin/appui-abstract\";\r\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/**\r\n * Enum Type Converter.\r\n * @public\r\n */\r\nexport class EnumTypeConverter extends TypeConverter {\r\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Enum): string | Promise<string> {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n if (propertyDescription.enum) {\r\n return this.getMatchingStringValue(propertyDescription.enum, value);\r\n }\r\n\r\n return super.convertToString(value);\r\n }\r\n\r\n private async getMatchingStringValue(enumVal: EnumerationChoicesInfo, value: Primitives.Enum) {\r\n let choices: EnumerationChoice[] = [];\r\n\r\n if (enumVal.choices instanceof Promise) {\r\n choices = await enumVal.choices;\r\n } else {\r\n choices = enumVal.choices;\r\n }\r\n\r\n const pos = this.getPosition(choices, value);\r\n if (-1 !== pos)\r\n return choices[pos].label;\r\n\r\n return this.convertToString(value);\r\n }\r\n\r\n private getPosition(choices: EnumerationChoice[], value: Primitives.Enum): number {\r\n for (let i = 0; i < choices.length; ++i) {\r\n if (choices[i].value === value)\r\n return i;\r\n }\r\n return -1;\r\n }\r\n\r\n public sortCompare(a: Primitives.Enum, b: Primitives.Enum, ignoreCase?: boolean): number {\r\n if (isNaN(+a) || isNaN(+b)) {\r\n return TypeConverterManager.getConverter(\"string\").sortCompare(a, b, ignoreCase);\r\n }\r\n\r\n return (+a) - (+b);\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Enum, EnumTypeConverter);\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HexadecimalTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/HexadecimalTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA2C;AAE3C,0DAA0D;AAC1D,mDAAgD;AAChD,iEAA8D;AAE9D;;GAEG;AACH,MAAa,wBAAyB,SAAQ,6BAAa;IACzC,eAAe,CAAC,KAA8B;QAC5D,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;IACvE,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI;YAChC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;QAEvB,KAAK,GAAG,mBAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,mBAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzB,OAAO,KAAK,CAAC;QAEf,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,WAAW,CAAC,CAAyB,EAAE,CAAyB;QACrE,wBAAwB;QACxB,CAAC,GAAG,mBAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,GAAG,mBAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,CAAC;YACT,OAAO,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,CAAC;YACP,OAAO,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;CACF;AAhCD,4DAgCC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;AACxF,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,WAAW,EAAE,wBAAwB,CAAC,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 TypeConverters\n */\n\nimport { Id64 } from \"@itwin/core-bentley\";\nimport type { Primitives} from \"@itwin/appui-abstract\";\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/** Hexadecimal Type Converter.\n * @public\n */\nexport class HexadecimalTypeConverter extends TypeConverter {\n public override convertToString(value?: Primitives.Hexadecimal) {\n if (value === undefined)\n return \"\";\n\n // Need to Uppercase without changing 0x part\n const hexString = value.toString();\n return `0x${hexString.substring(2, hexString.length).toUpperCase()}`;\n }\n\n public override convertFromString(value: string) {\n if (value.substring(0, 2) !== \"0x\")\n value = `0x${value}`;\n\n value = Id64.fromString(value);\n if (Id64.isValidId64(value))\n return value;\n\n return undefined;\n }\n\n public sortCompare(a: Primitives.Hexadecimal, b: Primitives.Hexadecimal): number {\n // Normalize the strings\n a = Id64.fromString(a);\n b = Id64.fromString(b);\n\n if (a === b)\n return 0;\n if (a > b)\n return 1;\n return -1;\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Hex, HexadecimalTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Hexadecimal, HexadecimalTypeConverter);\n"]}
|
|
1
|
+
{"version":3,"file":"HexadecimalTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/HexadecimalTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA2C;AAE3C,0DAA0D;AAC1D,mDAAgD;AAChD,iEAA8D;AAE9D;;GAEG;AACH,MAAa,wBAAyB,SAAQ,6BAAa;IACzC,eAAe,CAAC,KAA8B;QAC5D,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;IACvE,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI;YAChC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;QAEvB,KAAK,GAAG,mBAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,mBAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzB,OAAO,KAAK,CAAC;QAEf,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,WAAW,CAAC,CAAyB,EAAE,CAAyB;QACrE,wBAAwB;QACxB,CAAC,GAAG,mBAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,GAAG,mBAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,CAAC;YACT,OAAO,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,CAAC;YACP,OAAO,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;CACF;AAhCD,4DAgCC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;AACxF,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport type { Primitives} from \"@itwin/appui-abstract\";\r\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/** Hexadecimal Type Converter.\r\n * @public\r\n */\r\nexport class HexadecimalTypeConverter extends TypeConverter {\r\n public override convertToString(value?: Primitives.Hexadecimal) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n // Need to Uppercase without changing 0x part\r\n const hexString = value.toString();\r\n return `0x${hexString.substring(2, hexString.length).toUpperCase()}`;\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n if (value.substring(0, 2) !== \"0x\")\r\n value = `0x${value}`;\r\n\r\n value = Id64.fromString(value);\r\n if (Id64.isValidId64(value))\r\n return value;\r\n\r\n return undefined;\r\n }\r\n\r\n public sortCompare(a: Primitives.Hexadecimal, b: Primitives.Hexadecimal): number {\r\n // Normalize the strings\r\n a = Id64.fromString(a);\r\n b = Id64.fromString(b);\r\n\r\n if (a === b)\r\n return 0;\r\n if (a > b)\r\n return 1;\r\n return -1;\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Hex, HexadecimalTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Hexadecimal, HexadecimalTypeConverter);\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationPropertyTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NavigationPropertyTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;;GAGG;;;AAGH,0DAA0D;AAC1D,mDAAgD;AAChD,iEAA8D;AAE9D;;;GAGG;AACH,MAAa,+BAAgC,SAAQ,6BAAa;IAChD,uBAAuB,CAAC,mBAAwC,EAAE,KAAwB;QACxG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC;IACrE,CAAC;IAEM,WAAW,CAAC,CAAmB,EAAE,CAAmB,EAAE,UAAoB;QAC/E,OAAO,2CAAoB;aACxB,YAAY,CAAC,kCAAiB,CAAC,WAAW,CAAC;aAC3C,WAAW,CAAE,CAA4B,CAAC,EAAE,EAAG,CAA4B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACjG,CAAC;CACF;AAVD,0EAUC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,UAAU,EAAE,+BAA+B,CAAC,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/**\n * @packageDocumentation\n * @module TypeConverters\n */\n\nimport type { Primitives, PropertyDescription} from \"@itwin/appui-abstract\";\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/**\n * Navigation property type converter.\n * @public\n */\nexport class NavigationPropertyTypeConverter extends TypeConverter {\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Value) {\n return value === undefined ? \"\" : propertyDescription.displayLabel;\n }\n\n public sortCompare(a: Primitives.Value, b: Primitives.Value, ignoreCase?: boolean): number {\n return TypeConverterManager\n .getConverter(StandardTypeNames.Hexadecimal)\n .sortCompare((a as Primitives.InstanceKey).id, (b as Primitives.InstanceKey).id, ignoreCase);\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Navigation, NavigationPropertyTypeConverter);\n"]}
|
|
1
|
+
{"version":3,"file":"NavigationPropertyTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NavigationPropertyTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;;GAGG;;;AAGH,0DAA0D;AAC1D,mDAAgD;AAChD,iEAA8D;AAE9D;;;GAGG;AACH,MAAa,+BAAgC,SAAQ,6BAAa;IAChD,uBAAuB,CAAC,mBAAwC,EAAE,KAAwB;QACxG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC;IACrE,CAAC;IAEM,WAAW,CAAC,CAAmB,EAAE,CAAmB,EAAE,UAAoB;QAC/E,OAAO,2CAAoB;aACxB,YAAY,CAAC,kCAAiB,CAAC,WAAW,CAAC;aAC3C,WAAW,CAAE,CAA4B,CAAC,EAAE,EAAG,CAA4B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACjG,CAAC;CACF;AAVD,0EAUC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/**\r\n * @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport type { Primitives, PropertyDescription} from \"@itwin/appui-abstract\";\r\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/**\r\n * Navigation property type converter.\r\n * @public\r\n */\r\nexport class NavigationPropertyTypeConverter extends TypeConverter {\r\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Value) {\r\n return value === undefined ? \"\" : propertyDescription.displayLabel;\r\n }\r\n\r\n public sortCompare(a: Primitives.Value, b: Primitives.Value, ignoreCase?: boolean): number {\r\n return TypeConverterManager\r\n .getConverter(StandardTypeNames.Hexadecimal)\r\n .sortCompare((a as Primitives.InstanceKey).id, (b as Primitives.InstanceKey).id, ignoreCase);\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Navigation, NavigationPropertyTypeConverter);\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumericTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NumericTypeConverter.ts"],"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/** @packageDocumentation\n * @module TypeConverters\n */\n\nimport type { Primitives} from \"@itwin/appui-abstract\";\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\nimport type { LessGreaterOperatorProcessor} from \"./TypeConverter\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/**\n * Base Numeric Type Converter.\n * @public\n */\nexport abstract class NumericTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\n public override get isLessGreaterType(): boolean { return true; }\n\n public isLessThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a < b;\n }\n\n public isLessThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a <= b;\n }\n\n public isGreaterThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a > b;\n }\n\n public isGreaterThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a >= b;\n }\n\n public sortCompare(a: Primitives.Numeric, b: Primitives.Numeric, _ignoreCase?: boolean): number {\n return (+a) - (+b);\n }\n}\n\n/**\n * Float Type Converter.\n * @public\n */\nexport class FloatTypeConverter extends NumericTypeConverterBase {\n private static parseString(value: string): number | undefined {\n const parsedValue = parseFloat(value);\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\n }\n\n public override convertToString(value?: Primitives.Float) {\n if (value === undefined)\n return \"\";\n\n let numericValue = 0;\n if (typeof value === \"string\") {\n if (value === \"-\" || value === \"\" || value === \"-0.0\" || value === \"-0\") {\n // handle these semi-valid values as 0\n numericValue = 0;\n } else {\n numericValue = FloatTypeConverter.parseString(value) ?? 0;\n }\n } else {\n numericValue = value;\n }\n // this is close to calling `toFixed(2)`, but cuts of any trailing zeros\n let stringValue = (Math.round(100 * numericValue) / 100).toString();\n // because this is a _float_ converter, we want to emphasize the number is a float - make\n // sure there's a decimal part\n if (stringValue.indexOf(\".\") === -1)\n stringValue += \".0\";\n return stringValue;\n }\n\n public override convertFromString(value: string): number | undefined {\n return FloatTypeConverter.parseString(value);\n }\n}\nTypeConverterManager.registerConverter(StandardTypeNames.Float, FloatTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Double, FloatTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Number, FloatTypeConverter);\n\n/**\n * Int Type Converter.\n * @public\n */\nexport class IntTypeConverter extends NumericTypeConverterBase {\n private static parseString(value: string): number | undefined {\n const parsedValue = parseInt(value, 10);\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\n }\n\n public override convertToString(value?: Primitives.Int) {\n if (value === undefined)\n return \"\";\n\n let numericValue = 0;\n if (typeof value === \"string\") {\n if (value === \"-\" || value === \"\" || value === \"-0\") {\n // handle these semi-valid values as 0\n numericValue = 0;\n } else {\n numericValue = IntTypeConverter.parseString(value) ?? 0;\n }\n } else {\n numericValue = value;\n }\n return Math.round(numericValue).toString();\n }\n\n public override convertFromString(value: string): number | undefined {\n return IntTypeConverter.parseString(value);\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Int, IntTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Integer, IntTypeConverter);\n"]}
|
|
1
|
+
{"version":3,"file":"NumericTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NumericTypeConverter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport type { Primitives} from \"@itwin/appui-abstract\";\r\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport type { LessGreaterOperatorProcessor} from \"./TypeConverter\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/**\r\n * Base Numeric Type Converter.\r\n * @public\r\n */\r\nexport abstract class NumericTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\r\n public override get isLessGreaterType(): boolean { return true; }\r\n\r\n public isLessThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a < b;\r\n }\r\n\r\n public isLessThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a <= b;\r\n }\r\n\r\n public isGreaterThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a > b;\r\n }\r\n\r\n public isGreaterThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a >= b;\r\n }\r\n\r\n public sortCompare(a: Primitives.Numeric, b: Primitives.Numeric, _ignoreCase?: boolean): number {\r\n return (+a) - (+b);\r\n }\r\n}\r\n\r\n/**\r\n * Float Type Converter.\r\n * @public\r\n */\r\nexport class FloatTypeConverter extends NumericTypeConverterBase {\r\n private static parseString(value: string): number | undefined {\r\n const parsedValue = parseFloat(value);\r\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\r\n }\r\n\r\n public override convertToString(value?: Primitives.Float) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n let numericValue = 0;\r\n if (typeof value === \"string\") {\r\n if (value === \"-\" || value === \"\" || value === \"-0.0\" || value === \"-0\") {\r\n // handle these semi-valid values as 0\r\n numericValue = 0;\r\n } else {\r\n numericValue = FloatTypeConverter.parseString(value) ?? 0;\r\n }\r\n } else {\r\n numericValue = value;\r\n }\r\n // this is close to calling `toFixed(2)`, but cuts of any trailing zeros\r\n let stringValue = (Math.round(100 * numericValue) / 100).toString();\r\n // because this is a _float_ converter, we want to emphasize the number is a float - make\r\n // sure there's a decimal part\r\n if (stringValue.indexOf(\".\") === -1)\r\n stringValue += \".0\";\r\n return stringValue;\r\n }\r\n\r\n public override convertFromString(value: string): number | undefined {\r\n return FloatTypeConverter.parseString(value);\r\n }\r\n}\r\nTypeConverterManager.registerConverter(StandardTypeNames.Float, FloatTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Double, FloatTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Number, FloatTypeConverter);\r\n\r\n/**\r\n * Int Type Converter.\r\n * @public\r\n */\r\nexport class IntTypeConverter extends NumericTypeConverterBase {\r\n private static parseString(value: string): number | undefined {\r\n const parsedValue = parseInt(value, 10);\r\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\r\n }\r\n\r\n public override convertToString(value?: Primitives.Int) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n let numericValue = 0;\r\n if (typeof value === \"string\") {\r\n if (value === \"-\" || value === \"\" || value === \"-0\") {\r\n // handle these semi-valid values as 0\r\n numericValue = 0;\r\n } else {\r\n numericValue = IntTypeConverter.parseString(value) ?? 0;\r\n }\r\n } else {\r\n numericValue = value;\r\n }\r\n return Math.round(numericValue).toString();\r\n }\r\n\r\n public override convertFromString(value: string): number | undefined {\r\n return IntTypeConverter.parseString(value);\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Int, IntTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Integer, IntTypeConverter);\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/PointTypeConverter.ts"],"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/** @packageDocumentation\n * @module TypeConverters\n */\n\nimport type { Primitives} from \"@itwin/appui-abstract\";\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { isPromiseLike } from \"@itwin/core-react\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\nimport type { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\n\n// cSpell:ignore valuetypes\n\n/**\n * Point type converter.\n * @public\n */\nexport abstract class BasePointTypeConverter extends TypeConverter {\n\n public componentConverterName: string;\n\n public constructor(componentConverterName: string = StandardTypeNames.Double) {\n super();\n this.componentConverterName = componentConverterName;\n }\n\n private formatValue(value: number | string): string | Promise<string> {\n if (typeof value === \"string\")\n value = parseFloat(value);\n return TypeConverterManager.getConverter(this.componentConverterName).convertToString(value);\n }\n\n public override convertToString(value?: Primitives.Point): string | Promise<string> {\n if (!value)\n return \"\";\n\n let components = new Array<string | Promise<string>>();\n if (Array.isArray(value)) {\n if (value.length === 0)\n return \"\";\n components = (value as Array<string | number>).map((c): string | Promise<string> => this.formatValue(c));\n } else {\n components = [this.formatValue(value.x), this.formatValue(value.y)];\n if (undefined !== (value as any).z)\n components.push(this.formatValue((value as any).z));\n }\n const hasAsyncComponents = components.some(isPromiseLike);\n if (hasAsyncComponents) {\n return Promise.all(components.map(async (c) => isPromiseLike(c) ? c : Promise.resolve(c))).then((c) => c.join(\", \"));\n }\n return components.join(\", \");\n }\n\n public override convertFromString(value: string) {\n return this.constructPoint(value.split(\",\"));\n }\n protected abstract constructPoint(_values: Primitives.Point): ConvertedPrimitives.Point | undefined;\n\n protected abstract getVectorLength(point: Primitives.Point): number | undefined;\n\n public sortCompare(a: Primitives.Point, b: Primitives.Point, _ignoreCase?: boolean): number {\n const aLength = this.getVectorLength(a);\n const bLength = this.getVectorLength(b);\n\n if (aLength === bLength)\n return 0;\n if (aLength === undefined)\n return -1;\n if (bLength === undefined)\n return 1;\n\n return aLength - bLength;\n }\n}\n\n/**\n * Point2d type converter.\n * @public\n */\nexport class Point2dTypeConverter extends BasePointTypeConverter {\n\n public constructor(componentConverterName?: string) {\n super(componentConverterName);\n }\n\n protected getVectorLength(point: Primitives.Point): number | undefined {\n const derivedPoint = this.constructPoint(point);\n\n if (derivedPoint === undefined)\n return undefined;\n\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2));\n }\n\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point2d | undefined {\n if (Array.isArray(values)) {\n if (values.length !== 2 || isNaN(+values[0]) || isNaN(+values[1]))\n return undefined;\n return { x: +values[0], y: +values[1] };\n }\n return values;\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Point2d, Point2dTypeConverter);\n\n/**\n * Point3d type converter.\n * @public\n */\nexport class Point3dTypeConverter extends BasePointTypeConverter {\n\n public constructor(componentConverterName?: string) {\n super(componentConverterName);\n }\n\n protected getVectorLength(point: Primitives.Point): number | undefined {\n const derivedPoint = this.constructPoint(point);\n\n if (derivedPoint === undefined)\n return undefined;\n\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2) + Math.pow(derivedPoint.z, 2));\n }\n\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point3d | undefined {\n if (Array.isArray(values)) {\n if (values.length !== 3 || isNaN(+values[0]) || isNaN(+values[1]) || isNaN(+values[2]))\n return undefined;\n return { x: +values[0], y: +values[1], z: +values[2] };\n }\n const z = (values as any).z;\n return { ...values, z: z ? z : 0 };\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Point3d, Point3dTypeConverter);\n"]}
|
|
1
|
+
{"version":3,"file":"PointTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/PointTypeConverter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport type { Primitives} from \"@itwin/appui-abstract\";\r\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { isPromiseLike } from \"@itwin/core-react\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\nimport type { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\r\n\r\n// cSpell:ignore valuetypes\r\n\r\n/**\r\n * Point type converter.\r\n * @public\r\n */\r\nexport abstract class BasePointTypeConverter extends TypeConverter {\r\n\r\n public componentConverterName: string;\r\n\r\n public constructor(componentConverterName: string = StandardTypeNames.Double) {\r\n super();\r\n this.componentConverterName = componentConverterName;\r\n }\r\n\r\n private formatValue(value: number | string): string | Promise<string> {\r\n if (typeof value === \"string\")\r\n value = parseFloat(value);\r\n return TypeConverterManager.getConverter(this.componentConverterName).convertToString(value);\r\n }\r\n\r\n public override convertToString(value?: Primitives.Point): string | Promise<string> {\r\n if (!value)\r\n return \"\";\r\n\r\n let components = new Array<string | Promise<string>>();\r\n if (Array.isArray(value)) {\r\n if (value.length === 0)\r\n return \"\";\r\n components = (value as Array<string | number>).map((c): string | Promise<string> => this.formatValue(c));\r\n } else {\r\n components = [this.formatValue(value.x), this.formatValue(value.y)];\r\n if (undefined !== (value as any).z)\r\n components.push(this.formatValue((value as any).z));\r\n }\r\n const hasAsyncComponents = components.some(isPromiseLike);\r\n if (hasAsyncComponents) {\r\n return Promise.all(components.map(async (c) => isPromiseLike(c) ? c : Promise.resolve(c))).then((c) => c.join(\", \"));\r\n }\r\n return components.join(\", \");\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n return this.constructPoint(value.split(\",\"));\r\n }\r\n protected abstract constructPoint(_values: Primitives.Point): ConvertedPrimitives.Point | undefined;\r\n\r\n protected abstract getVectorLength(point: Primitives.Point): number | undefined;\r\n\r\n public sortCompare(a: Primitives.Point, b: Primitives.Point, _ignoreCase?: boolean): number {\r\n const aLength = this.getVectorLength(a);\r\n const bLength = this.getVectorLength(b);\r\n\r\n if (aLength === bLength)\r\n return 0;\r\n if (aLength === undefined)\r\n return -1;\r\n if (bLength === undefined)\r\n return 1;\r\n\r\n return aLength - bLength;\r\n }\r\n}\r\n\r\n/**\r\n * Point2d type converter.\r\n * @public\r\n */\r\nexport class Point2dTypeConverter extends BasePointTypeConverter {\r\n\r\n public constructor(componentConverterName?: string) {\r\n super(componentConverterName);\r\n }\r\n\r\n protected getVectorLength(point: Primitives.Point): number | undefined {\r\n const derivedPoint = this.constructPoint(point);\r\n\r\n if (derivedPoint === undefined)\r\n return undefined;\r\n\r\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2));\r\n }\r\n\r\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point2d | undefined {\r\n if (Array.isArray(values)) {\r\n if (values.length !== 2 || isNaN(+values[0]) || isNaN(+values[1]))\r\n return undefined;\r\n return { x: +values[0], y: +values[1] };\r\n }\r\n return values;\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Point2d, Point2dTypeConverter);\r\n\r\n/**\r\n * Point3d type converter.\r\n * @public\r\n */\r\nexport class Point3dTypeConverter extends BasePointTypeConverter {\r\n\r\n public constructor(componentConverterName?: string) {\r\n super(componentConverterName);\r\n }\r\n\r\n protected getVectorLength(point: Primitives.Point): number | undefined {\r\n const derivedPoint = this.constructPoint(point);\r\n\r\n if (derivedPoint === undefined)\r\n return undefined;\r\n\r\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2) + Math.pow(derivedPoint.z, 2));\r\n }\r\n\r\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point3d | undefined {\r\n if (Array.isArray(values)) {\r\n if (values.length !== 3 || isNaN(+values[0]) || isNaN(+values[1]) || isNaN(+values[2]))\r\n return undefined;\r\n return { x: +values[0], y: +values[1], z: +values[2] };\r\n }\r\n const z = (values as any).z;\r\n return { ...values, z: z ? z : 0 };\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Point3d, Point3dTypeConverter);\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/StringTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAA0D;AAC1D,mDAAgD;AAChD,iEAA8D;AAwB9D;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,6BAAa;IACpC,eAAe,CAAC,KAAyB;QACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,WAAW,CAAC,MAAyB,EAAE,MAAyB,EAAE,UAAoB;QAC3F,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YACrC,OAAO,CAAC,CAAC;QACX,IAAI,UAAU;YACZ,OAAO,MAAM,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;;YAE5E,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAoB,YAAY,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAErD,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACtE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3D,OAAO,KAAK,CAAC;QAEf,IAAI,aAAa;YACf,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;QAEzD,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACjG,CAAC;IAEM,QAAQ,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACpE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3D,OAAO,KAAK,CAAC;QAEf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/C,IAAI,QAAQ,GAAG,CAAC;YACd,OAAO,KAAK,CAAC;QAEf,IAAI,SAAiB,CAAC;QACtB,IAAI,aAAa;YACf,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;;YAE7C,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEvF,OAAO,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,QAAQ,CAAC;IACpD,CAAC;IAEM,QAAQ,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACpE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3D,OAAO,KAAK,CAAC;QAEf,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;YAC/B,OAAO,KAAK,CAAC;QAEf,IAAI,aAAa;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IAEM,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QAC1E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACvD,CAAC;IAEM,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAEM,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QAC5E,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAEM,OAAO,CAAC,MAAc;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,UAAU,CAAC,MAAc;QAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,MAAe;QACnD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,OAAO,KAAK,CAAC;QACf,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YACtC,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAzFD,kDAyFC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACpF,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACtF,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,GAAG,EAAE,mBAAmB,CAAC,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 TypeConverters\n */\n\nimport type { Primitives} from \"@itwin/appui-abstract\";\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/** Operators for string types\n * @public\n */\nexport interface StringOperatorProcessor {\n /** Determines if one string starts with another string */\n startsWith(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string ends with another string */\n endsWith(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string contains another string */\n contains(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string does not contain another string */\n doesNotContain(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string is contained within another string */\n isContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string is not contained within another string */\n isNotContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if a string is empty */\n isEmpty(a: string): boolean;\n /** Determines if a string is not empty */\n isNotEmpty(a: string): boolean;\n}\n\n/**\n * String Type Converter.\n * @public\n */\nexport class StringTypeConverter extends TypeConverter implements StringOperatorProcessor {\n public override convertToString(value?: Primitives.String) {\n return value ? value.toString() : \"\";\n }\n\n public override convertFromString(value: string) {\n return value;\n }\n\n public sortCompare(valueA: Primitives.String, valueB: Primitives.String, ignoreCase?: boolean): number {\n if (!this.checkArgTypes(valueA, valueB))\n return 0;\n if (ignoreCase)\n return valueA.toLocaleLowerCase().localeCompare(valueB.toLocaleLowerCase());\n else\n return valueA.localeCompare(valueB);\n }\n\n public override get isStringType(): boolean { return true; }\n\n public startsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\n return false;\n\n if (caseSensitive)\n return (valueA.substring(0, valueB.length) === valueB);\n\n return (valueA.toLocaleUpperCase().substring(0, valueB.length) === valueB.toLocaleUpperCase());\n }\n\n public endsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\n return false;\n\n const position = valueA.length - valueB.length;\n if (position < 0)\n return false;\n\n let lastIndex: number;\n if (caseSensitive)\n lastIndex = valueA.indexOf(valueB, position);\n else\n lastIndex = valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), position);\n\n return lastIndex !== -1 && lastIndex === position;\n }\n\n public contains(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\n return false;\n\n if (valueB.length > valueA.length)\n return false;\n\n if (caseSensitive)\n return valueA.indexOf(valueB, 0) !== -1;\n\n return valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), 0) !== -1;\n }\n\n public doesNotContain(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n return !this.contains(valueA, valueB, caseSensitive);\n }\n\n public isContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n return this.contains(valueB, valueA, caseSensitive);\n }\n\n public isNotContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n return this.doesNotContain(valueB, valueA, caseSensitive);\n }\n\n public isEmpty(valueA: string): boolean {\n if (!this.checkArgTypes(valueA))\n return true;\n return valueA.length === 0;\n }\n\n public isNotEmpty(valueA: string): boolean {\n return !this.isEmpty(valueA);\n }\n\n private checkArgTypes(valueA: string, valueB?: string): boolean {\n if (typeof valueA !== \"string\")\n return false;\n if (valueB && typeof valueB !== \"string\")\n return false;\n return true;\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Text, StringTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.String, StringTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.URL, StringTypeConverter);\n"]}
|
|
1
|
+
{"version":3,"file":"StringTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/StringTypeConverter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport type { Primitives} from \"@itwin/appui-abstract\";\r\nimport { StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/** Operators for string types\r\n * @public\r\n */\r\nexport interface StringOperatorProcessor {\r\n /** Determines if one string starts with another string */\r\n startsWith(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string ends with another string */\r\n endsWith(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string contains another string */\r\n contains(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string does not contain another string */\r\n doesNotContain(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string is contained within another string */\r\n isContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string is not contained within another string */\r\n isNotContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if a string is empty */\r\n isEmpty(a: string): boolean;\r\n /** Determines if a string is not empty */\r\n isNotEmpty(a: string): boolean;\r\n}\r\n\r\n/**\r\n * String Type Converter.\r\n * @public\r\n */\r\nexport class StringTypeConverter extends TypeConverter implements StringOperatorProcessor {\r\n public override convertToString(value?: Primitives.String) {\r\n return value ? value.toString() : \"\";\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n return value;\r\n }\r\n\r\n public sortCompare(valueA: Primitives.String, valueB: Primitives.String, ignoreCase?: boolean): number {\r\n if (!this.checkArgTypes(valueA, valueB))\r\n return 0;\r\n if (ignoreCase)\r\n return valueA.toLocaleLowerCase().localeCompare(valueB.toLocaleLowerCase());\r\n else\r\n return valueA.localeCompare(valueB);\r\n }\r\n\r\n public override get isStringType(): boolean { return true; }\r\n\r\n public startsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\r\n return false;\r\n\r\n if (caseSensitive)\r\n return (valueA.substring(0, valueB.length) === valueB);\r\n\r\n return (valueA.toLocaleUpperCase().substring(0, valueB.length) === valueB.toLocaleUpperCase());\r\n }\r\n\r\n public endsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\r\n return false;\r\n\r\n const position = valueA.length - valueB.length;\r\n if (position < 0)\r\n return false;\r\n\r\n let lastIndex: number;\r\n if (caseSensitive)\r\n lastIndex = valueA.indexOf(valueB, position);\r\n else\r\n lastIndex = valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), position);\r\n\r\n return lastIndex !== -1 && lastIndex === position;\r\n }\r\n\r\n public contains(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\r\n return false;\r\n\r\n if (valueB.length > valueA.length)\r\n return false;\r\n\r\n if (caseSensitive)\r\n return valueA.indexOf(valueB, 0) !== -1;\r\n\r\n return valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), 0) !== -1;\r\n }\r\n\r\n public doesNotContain(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n return !this.contains(valueA, valueB, caseSensitive);\r\n }\r\n\r\n public isContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n return this.contains(valueB, valueA, caseSensitive);\r\n }\r\n\r\n public isNotContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n return this.doesNotContain(valueB, valueA, caseSensitive);\r\n }\r\n\r\n public isEmpty(valueA: string): boolean {\r\n if (!this.checkArgTypes(valueA))\r\n return true;\r\n return valueA.length === 0;\r\n }\r\n\r\n public isNotEmpty(valueA: string): boolean {\r\n return !this.isEmpty(valueA);\r\n }\r\n\r\n private checkArgTypes(valueA: string, valueB?: string): boolean {\r\n if (typeof valueA !== \"string\")\r\n return false;\r\n if (valueB && typeof valueB !== \"string\")\r\n return false;\r\n return true;\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Text, StringTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.String, StringTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.URL, StringTypeConverter);\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/TypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH,0DAA4D;AA6C5D;;;GAGG;AACH,MAAsB,aAAa;IACjC,6CAA6C;IACtC,eAAe,CAAC,KAAwB;QAC7C,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED,wEAAwE;IACjE,0BAA0B,CAAC,KAAwB,EAAE,QAAiC;QAC3F,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,6CAA6C;IACtC,iBAAiB,CAAC,MAAc;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0EAA0E;IACnE,4BAA4B,CAAC,KAAa,EAAE,QAAiC;QAClF,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,0EAA0E;IACnE,uBAAuB,CAAC,mBAAwC,EAAE,KAAwB;;QAC/F,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAA,mBAAmB,CAAC,SAAS,0CAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,mEAAmE;IAC5D,KAAK,CAAC,gCAAgC,CAAC,KAAa,EAAE,cAA+B;QAC1F,MAAM,gBAAgB,GAAG,CAAC,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACvI,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACrF,MAAM,aAAa,GAAmB;YACpC,WAAW,EAAE,oCAAmB,CAAC,SAAS;YAC1C,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAKD,mDAAmD;IAC5C,SAAS,CAAC,MAAwB,EAAE,MAAwB;QACjE,OAAO,MAAM,KAAK,MAAM,CAAC;IAC3B,CAAC;IAED,uDAAuD;IAChD,YAAY,CAAC,MAAwB,EAAE,MAAwB;QACpE,OAAO,MAAM,KAAK,MAAM,CAAC;IAC3B,CAAC;IAED,2DAA2D;IACpD,MAAM,CAAC,KAAuB;QACnC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;IAC/C,CAAC;IAED,mEAAmE;IAC5D,SAAS,CAAC,KAAuB;QACtC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;IAC/C,CAAC;IAED,uDAAuD;IACvD,IAAW,YAAY,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACpD,wDAAwD;IACxD,IAAW,iBAAiB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACzD,wDAAwD;IACxD,IAAW,aAAa,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACrD,yDAAyD;IACzD,IAAW,cAAc,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;CACtD;AAvED,sCAuEC","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 TypeConverters\n */\n\n// cSpell:ignore valuetypes shortdate\n\nimport type { Primitives, PrimitiveValue, PropertyDescription, PropertyRecord, PropertyValue} from \"@itwin/appui-abstract\";\nimport { PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport type { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\n\n/** Sort compare method for types that support sorting\n * @public\n */\nexport interface SortComparer {\n /** Sort function for two primitive values */\n sortCompare(valueA: Primitives.Value, valueB: Primitives.Value, ignoreCase?: boolean): number;\n}\n\n/** Operators for all filterable types\n * @public\n */\nexport interface OperatorProcessor {\n /** Determines if two primitive values are equal */\n isEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\n /** Determines if two primitive values are not equal */\n isNotEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\n}\n\n/** Operators for Numeric types, DateTime, TimeSpan, or any type that supports these comparisons\n * @public\n */\nexport interface LessGreaterOperatorProcessor {\n /** Determines if a primitive values is less than another primitive value */\n isLessThan(a: Primitives.Value, b: Primitives.Value): boolean;\n /** Determines if a primitive values is less than or equal to another primitive value */\n isLessThanOrEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\n /** Determines if a primitive values is greater than another primitive value */\n isGreaterThan(a: Primitives.Value, b: Primitives.Value): boolean;\n /** Determines if a primitive values is greater than or equal to another primitive value */\n isGreaterThanOrEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\n}\n\n/** Operators for all filterable null-able types\n * @public\n */\nexport interface NullableOperatorProcessor {\n /** Determines if a primitive value is null or undefined */\n isNull(value: Primitives.Value): boolean;\n /** Determines if a primitive value is not null or not undefined */\n isNotNull(value: Primitives.Value): boolean;\n}\n\n/**\n * Type Converter base class.\n * @public\n */\nexport abstract class TypeConverter implements SortComparer, OperatorProcessor, NullableOperatorProcessor {\n /** Converts a primitive value to a string */\n public convertToString(value?: Primitives.Value): string | Promise<string> {\n if (value === undefined)\n return \"\";\n return value.toString();\n }\n\n /** Default implementation just calls convertToString with no options */\n public convertToStringWithOptions(value?: Primitives.Value, _options?: { [key: string]: any }): string | Promise<string> {\n return this.convertToString(value);\n }\n\n /** Converts a string to a primitive value */\n public convertFromString(_value: string): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\n return undefined;\n }\n\n /** Default implementation just calls convertFromString with no options */\n public convertFromStringWithOptions(value: string, _options?: { [key: string]: any }): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\n return this.convertFromString(value);\n }\n\n /** Converts a value associated with a property description to a string */\n public convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Value): string | Promise<string> {\n return this.convertToStringWithOptions(value, propertyDescription.converter?.options);\n }\n\n /** Converts a string with a property record to a property value */\n public async convertFromStringToPropertyValue(value: string, propertyRecord?: PropertyRecord): Promise<PropertyValue> {\n const converterOptions = (propertyRecord && propertyRecord.property.converter) ? propertyRecord.property.converter.options : undefined;\n const stringValue = await this.convertFromStringWithOptions(value, converterOptions);\n const propertyValue: PrimitiveValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: stringValue,\n displayValue: \"\",\n };\n return propertyValue;\n }\n\n /** Sort function for two primitive values */\n public abstract sortCompare(valueA: Primitives.Value, valueB: Primitives.Value, _ignoreCase?: boolean): number;\n\n /** Determines if two primitive values are equal */\n public isEqualTo(valueA: Primitives.Value, valueB: Primitives.Value): boolean {\n return valueA === valueB;\n }\n\n /** Determines if two primitive values are not equal */\n public isNotEqualTo(valueA: Primitives.Value, valueB: Primitives.Value): boolean {\n return valueA !== valueB;\n }\n\n /** Determines if a primitive value is null or undefined */\n public isNull(value: Primitives.Value): boolean {\n return value === null || value === undefined;\n }\n\n /** Determines if a primitive value is not null or not undefined */\n public isNotNull(value: Primitives.Value): boolean {\n return value !== null && value !== undefined;\n }\n\n /** Determines if the converter is for a string type */\n public get isStringType(): boolean { return false; }\n /** Determines if the converter is for a numeric type */\n public get isLessGreaterType(): boolean { return false; }\n /** Determines if the converter is for a boolean type */\n public get isBooleanType(): boolean { return false; }\n /** Determines if the converter is for a nullable type */\n public get isNullableType(): boolean { return true; }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/TypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH,0DAA4D;AA6C5D;;;GAGG;AACH,MAAsB,aAAa;IACjC,6CAA6C;IACtC,eAAe,CAAC,KAAwB;QAC7C,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED,wEAAwE;IACjE,0BAA0B,CAAC,KAAwB,EAAE,QAAiC;QAC3F,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,6CAA6C;IACtC,iBAAiB,CAAC,MAAc;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0EAA0E;IACnE,4BAA4B,CAAC,KAAa,EAAE,QAAiC;QAClF,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,0EAA0E;IACnE,uBAAuB,CAAC,mBAAwC,EAAE,KAAwB;;QAC/F,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAA,mBAAmB,CAAC,SAAS,0CAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,mEAAmE;IAC5D,KAAK,CAAC,gCAAgC,CAAC,KAAa,EAAE,cAA+B;QAC1F,MAAM,gBAAgB,GAAG,CAAC,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACvI,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACrF,MAAM,aAAa,GAAmB;YACpC,WAAW,EAAE,oCAAmB,CAAC,SAAS;YAC1C,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAKD,mDAAmD;IAC5C,SAAS,CAAC,MAAwB,EAAE,MAAwB;QACjE,OAAO,MAAM,KAAK,MAAM,CAAC;IAC3B,CAAC;IAED,uDAAuD;IAChD,YAAY,CAAC,MAAwB,EAAE,MAAwB;QACpE,OAAO,MAAM,KAAK,MAAM,CAAC;IAC3B,CAAC;IAED,2DAA2D;IACpD,MAAM,CAAC,KAAuB;QACnC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;IAC/C,CAAC;IAED,mEAAmE;IAC5D,SAAS,CAAC,KAAuB;QACtC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;IAC/C,CAAC;IAED,uDAAuD;IACvD,IAAW,YAAY,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACpD,wDAAwD;IACxD,IAAW,iBAAiB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACzD,wDAAwD;IACxD,IAAW,aAAa,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACrD,yDAAyD;IACzD,IAAW,cAAc,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;CACtD;AAvED,sCAuEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\n// cSpell:ignore valuetypes shortdate\r\n\r\nimport type { Primitives, PrimitiveValue, PropertyDescription, PropertyRecord, PropertyValue} from \"@itwin/appui-abstract\";\r\nimport { PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport type { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\r\n\r\n/** Sort compare method for types that support sorting\r\n * @public\r\n */\r\nexport interface SortComparer {\r\n /** Sort function for two primitive values */\r\n sortCompare(valueA: Primitives.Value, valueB: Primitives.Value, ignoreCase?: boolean): number;\r\n}\r\n\r\n/** Operators for all filterable types\r\n * @public\r\n */\r\nexport interface OperatorProcessor {\r\n /** Determines if two primitive values are equal */\r\n isEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\r\n /** Determines if two primitive values are not equal */\r\n isNotEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\r\n}\r\n\r\n/** Operators for Numeric types, DateTime, TimeSpan, or any type that supports these comparisons\r\n * @public\r\n */\r\nexport interface LessGreaterOperatorProcessor {\r\n /** Determines if a primitive values is less than another primitive value */\r\n isLessThan(a: Primitives.Value, b: Primitives.Value): boolean;\r\n /** Determines if a primitive values is less than or equal to another primitive value */\r\n isLessThanOrEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\r\n /** Determines if a primitive values is greater than another primitive value */\r\n isGreaterThan(a: Primitives.Value, b: Primitives.Value): boolean;\r\n /** Determines if a primitive values is greater than or equal to another primitive value */\r\n isGreaterThanOrEqualTo(a: Primitives.Value, b: Primitives.Value): boolean;\r\n}\r\n\r\n/** Operators for all filterable null-able types\r\n * @public\r\n */\r\nexport interface NullableOperatorProcessor {\r\n /** Determines if a primitive value is null or undefined */\r\n isNull(value: Primitives.Value): boolean;\r\n /** Determines if a primitive value is not null or not undefined */\r\n isNotNull(value: Primitives.Value): boolean;\r\n}\r\n\r\n/**\r\n * Type Converter base class.\r\n * @public\r\n */\r\nexport abstract class TypeConverter implements SortComparer, OperatorProcessor, NullableOperatorProcessor {\r\n /** Converts a primitive value to a string */\r\n public convertToString(value?: Primitives.Value): string | Promise<string> {\r\n if (value === undefined)\r\n return \"\";\r\n return value.toString();\r\n }\r\n\r\n /** Default implementation just calls convertToString with no options */\r\n public convertToStringWithOptions(value?: Primitives.Value, _options?: { [key: string]: any }): string | Promise<string> {\r\n return this.convertToString(value);\r\n }\r\n\r\n /** Converts a string to a primitive value */\r\n public convertFromString(_value: string): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\r\n return undefined;\r\n }\r\n\r\n /** Default implementation just calls convertFromString with no options */\r\n public convertFromStringWithOptions(value: string, _options?: { [key: string]: any }): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\r\n return this.convertFromString(value);\r\n }\r\n\r\n /** Converts a value associated with a property description to a string */\r\n public convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Value): string | Promise<string> {\r\n return this.convertToStringWithOptions(value, propertyDescription.converter?.options);\r\n }\r\n\r\n /** Converts a string with a property record to a property value */\r\n public async convertFromStringToPropertyValue(value: string, propertyRecord?: PropertyRecord): Promise<PropertyValue> {\r\n const converterOptions = (propertyRecord && propertyRecord.property.converter) ? propertyRecord.property.converter.options : undefined;\r\n const stringValue = await this.convertFromStringWithOptions(value, converterOptions);\r\n const propertyValue: PrimitiveValue = {\r\n valueFormat: PropertyValueFormat.Primitive,\r\n value: stringValue,\r\n displayValue: \"\",\r\n };\r\n return propertyValue;\r\n }\r\n\r\n /** Sort function for two primitive values */\r\n public abstract sortCompare(valueA: Primitives.Value, valueB: Primitives.Value, _ignoreCase?: boolean): number;\r\n\r\n /** Determines if two primitive values are equal */\r\n public isEqualTo(valueA: Primitives.Value, valueB: Primitives.Value): boolean {\r\n return valueA === valueB;\r\n }\r\n\r\n /** Determines if two primitive values are not equal */\r\n public isNotEqualTo(valueA: Primitives.Value, valueB: Primitives.Value): boolean {\r\n return valueA !== valueB;\r\n }\r\n\r\n /** Determines if a primitive value is null or undefined */\r\n public isNull(value: Primitives.Value): boolean {\r\n return value === null || value === undefined;\r\n }\r\n\r\n /** Determines if a primitive value is not null or not undefined */\r\n public isNotNull(value: Primitives.Value): boolean {\r\n return value !== null && value !== undefined;\r\n }\r\n\r\n /** Determines if the converter is for a string type */\r\n public get isStringType(): boolean { return false; }\r\n /** Determines if the converter is for a numeric type */\r\n public get isLessGreaterType(): boolean { return false; }\r\n /** Determines if the converter is for a boolean type */\r\n public get isBooleanType(): boolean { return false; }\r\n /** Determines if the converter is for a nullable type */\r\n public get isNullableType(): boolean { return true; }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeConverterManager.js","sourceRoot":"","sources":["../../../../src/components-react/converters/TypeConverterManager.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;;GAGG;AACH,MAAa,oBAAoB;IAIvB,MAAM,CAAC,oBAAoB,CAAC,QAAgB,EAAE,aAAsB;QAC1E,IAAI,iBAAiB,GAAG,QAAQ,CAAC;QACjC,IAAI,aAAa;YACf,iBAAiB,IAAI,IAAI,aAAa,EAAE,CAAC;QAC3C,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,SAAkC,EAAE,aAAsB;QAC1G,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE7F,IAAI,oBAAoB,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;YACtE,MAAM,eAAe,GAAG,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7F,MAAM,KAAK,CAAC,uDAAuD,QAAQ,4BAA4B,eAAe,GAAG,CAAC,CAAC;SAC5H;QAED,MAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,QAAgB,EAAE,aAAsB;QACxE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE7F,uBAAuB;QACvB,IAAI,oBAAoB,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;YACtE,OAAO,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SAC5D;IACH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,QAAgB,EAAE,aAAsB;QACjE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE7F,IAAI,oBAAoB,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACpE,OAAO,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAE7D,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,EAAE;YAC/C,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC,CAAC,yDAAyD;YACvI,oBAAoB,CAAC,qBAAqB,GAAG,IAAI,mBAAmB,EAAE,CAAC;SACxE;QACD,OAAO,oBAAoB,CAAC,qBAAqB,CAAC;IACpD,CAAC;;AA1Cc,gCAAW,GAAyC,EAAE,CAAC;AAD3D,oDAAoB","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 TypeConverters\n */\n\nimport type { TypeConverter } from \"./TypeConverter\";\n\n/**\n * Manages Type Converters. Type Converters are registered with and obtained from the manager.\n * @public\n */\nexport class TypeConverterManager {\n private static _converters: { [index: string]: (TypeConverter) } = {};\n private static _defaultTypeConverter: TypeConverter;\n\n private static getFullConverterName(typename: string, converterName?: string): string {\n let fullConverterName = typename;\n if (converterName)\n fullConverterName += `:${converterName}`;\n return fullConverterName;\n }\n\n public static registerConverter(typename: string, converter: new () => TypeConverter, converterName?: string): void {\n const fullConverterName = TypeConverterManager.getFullConverterName(typename, converterName);\n\n if (TypeConverterManager._converters.hasOwnProperty(fullConverterName)) {\n const nameOfConverter = TypeConverterManager._converters[fullConverterName].constructor.name;\n throw Error(`TypeConverterManager.registerConverter error: type '${typename}' already registered to '${nameOfConverter}'`);\n }\n\n const instance = new converter();\n TypeConverterManager._converters[fullConverterName] = instance;\n }\n\n public static unregisterConverter(typename: string, converterName?: string): void {\n const fullConverterName = TypeConverterManager.getFullConverterName(typename, converterName);\n\n // istanbul ignore else\n if (TypeConverterManager._converters.hasOwnProperty(fullConverterName)) {\n delete TypeConverterManager._converters[fullConverterName];\n }\n }\n\n public static getConverter(typename: string, converterName?: string): TypeConverter {\n const fullConverterName = TypeConverterManager.getFullConverterName(typename, converterName);\n\n if (TypeConverterManager._converters.hasOwnProperty(fullConverterName))\n return TypeConverterManager._converters[fullConverterName];\n\n if (!TypeConverterManager._defaultTypeConverter) {\n const { StringTypeConverter } = require(\"../converters/StringTypeConverter\"); // eslint-disable-line @typescript-eslint/no-var-requires\n TypeConverterManager._defaultTypeConverter = new StringTypeConverter();\n }\n return TypeConverterManager._defaultTypeConverter;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TypeConverterManager.js","sourceRoot":"","sources":["../../../../src/components-react/converters/TypeConverterManager.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;;GAGG;AACH,MAAa,oBAAoB;IAIvB,MAAM,CAAC,oBAAoB,CAAC,QAAgB,EAAE,aAAsB;QAC1E,IAAI,iBAAiB,GAAG,QAAQ,CAAC;QACjC,IAAI,aAAa;YACf,iBAAiB,IAAI,IAAI,aAAa,EAAE,CAAC;QAC3C,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,SAAkC,EAAE,aAAsB;QAC1G,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE7F,IAAI,oBAAoB,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;YACtE,MAAM,eAAe,GAAG,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7F,MAAM,KAAK,CAAC,uDAAuD,QAAQ,4BAA4B,eAAe,GAAG,CAAC,CAAC;SAC5H;QAED,MAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,QAAgB,EAAE,aAAsB;QACxE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE7F,uBAAuB;QACvB,IAAI,oBAAoB,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;YACtE,OAAO,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SAC5D;IACH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,QAAgB,EAAE,aAAsB;QACjE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE7F,IAAI,oBAAoB,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACpE,OAAO,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAE7D,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,EAAE;YAC/C,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC,CAAC,yDAAyD;YACvI,oBAAoB,CAAC,qBAAqB,GAAG,IAAI,mBAAmB,EAAE,CAAC;SACxE;QACD,OAAO,oBAAoB,CAAC,qBAAqB,CAAC;IACpD,CAAC;;AA1Cc,gCAAW,GAAyC,EAAE,CAAC;AAD3D,oDAAoB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport type { TypeConverter } from \"./TypeConverter\";\r\n\r\n/**\r\n * Manages Type Converters. Type Converters are registered with and obtained from the manager.\r\n * @public\r\n */\r\nexport class TypeConverterManager {\r\n private static _converters: { [index: string]: (TypeConverter) } = {};\r\n private static _defaultTypeConverter: TypeConverter;\r\n\r\n private static getFullConverterName(typename: string, converterName?: string): string {\r\n let fullConverterName = typename;\r\n if (converterName)\r\n fullConverterName += `:${converterName}`;\r\n return fullConverterName;\r\n }\r\n\r\n public static registerConverter(typename: string, converter: new () => TypeConverter, converterName?: string): void {\r\n const fullConverterName = TypeConverterManager.getFullConverterName(typename, converterName);\r\n\r\n if (TypeConverterManager._converters.hasOwnProperty(fullConverterName)) {\r\n const nameOfConverter = TypeConverterManager._converters[fullConverterName].constructor.name;\r\n throw Error(`TypeConverterManager.registerConverter error: type '${typename}' already registered to '${nameOfConverter}'`);\r\n }\r\n\r\n const instance = new converter();\r\n TypeConverterManager._converters[fullConverterName] = instance;\r\n }\r\n\r\n public static unregisterConverter(typename: string, converterName?: string): void {\r\n const fullConverterName = TypeConverterManager.getFullConverterName(typename, converterName);\r\n\r\n // istanbul ignore else\r\n if (TypeConverterManager._converters.hasOwnProperty(fullConverterName)) {\r\n delete TypeConverterManager._converters[fullConverterName];\r\n }\r\n }\r\n\r\n public static getConverter(typename: string, converterName?: string): TypeConverter {\r\n const fullConverterName = TypeConverterManager.getFullConverterName(typename, converterName);\r\n\r\n if (TypeConverterManager._converters.hasOwnProperty(fullConverterName))\r\n return TypeConverterManager._converters[fullConverterName];\r\n\r\n if (!TypeConverterManager._defaultTypeConverter) {\r\n const { StringTypeConverter } = require(\"../converters/StringTypeConverter\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n TypeConverterManager._defaultTypeConverter = new StringTypeConverter();\r\n }\r\n return TypeConverterManager._defaultTypeConverter;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvertedTypes.js","sourceRoot":"","sources":["../../../../../src/components-react/converters/valuetypes/ConvertedTypes.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 TypeConverters\n */\n\nimport type { Id64String } from \"@itwin/core-bentley\";\n\n/** Converted Primitives namespace\n * @public\n */\nexport namespace ConvertedPrimitives {\n\n /** Interface for 2d Point\n * @public\n */\n export interface Point2d {\n x: number;\n y: number;\n }\n\n /** Interface for 3d Point\n * @public\n */\n export interface Point3d extends Point2d {\n z: number;\n }\n\n /** Type definition for 2d or 3d Point\n * @public\n */\n export type Point = Point2d | Point3d;\n\n /** Type definition for Value\n * @public\n */\n export type Value = boolean | number | string | Date | Point | Id64String;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ConvertedTypes.js","sourceRoot":"","sources":["../../../../../src/components-react/converters/valuetypes/ConvertedTypes.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport type { Id64String } from \"@itwin/core-bentley\";\r\n\r\n/** Converted Primitives namespace\r\n * @public\r\n */\r\nexport namespace ConvertedPrimitives {\r\n\r\n /** Interface for 2d Point\r\n * @public\r\n */\r\n export interface Point2d {\r\n x: number;\r\n y: number;\r\n }\r\n\r\n /** Interface for 3d Point\r\n * @public\r\n */\r\n export interface Point3d extends Point2d {\r\n z: number;\r\n }\r\n\r\n /** Type definition for 2d or 3d Point\r\n * @public\r\n */\r\n export type Point = Point2d | Point3d;\r\n\r\n /** Type definition for Value\r\n * @public\r\n */\r\n export type Value = boolean | number | string | Date | Point | Id64String;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateField.js","sourceRoot":"","sources":["../../../../src/components-react/datepicker/DateField.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/** @packageDocumentation\n * @module Date\n */\n\nimport \"./DateField.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport type { DateFormatter} from \"@itwin/appui-abstract\";\nimport { AlternateDateFormats, TimeDisplay } from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { Logger } from \"@itwin/core-bentley\";\n\n/** Props for [[DateField]] Component.\n * @internal\n */\nexport interface DateFieldProps extends CommonProps {\n /** Defines initial date and time for component. */\n initialDate: Date;\n /** Function to call when the date or time is changed. */\n onDateChange?: (day: Date) => void;\n /** Optional value to define if edit field allows editing. If a DateFormatter is provided\n * it must provide a parseData function or the field will be read only no matter the setting of this value. */\n readOnly?: boolean;\n /** Optional date formatter that produces an explicit date display */\n dateFormatter?: DateFormatter;\n /** This property has two purposes, the first is specify that the display of time is desired and the second is to define the format of the time display. */\n timeDisplay?: TimeDisplay;\n}\n\n/** Function to format a Date object that is used in control, type editor, and type converter\n * to produce a consistent formatted Date string.\n * @internal\n */\nexport function formatInputDate(inputDate: Date, timeDisplay?: TimeDisplay, customFormatter?: DateFormatter, alternateDateFormat?: AlternateDateFormats): string | undefined {\n if (customFormatter) {\n return customFormatter.formateDate(inputDate);\n }\n\n if (alternateDateFormat) {\n switch (alternateDateFormat) {\n case AlternateDateFormats.IsoDateTime:\n return inputDate.toISOString();\n case AlternateDateFormats.IsoShort:\n return inputDate.toISOString().slice(0, 10);\n case AlternateDateFormats.UtcDateTime:\n return inputDate.toUTCString().slice(5);\n case AlternateDateFormats.UtcShort:\n return inputDate.toUTCString().slice(5, 16);\n case AlternateDateFormats.UtcDateTimeWithDay:\n return inputDate.toUTCString();\n case AlternateDateFormats.UtcShortWithDay:\n return inputDate.toUTCString().slice(0, 16);\n }\n } else {\n const dateString = inputDate.toLocaleDateString(undefined, { day: \"2-digit\", month: \"2-digit\", year: \"numeric\" });\n let timeString: string = \"\";\n\n if (timeDisplay) {\n switch (timeDisplay) {\n case TimeDisplay.H12MC:\n timeString = inputDate.toLocaleTimeString(undefined, { hour12: true, hour: \"2-digit\", minute: \"2-digit\" });\n break;\n case TimeDisplay.H12MSC:\n timeString = (inputDate.toLocaleTimeString(undefined, { hour12: true, hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" }));\n break;\n case TimeDisplay.H24M:\n timeString = (inputDate.toLocaleTimeString(undefined, { hour12: false, hour: \"2-digit\", minute: \"2-digit\" }));\n // istanbul ignore next\n if (timeString === \"24:00\")\n timeString = \"00:00\";\n break;\n case TimeDisplay.H24MS:\n timeString = (inputDate.toLocaleTimeString(undefined, { hour12: false, hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" }));\n // istanbul ignore next\n if (timeString === \"24:00:00\")\n timeString = \"00:00:00\";\n break;\n }\n }\n return timeString.length ? `${dateString}, ${timeString}` : dateString;\n }\n}\n\n/** Date input component. This component is typically used by the [[DatePickerPopupButton]] to display and edit date and time.\n * @internal\n */\nexport function DateField({ initialDate, onDateChange, readOnly, dateFormatter, timeDisplay, style, className }: DateFieldProps) {\n const initialDateRef = React.useRef(initialDate);\n const [hasBadInput, setHasBadInput] = React.useState(false);\n const [inputValue, setInputValue] = React.useState(formatInputDate(initialDate, timeDisplay, dateFormatter));\n\n // See if new initialDate props have changed since component mounted\n React.useEffect(() => {\n // istanbul ignore else\n if (initialDate.getTime() !== initialDateRef.current.getTime()) {\n initialDateRef.current = initialDate;\n }\n setInputValue(formatInputDate(initialDate, timeDisplay, dateFormatter));\n }, [initialDate, dateFormatter, timeDisplay]);\n\n const handleInputChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.currentTarget.value);\n }, []);\n\n const parseDate = React.useCallback((dateString: string) => {\n try {\n if (dateFormatter && dateFormatter.parseDate)\n return dateFormatter.parseDate(dateString);\n\n const newDateValue = Date.parse(dateString);\n // istanbul ignore else\n if (newDateValue)\n return new Date(newDateValue);\n } catch (_error) /* istanbul ignore next */ {\n Logger.logInfo(\"DateField\", `Encountered error parsing input value '${dateString}' as a date.`);\n return undefined;\n }\n // istanbul ignore next\n return undefined;\n }, [dateFormatter]);\n\n const updateInputDate = React.useCallback((dateString: string) => {\n try {\n const newDateValue = parseDate(dateString);\n if (newDateValue) {\n const newDate = new Date(newDateValue);\n onDateChange && onDateChange(newDate);\n setHasBadInput(false);\n } else {\n setHasBadInput(true);\n }\n } catch (_error) {\n // istanbul ignore next\n setHasBadInput(true);\n }\n }, [onDateChange, parseDate]);\n\n const handleOnBlur = React.useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n updateInputDate(event.target.value);\n }, [updateInputDate]);\n\n function onInputKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n // istanbul ignore else\n if (event.key === \"Enter\") {\n updateInputDate(event.currentTarget.value);\n event.preventDefault();\n }\n }\n const classNames = classnames(className, \"components-date-input\", hasBadInput && \"components-date-has-error\");\n return <Input data-testid=\"components-date-input\" style={style} className={classNames} onKeyDown={onInputKeyDown} onBlur={handleOnBlur}\n onChange={handleInputChange} value={inputValue} disabled={readOnly || (dateFormatter && !(dateFormatter.parseDate))} size=\"small\" />;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DateField.js","sourceRoot":"","sources":["../../../../src/components-react/datepicker/DateField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Date\r\n */\r\n\r\nimport \"./DateField.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport type { DateFormatter} from \"@itwin/appui-abstract\";\r\nimport { AlternateDateFormats, TimeDisplay } from \"@itwin/appui-abstract\";\r\nimport type { CommonProps } from \"@itwin/core-react\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\n\r\n/** Props for [[DateField]] Component.\r\n * @internal\r\n */\r\nexport interface DateFieldProps extends CommonProps {\r\n /** Defines initial date and time for component. */\r\n initialDate: Date;\r\n /** Function to call when the date or time is changed. */\r\n onDateChange?: (day: Date) => void;\r\n /** Optional value to define if edit field allows editing. If a DateFormatter is provided\r\n * it must provide a parseData function or the field will be read only no matter the setting of this value. */\r\n readOnly?: boolean;\r\n /** Optional date formatter that produces an explicit date display */\r\n dateFormatter?: DateFormatter;\r\n /** This property has two purposes, the first is specify that the display of time is desired and the second is to define the format of the time display. */\r\n timeDisplay?: TimeDisplay;\r\n}\r\n\r\n/** Function to format a Date object that is used in control, type editor, and type converter\r\n * to produce a consistent formatted Date string.\r\n * @internal\r\n */\r\nexport function formatInputDate(inputDate: Date, timeDisplay?: TimeDisplay, customFormatter?: DateFormatter, alternateDateFormat?: AlternateDateFormats): string | undefined {\r\n if (customFormatter) {\r\n return customFormatter.formateDate(inputDate);\r\n }\r\n\r\n if (alternateDateFormat) {\r\n switch (alternateDateFormat) {\r\n case AlternateDateFormats.IsoDateTime:\r\n return inputDate.toISOString();\r\n case AlternateDateFormats.IsoShort:\r\n return inputDate.toISOString().slice(0, 10);\r\n case AlternateDateFormats.UtcDateTime:\r\n return inputDate.toUTCString().slice(5);\r\n case AlternateDateFormats.UtcShort:\r\n return inputDate.toUTCString().slice(5, 16);\r\n case AlternateDateFormats.UtcDateTimeWithDay:\r\n return inputDate.toUTCString();\r\n case AlternateDateFormats.UtcShortWithDay:\r\n return inputDate.toUTCString().slice(0, 16);\r\n }\r\n } else {\r\n const dateString = inputDate.toLocaleDateString(undefined, { day: \"2-digit\", month: \"2-digit\", year: \"numeric\" });\r\n let timeString: string = \"\";\r\n\r\n if (timeDisplay) {\r\n switch (timeDisplay) {\r\n case TimeDisplay.H12MC:\r\n timeString = inputDate.toLocaleTimeString(undefined, { hour12: true, hour: \"2-digit\", minute: \"2-digit\" });\r\n break;\r\n case TimeDisplay.H12MSC:\r\n timeString = (inputDate.toLocaleTimeString(undefined, { hour12: true, hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" }));\r\n break;\r\n case TimeDisplay.H24M:\r\n timeString = (inputDate.toLocaleTimeString(undefined, { hour12: false, hour: \"2-digit\", minute: \"2-digit\" }));\r\n // istanbul ignore next\r\n if (timeString === \"24:00\")\r\n timeString = \"00:00\";\r\n break;\r\n case TimeDisplay.H24MS:\r\n timeString = (inputDate.toLocaleTimeString(undefined, { hour12: false, hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" }));\r\n // istanbul ignore next\r\n if (timeString === \"24:00:00\")\r\n timeString = \"00:00:00\";\r\n break;\r\n }\r\n }\r\n return timeString.length ? `${dateString}, ${timeString}` : dateString;\r\n }\r\n}\r\n\r\n/** Date input component. This component is typically used by the [[DatePickerPopupButton]] to display and edit date and time.\r\n * @internal\r\n */\r\nexport function DateField({ initialDate, onDateChange, readOnly, dateFormatter, timeDisplay, style, className }: DateFieldProps) {\r\n const initialDateRef = React.useRef(initialDate);\r\n const [hasBadInput, setHasBadInput] = React.useState(false);\r\n const [inputValue, setInputValue] = React.useState(formatInputDate(initialDate, timeDisplay, dateFormatter));\r\n\r\n // See if new initialDate props have changed since component mounted\r\n React.useEffect(() => {\r\n // istanbul ignore else\r\n if (initialDate.getTime() !== initialDateRef.current.getTime()) {\r\n initialDateRef.current = initialDate;\r\n }\r\n setInputValue(formatInputDate(initialDate, timeDisplay, dateFormatter));\r\n }, [initialDate, dateFormatter, timeDisplay]);\r\n\r\n const handleInputChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n setInputValue(event.currentTarget.value);\r\n }, []);\r\n\r\n const parseDate = React.useCallback((dateString: string) => {\r\n try {\r\n if (dateFormatter && dateFormatter.parseDate)\r\n return dateFormatter.parseDate(dateString);\r\n\r\n const newDateValue = Date.parse(dateString);\r\n // istanbul ignore else\r\n if (newDateValue)\r\n return new Date(newDateValue);\r\n } catch (_error) /* istanbul ignore next */ {\r\n Logger.logInfo(\"DateField\", `Encountered error parsing input value '${dateString}' as a date.`);\r\n return undefined;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }, [dateFormatter]);\r\n\r\n const updateInputDate = React.useCallback((dateString: string) => {\r\n try {\r\n const newDateValue = parseDate(dateString);\r\n if (newDateValue) {\r\n const newDate = new Date(newDateValue);\r\n onDateChange && onDateChange(newDate);\r\n setHasBadInput(false);\r\n } else {\r\n setHasBadInput(true);\r\n }\r\n } catch (_error) {\r\n // istanbul ignore next\r\n setHasBadInput(true);\r\n }\r\n }, [onDateChange, parseDate]);\r\n\r\n const handleOnBlur = React.useCallback((event: React.FocusEvent<HTMLInputElement>) => {\r\n updateInputDate(event.target.value);\r\n }, [updateInputDate]);\r\n\r\n function onInputKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\r\n // istanbul ignore else\r\n if (event.key === \"Enter\") {\r\n updateInputDate(event.currentTarget.value);\r\n event.preventDefault();\r\n }\r\n }\r\n const classNames = classnames(className, \"components-date-input\", hasBadInput && \"components-date-has-error\");\r\n return <Input data-testid=\"components-date-input\" style={style} className={classNames} onKeyDown={onInputKeyDown} onBlur={handleOnBlur}\r\n onChange={handleInputChange} value={inputValue} disabled={readOnly || (dateFormatter && !(dateFormatter.parseDate))} size=\"small\" />;\r\n}\r\n"]}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
|
-
@import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
|
|
7
|
-
|
|
8
|
-
.components-date-input {
|
|
9
|
-
width: auto;
|
|
10
|
-
|
|
11
|
-
&.components-date-has-error {
|
|
12
|
-
color: var(--iui-color-text-negative);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
&.iui-input {
|
|
16
|
-
padding: $uicore-iui-input-padding;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
&.iui-input[disabled] {
|
|
20
|
-
color: var(--buic-foreground-body);
|
|
21
|
-
opacity: 0.65;
|
|
22
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
|
+
@import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
|
|
7
|
+
|
|
8
|
+
.components-date-input {
|
|
9
|
+
width: auto;
|
|
10
|
+
|
|
11
|
+
&.components-date-has-error {
|
|
12
|
+
color: var(--iui-color-text-negative);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&.iui-input {
|
|
16
|
+
padding: $uicore-iui-input-padding;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&.iui-input[disabled] {
|
|
20
|
+
color: var(--buic-foreground-body);
|
|
21
|
+
opacity: 0.65;
|
|
22
|
+
}
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../../src/components-react/datepicker/DatePicker.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/** @packageDocumentation\n * @module Date\n */\n\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { SpecialKey } from \"@itwin/appui-abstract\";\nimport { UiComponents } from \"../UiComponents\";\nimport { Icon } from \"@itwin/core-react\";\nimport { SvgChevronLeft, SvgChevronRight } from \"@itwin/itwinui-icons-react\";\n\nimport \"./DatePicker.scss\";\n\nfunction isSameDay(a: Date, b: Date) {\n return (\n a &&\n b &&\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\n/**\n * Props for [[DatePicker]] component.\n * @alpha\n */\nexport interface DatePickerProps {\n /** defines both date and time */\n selected: Date;\n /** function to call when date or time has changed */\n onDateChange?: (day: Date) => void;\n /** show focus outlines, useful for keyboard navigation */\n showFocusOutline?: boolean;\n}\n\n/** DatePicker component. Show a month selector and a day calendar to select a specific date.\n * @alpha\n */\nexport function DatePicker(props: DatePickerProps) {\n const previousMonthLabel = React.useRef(UiComponents.localization.getLocalizedString(\"UiComponents:datepicker.previousMonth\"));\n const nextMonthLabel = React.useRef(UiComponents.localization.getLocalizedString(\"UiComponents:datepicker.nextMonth\"));\n const monthsLong = React.useRef([\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.january\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.february\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.march\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.april\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.may\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.june\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.july\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.august\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.september\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.october\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.november\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.december\"),\n ]);\n\n const daysLong = React.useRef([\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.sunday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.monday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.tuesday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.wednesday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.thursday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.friday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.saturday\"),\n ]);\n\n const daysShort = React.useRef([\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.sunday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.monday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.tuesday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.wednesday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.thursday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.friday\"),\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.saturday\"),\n ]);\n\n const [selectedDay, setSelectedDay] = React.useState(new Date(props.selected.getTime()));\n const [displayedMonthIndex, setDisplayedMonthIndex] = React.useState(selectedDay.getMonth());\n const [displayedYear, setDisplayedYear] = React.useState(selectedDay.getFullYear());\n const [focusedDay, setFocusedDay] = React.useState(selectedDay);\n React.useEffect(() => {\n const newSelectedDay = new Date(props.selected);\n setSelectedDay(new Date(props.selected));\n setDisplayedMonthIndex(newSelectedDay.getMonth());\n setDisplayedYear(newSelectedDay.getFullYear());\n setFocusedDay(newSelectedDay);\n }, [props.selected]);\n const days = React.useMemo(() => {\n const msFirstDayOfMonth = new Date(displayedYear, displayedMonthIndex, 1).getTime();\n let offsetToFirst = new Date(msFirstDayOfMonth).getDay();\n if (0 === offsetToFirst)\n offsetToFirst = 7;\n\n const daysInMonth: Date[] = [];\n // generate 6 weeks of dates\n for (let i = 0; i < 42; i++) {\n const adjustedDay = 1 + i - offsetToFirst;\n daysInMonth.push(new Date(displayedYear, displayedMonthIndex, adjustedDay));\n }\n return daysInMonth;\n }, [displayedMonthIndex, displayedYear]);\n\n const weeks = React.useMemo(() => {\n const weeksInMonth = [];\n const weekCount = Math.ceil(days.length / 7);\n for (let i = 0; i < weekCount; i++) {\n weeksInMonth.push(days.slice(i * 7, (i + 1) * 7));\n }\n return weeksInMonth;\n }, [days]);\n\n const setMonthAndYear = React.useCallback((newMonth: number, newYear: number) => {\n setDisplayedMonthIndex(newMonth);\n setDisplayedYear(newYear);\n if (selectedDay.getFullYear() === newYear && selectedDay.getMonth() === newMonth) {\n setFocusedDay(new Date(selectedDay.getTime()));\n } else {\n const newFocusDay = new Date(focusedDay.getTime());\n newFocusDay.setFullYear(newYear, newMonth, 1);\n setFocusedDay(newFocusDay);\n }\n }, [focusedDay, selectedDay]);\n\n const handleMoveToPreviousMonth = React.useCallback(() => {\n const newMonth = displayedMonthIndex !== 0 ? displayedMonthIndex - 1 : 11;\n const newYear = displayedMonthIndex !== 0 ? displayedYear : displayedYear - 1;\n setMonthAndYear(newMonth, newYear);\n }, [displayedMonthIndex, displayedYear, setMonthAndYear]);\n\n const handleMoveToNextMonth = React.useCallback(() => {\n const newMonth = displayedMonthIndex !== 11 ? displayedMonthIndex + 1 : 0;\n const newYear = displayedMonthIndex !== 11 ? displayedYear : displayedYear + 1;\n setMonthAndYear(newMonth, newYear);\n }, [displayedMonthIndex, displayedYear, setMonthAndYear]);\n\n // when invoked, it will return another function which can be used for the onClick React listener.\n const handleOnDayChange = React.useCallback((day: Date) => () => {\n setSelectedDay(day);\n setFocusedDay(day);\n props.onDateChange && props.onDateChange(day);\n }, [props]);\n\n const handleCalendarKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLUListElement>) => {\n if (event.key === SpecialKey.ArrowDown) {\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\n if ((focusedDayIndex + 7) > 41)\n setFocusedDay(days[focusedDayIndex % 7]);\n else\n setFocusedDay(days[focusedDayIndex + 7]);\n event.preventDefault();\n }\n if (event.key === SpecialKey.ArrowUp) {\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\n if ((focusedDayIndex - 7) < 0)\n setFocusedDay(days[(focusedDayIndex % 7) + 35]);\n else\n setFocusedDay(days[focusedDayIndex - 7]);\n event.preventDefault();\n }\n if (event.key === SpecialKey.ArrowLeft) {\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\n // istanbul ignore else\n if ((focusedDayIndex - 1) >= 0)\n setFocusedDay(days[focusedDayIndex - 1]);\n event.preventDefault();\n }\n if (event.key === SpecialKey.ArrowRight) {\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\n // istanbul ignore else\n if ((focusedDayIndex + 1) <= 41)\n setFocusedDay(days[focusedDayIndex + 1]);\n event.preventDefault();\n }\n if (event.key === SpecialKey.Enter || event.key === SpecialKey.Space) {\n handleOnDayChange(focusedDay)(); // NB: immediately call returned handler function\n event.preventDefault();\n }\n }, [days, focusedDay, handleOnDayChange]);\n\n const previousButtonClass = classnames(\"components-previous-month\", props.showFocusOutline && \"showFocusOutline\");\n const nextButtonClass = classnames(\"components-next-month\", props.showFocusOutline && \"showFocusOutline\");\n const calendarClass = classnames(\"components-date-picker-calendar-month\", props.showFocusOutline && \"showFocusOutline\");\n\n return (\n <div className=\"components-date-picker-calendar\">\n <div className=\"components-date-picker-calendar-header-months\">\n <button className={previousButtonClass} title={previousMonthLabel.current} onClick={handleMoveToPreviousMonth}>\n <Icon iconSpec={<SvgChevronLeft />} />\n </button>\n <span className=\"components-month-year\">{monthsLong.current[displayedMonthIndex]} {displayedYear}</span>\n <button className={nextButtonClass} title={nextMonthLabel.current} onClick={handleMoveToNextMonth}>\n <Icon iconSpec={<SvgChevronRight />} />\n </button>\n </div>\n <div className=\"components-date-picker-calendar-header-weekdays\">\n {[0, 1, 2, 3, 4, 5, 6].map((dayOfWeek) =>\n <div key={`day-${dayOfWeek}`} className=\"components-date-picker-calendar-header-day-short\"\n title={daysLong.current[dayOfWeek]}><span>{daysShort.current[dayOfWeek]}</span></div>)}\n </div>\n <ul tabIndex={0} onKeyDown={handleCalendarKeyDown} data-testid=\"components-date-picker-calendar-list\" className={calendarClass} role=\"listbox\">\n {weeks.map((weekdays, weekIndex) => (\n <React.Fragment key={`week-${weekIndex}`}>\n {weekdays.map((day: Date, dayIndex: number) => {\n const isActive = selectedDay && day && isSameDay(selectedDay, day);\n const isFocused = focusedDay && day && isSameDay(focusedDay, day) && props.showFocusOutline;\n const isCurrentMonth = day.getMonth() === displayedMonthIndex;\n const classNames = classnames(\"components-date-picker-calendar-day\", isActive && \"selected\", !isCurrentMonth && \"notCurrentMonth\", isFocused && \"focused\");\n const dateValue = day.getDate();\n return (\n /* eslint-disable-next-line jsx-a11y/click-events-have-key-events */\n <li className={classNames} key={`${displayedYear}.${displayedMonthIndex}.day.${dayIndex}`}\n onClick={handleOnDayChange(day)} role=\"option\" aria-selected={isActive} data-value={day.getTime()}>\n <span>{dateValue}</span>\n </li>\n );\n })}\n </React.Fragment>)\n )}\n </ul>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../../src/components-react/datepicker/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Date\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { Icon } from \"@itwin/core-react\";\r\nimport { SvgChevronLeft, SvgChevronRight } from \"@itwin/itwinui-icons-react\";\r\n\r\nimport \"./DatePicker.scss\";\r\n\r\nfunction isSameDay(a: Date, b: Date) {\r\n return (\r\n a &&\r\n b &&\r\n a.getFullYear() === b.getFullYear() &&\r\n a.getMonth() === b.getMonth() &&\r\n a.getDate() === b.getDate()\r\n );\r\n}\r\n\r\n/**\r\n * Props for [[DatePicker]] component.\r\n * @alpha\r\n */\r\nexport interface DatePickerProps {\r\n /** defines both date and time */\r\n selected: Date;\r\n /** function to call when date or time has changed */\r\n onDateChange?: (day: Date) => void;\r\n /** show focus outlines, useful for keyboard navigation */\r\n showFocusOutline?: boolean;\r\n}\r\n\r\n/** DatePicker component. Show a month selector and a day calendar to select a specific date.\r\n * @alpha\r\n */\r\nexport function DatePicker(props: DatePickerProps) {\r\n const previousMonthLabel = React.useRef(UiComponents.localization.getLocalizedString(\"UiComponents:datepicker.previousMonth\"));\r\n const nextMonthLabel = React.useRef(UiComponents.localization.getLocalizedString(\"UiComponents:datepicker.nextMonth\"));\r\n const monthsLong = React.useRef([\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.january\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.february\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.march\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.april\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.may\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.june\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.july\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.august\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.september\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.october\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.november\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:month.long.december\"),\r\n ]);\r\n\r\n const daysLong = React.useRef([\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.sunday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.monday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.tuesday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.wednesday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.thursday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.friday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.long.saturday\"),\r\n ]);\r\n\r\n const daysShort = React.useRef([\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.sunday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.monday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.tuesday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.wednesday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.thursday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.friday\"),\r\n UiComponents.localization.getLocalizedString(\"UiComponents:days.short.saturday\"),\r\n ]);\r\n\r\n const [selectedDay, setSelectedDay] = React.useState(new Date(props.selected.getTime()));\r\n const [displayedMonthIndex, setDisplayedMonthIndex] = React.useState(selectedDay.getMonth());\r\n const [displayedYear, setDisplayedYear] = React.useState(selectedDay.getFullYear());\r\n const [focusedDay, setFocusedDay] = React.useState(selectedDay);\r\n React.useEffect(() => {\r\n const newSelectedDay = new Date(props.selected);\r\n setSelectedDay(new Date(props.selected));\r\n setDisplayedMonthIndex(newSelectedDay.getMonth());\r\n setDisplayedYear(newSelectedDay.getFullYear());\r\n setFocusedDay(newSelectedDay);\r\n }, [props.selected]);\r\n const days = React.useMemo(() => {\r\n const msFirstDayOfMonth = new Date(displayedYear, displayedMonthIndex, 1).getTime();\r\n let offsetToFirst = new Date(msFirstDayOfMonth).getDay();\r\n if (0 === offsetToFirst)\r\n offsetToFirst = 7;\r\n\r\n const daysInMonth: Date[] = [];\r\n // generate 6 weeks of dates\r\n for (let i = 0; i < 42; i++) {\r\n const adjustedDay = 1 + i - offsetToFirst;\r\n daysInMonth.push(new Date(displayedYear, displayedMonthIndex, adjustedDay));\r\n }\r\n return daysInMonth;\r\n }, [displayedMonthIndex, displayedYear]);\r\n\r\n const weeks = React.useMemo(() => {\r\n const weeksInMonth = [];\r\n const weekCount = Math.ceil(days.length / 7);\r\n for (let i = 0; i < weekCount; i++) {\r\n weeksInMonth.push(days.slice(i * 7, (i + 1) * 7));\r\n }\r\n return weeksInMonth;\r\n }, [days]);\r\n\r\n const setMonthAndYear = React.useCallback((newMonth: number, newYear: number) => {\r\n setDisplayedMonthIndex(newMonth);\r\n setDisplayedYear(newYear);\r\n if (selectedDay.getFullYear() === newYear && selectedDay.getMonth() === newMonth) {\r\n setFocusedDay(new Date(selectedDay.getTime()));\r\n } else {\r\n const newFocusDay = new Date(focusedDay.getTime());\r\n newFocusDay.setFullYear(newYear, newMonth, 1);\r\n setFocusedDay(newFocusDay);\r\n }\r\n }, [focusedDay, selectedDay]);\r\n\r\n const handleMoveToPreviousMonth = React.useCallback(() => {\r\n const newMonth = displayedMonthIndex !== 0 ? displayedMonthIndex - 1 : 11;\r\n const newYear = displayedMonthIndex !== 0 ? displayedYear : displayedYear - 1;\r\n setMonthAndYear(newMonth, newYear);\r\n }, [displayedMonthIndex, displayedYear, setMonthAndYear]);\r\n\r\n const handleMoveToNextMonth = React.useCallback(() => {\r\n const newMonth = displayedMonthIndex !== 11 ? displayedMonthIndex + 1 : 0;\r\n const newYear = displayedMonthIndex !== 11 ? displayedYear : displayedYear + 1;\r\n setMonthAndYear(newMonth, newYear);\r\n }, [displayedMonthIndex, displayedYear, setMonthAndYear]);\r\n\r\n // when invoked, it will return another function which can be used for the onClick React listener.\r\n const handleOnDayChange = React.useCallback((day: Date) => () => {\r\n setSelectedDay(day);\r\n setFocusedDay(day);\r\n props.onDateChange && props.onDateChange(day);\r\n }, [props]);\r\n\r\n const handleCalendarKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLUListElement>) => {\r\n if (event.key === SpecialKey.ArrowDown) {\r\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\r\n if ((focusedDayIndex + 7) > 41)\r\n setFocusedDay(days[focusedDayIndex % 7]);\r\n else\r\n setFocusedDay(days[focusedDayIndex + 7]);\r\n event.preventDefault();\r\n }\r\n if (event.key === SpecialKey.ArrowUp) {\r\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\r\n if ((focusedDayIndex - 7) < 0)\r\n setFocusedDay(days[(focusedDayIndex % 7) + 35]);\r\n else\r\n setFocusedDay(days[focusedDayIndex - 7]);\r\n event.preventDefault();\r\n }\r\n if (event.key === SpecialKey.ArrowLeft) {\r\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\r\n // istanbul ignore else\r\n if ((focusedDayIndex - 1) >= 0)\r\n setFocusedDay(days[focusedDayIndex - 1]);\r\n event.preventDefault();\r\n }\r\n if (event.key === SpecialKey.ArrowRight) {\r\n const focusedDayIndex = days.findIndex((day) => isSameDay(day, focusedDay));\r\n // istanbul ignore else\r\n if ((focusedDayIndex + 1) <= 41)\r\n setFocusedDay(days[focusedDayIndex + 1]);\r\n event.preventDefault();\r\n }\r\n if (event.key === SpecialKey.Enter || event.key === SpecialKey.Space) {\r\n handleOnDayChange(focusedDay)(); // NB: immediately call returned handler function\r\n event.preventDefault();\r\n }\r\n }, [days, focusedDay, handleOnDayChange]);\r\n\r\n const previousButtonClass = classnames(\"components-previous-month\", props.showFocusOutline && \"showFocusOutline\");\r\n const nextButtonClass = classnames(\"components-next-month\", props.showFocusOutline && \"showFocusOutline\");\r\n const calendarClass = classnames(\"components-date-picker-calendar-month\", props.showFocusOutline && \"showFocusOutline\");\r\n\r\n return (\r\n <div className=\"components-date-picker-calendar\">\r\n <div className=\"components-date-picker-calendar-header-months\">\r\n <button className={previousButtonClass} title={previousMonthLabel.current} onClick={handleMoveToPreviousMonth}>\r\n <Icon iconSpec={<SvgChevronLeft />} />\r\n </button>\r\n <span className=\"components-month-year\">{monthsLong.current[displayedMonthIndex]} {displayedYear}</span>\r\n <button className={nextButtonClass} title={nextMonthLabel.current} onClick={handleMoveToNextMonth}>\r\n <Icon iconSpec={<SvgChevronRight />} />\r\n </button>\r\n </div>\r\n <div className=\"components-date-picker-calendar-header-weekdays\">\r\n {[0, 1, 2, 3, 4, 5, 6].map((dayOfWeek) =>\r\n <div key={`day-${dayOfWeek}`} className=\"components-date-picker-calendar-header-day-short\"\r\n title={daysLong.current[dayOfWeek]}><span>{daysShort.current[dayOfWeek]}</span></div>)}\r\n </div>\r\n <ul tabIndex={0} onKeyDown={handleCalendarKeyDown} data-testid=\"components-date-picker-calendar-list\" className={calendarClass} role=\"listbox\">\r\n {weeks.map((weekdays, weekIndex) => (\r\n <React.Fragment key={`week-${weekIndex}`}>\r\n {weekdays.map((day: Date, dayIndex: number) => {\r\n const isActive = selectedDay && day && isSameDay(selectedDay, day);\r\n const isFocused = focusedDay && day && isSameDay(focusedDay, day) && props.showFocusOutline;\r\n const isCurrentMonth = day.getMonth() === displayedMonthIndex;\r\n const classNames = classnames(\"components-date-picker-calendar-day\", isActive && \"selected\", !isCurrentMonth && \"notCurrentMonth\", isFocused && \"focused\");\r\n const dateValue = day.getDate();\r\n return (\r\n /* eslint-disable-next-line jsx-a11y/click-events-have-key-events */\r\n <li className={classNames} key={`${displayedYear}.${displayedMonthIndex}.day.${dayIndex}`}\r\n onClick={handleOnDayChange(day)} role=\"option\" aria-selected={isActive} data-value={day.getTime()}>\r\n <span>{dateValue}</span>\r\n </li>\r\n );\r\n })}\r\n </React.Fragment>)\r\n )}\r\n </ul>\r\n </div>\r\n );\r\n}\r\n"]}
|