UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

89 lines (87 loc) 3.02 kB
/** * DevExtreme (cjs/__internal/ui/date_box/m_date_box.strategy.native.js) * Version: 25.2.7 * Build date: Tue May 05 2026 * * Copyright (c) 2012 - 2026 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 _devices = _interopRequireDefault(require("../../../core/devices")); var _date_serialization = _interopRequireDefault(require("../../../core/utils/date_serialization")); var _support = require("../../../core/utils/support"); var _date_utils = _interopRequireDefault(require("./date_utils")); var _m_date_box = _interopRequireDefault(require("./m_date_box.strategy")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } class NativeStrategy extends _m_date_box.default { ctor(dateBox) { super.ctor(dateBox); this.NAME = "Native" } popupConfig(popupConfig) { return Object.assign({}, popupConfig, { width: "auto" }) } getParsedText(text) { if (!text) { return null } if ("datetime" === this.dateBox.option("type")) { return new Date(text.replace(/-/g, "/").replace("T", " ").split(".")[0]) } return _date_utils.default.fromStandardDateFormat(text) } renderPopupContent() {} _getWidgetName() {} _getWidgetOptions() {} _getDateBoxType() { let { type: type } = this.dateBox.option(); if (!_date_utils.default.SUPPORTED_FORMATS.includes(type)) { type = "date" } else if ("datetime" === type && !(0, _support.inputType)(type)) { type = "datetime-local" } return type } customizeButtons() { const dropDownButton = this.dateBox.getButton("dropDown"); if (_devices.default.real().android && dropDownButton) { dropDownButton.on("click", () => { this.dateBox._input().get(0).click() }) } } getDefaultOptions() { return { mode: this._getDateBoxType() } } getDisplayFormat(displayFormat) { const type = this._getDateBoxType(); return displayFormat || _date_utils.default.FORMATS_MAP[type] } renderInputMinMax($input) { const type = this.dateBox.option("type"); const format = { datetime: "yyyy-MM-ddTHH:mm:ss", date: "yyyy-MM-dd", time: "HH:mm:ss" } [type] ?? "yyyy-MM-dd"; $input.attr({ min: _date_serialization.default.serializeDate(this.dateBox.getDateOption("min"), format), max: _date_serialization.default.serializeDate(this.dateBox.getDateOption("max"), format) }) } } var _default = exports.default = NativeStrategy;