UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

70 lines 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NavigationPropertyTargetEditor = exports.NavigationPropertyEditor = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ const react_1 = require("react"); const components_react_1 = require("@itwin/components-react"); const NavigationPropertyTargetSelector_js_1 = require("../inputs/NavigationPropertyTargetSelector.js"); const NavigationPropertyEditorContext_js_1 = require("./NavigationPropertyEditorContext.js"); /** * Editor for navigation properties. * * **Note:** Should be used inside [[navigationPropertyEditorContext]]. * @internal */ // eslint-disable-next-line @typescript-eslint/no-deprecated class NavigationPropertyEditor extends components_react_1.PropertyEditorBase { /* v8 ignore start -- @preserve */ get containerHandlesEnter() { return false; } get reactNode() { return (0, jsx_runtime_1.jsx)(NavigationPropertyTargetEditor, {}); } } exports.NavigationPropertyEditor = NavigationPropertyEditor; /** * Component that renders navigation property target selector for navigation property value editing. * * **Note:** Should be used inside [[navigationPropertyEditorContext]]. * @internal */ // eslint-disable-next-line @typescript-eslint/no-deprecated class NavigationPropertyTargetEditor extends react_1.PureComponent { _ref = (0, react_1.createRef)(); /* v8 ignore start -- @preserve */ async getPropertyValue() { return this._ref.current?.getValue(); } get htmlElement() { return this._ref.current?.htmlElement ?? null; } get hasFocus() { if (!this._ref.current?.htmlElement || !document.activeElement) { return false; } return this._ref.current.htmlElement.contains(document.activeElement); } /* v8 ignore stop -- @preserve */ render() { return (0, jsx_runtime_1.jsx)(NavigationPropertyTargetEditorInner, { ref: this._ref, ...this.props }); } } exports.NavigationPropertyTargetEditor = NavigationPropertyTargetEditor; // eslint-disable-next-line @typescript-eslint/no-deprecated const NavigationPropertyTargetEditorInner = (0, react_1.forwardRef)((props, ref) => { const context = (0, NavigationPropertyEditorContext_js_1.useNavigationPropertyEditorContext)(); if (!props.propertyRecord) { return null; } if (!context) { return (0, jsx_runtime_1.jsx)(NavigationPropertyTargetSelector_js_1.ReadonlyNavigationPropertyTarget, { record: props.propertyRecord }); } return ((0, jsx_runtime_1.jsx)(NavigationPropertyTargetSelector_js_1.NavigationPropertyTargetSelector, { ...props, ref: ref, imodel: context.imodel, getNavigationPropertyInfo: context.getNavigationPropertyInfo, propertyRecord: props.propertyRecord })); }); NavigationPropertyTargetEditorInner.displayName = "NavigationPropertyTargetEditorInner"; //# sourceMappingURL=NavigationPropertyEditor.js.map