UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

110 lines (108 loc) 4.39 kB
/** * DevExtreme (cjs/__internal/ui/drawer/m_drawer.rendering.strategy.js) * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _renderer = _interopRequireDefault(require("../../../core/renderer")); var _deferred = require("../../../core/utils/deferred"); var _size = require("../../../core/utils/size"); var _m_drawer = require("./m_drawer.animation"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } class DrawerStrategy { constructor(drawer) { this._drawer = drawer } getDrawerInstance() { return this._drawer } renderPanelContent(whenPanelContentRendered) { const drawer = this.getDrawerInstance(); const template = drawer._getTemplate(drawer.option("template")); if (template) { template.render({ container: drawer.content(), onRendered: () => { whenPanelContentRendered.resolve() } }) } } renderPosition(changePositionUsingFxAnimation, animationDuration) { const whenPositionAnimationCompleted = (0, _deferred.Deferred)(); const whenShaderAnimationCompleted = (0, _deferred.Deferred)(); const drawer = this.getDrawerInstance(); if (changePositionUsingFxAnimation) { _deferred.when.apply(_renderer.default, [whenPositionAnimationCompleted, whenShaderAnimationCompleted]).done((() => { drawer._animationCompleteHandler() })) } this._internalRenderPosition(changePositionUsingFxAnimation, whenPositionAnimationCompleted); if (!changePositionUsingFxAnimation) { drawer.resizeViewContent() } this.renderShaderVisibility(changePositionUsingFxAnimation, animationDuration, whenShaderAnimationCompleted) } _getPanelOffset(isDrawerOpened) { const drawer = this.getDrawerInstance(); const size = drawer.isHorizontalDirection() ? drawer.getRealPanelWidth() : drawer.getRealPanelHeight(); if (isDrawerOpened) { return -(size - drawer.getMaxSize()) } return -(size - drawer.getMinSize()) } _getPanelSize(isDrawerOpened) { return isDrawerOpened ? this.getDrawerInstance().getMaxSize() : this.getDrawerInstance().getMinSize() } renderShaderVisibility(changePositionUsingFxAnimation, duration, whenAnimationCompleted) { const drawer = this.getDrawerInstance(); const isShaderVisible = drawer.option("opened"); const fadeConfig = isShaderVisible ? { from: 0, to: 1 } : { from: 1, to: 0 }; if (changePositionUsingFxAnimation) { _m_drawer.animation.fade((0, _renderer.default)(drawer._$shader), fadeConfig, duration, (() => { this._drawer._toggleShaderVisibility(isShaderVisible); whenAnimationCompleted.resolve() })) } else { drawer._toggleShaderVisibility(isShaderVisible); drawer._$shader.css("opacity", fadeConfig.to) } } getPanelContent() { return (0, _renderer.default)(this.getDrawerInstance().content()) } setPanelSize(calcFromRealPanelSize) { this.refreshPanelElementSize(calcFromRealPanelSize) } refreshPanelElementSize(calcFromRealPanelSize) { const drawer = this.getDrawerInstance(); const panelSize = this._getPanelSize(drawer.option("opened")); if (drawer.isHorizontalDirection()) { (0, _size.setWidth)((0, _renderer.default)(drawer.content()), calcFromRealPanelSize ? drawer.getRealPanelWidth() : panelSize) } else { (0, _size.setHeight)((0, _renderer.default)(drawer.content()), calcFromRealPanelSize ? drawer.getRealPanelHeight() : panelSize) } } isViewContentFirst() { return false } onPanelContentRendered() {} } var _default = exports.default = DrawerStrategy;