UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

101 lines (98 loc) 3.4 kB
/** * DevExtreme (cjs/__internal/ui/date_box/m_date_box.strategy.native.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 _devices = _interopRequireDefault(require("../../../core/devices")); var _date_serialization = _interopRequireDefault(require("../../../core/utils/date_serialization")); var _support = require("../../../core/utils/support"); var _m_date_box = _interopRequireDefault(require("./m_date_box.strategy")); var _m_date_utils = _interopRequireDefault(require("./m_date_utils")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function(n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]) } } return n }, _extends.apply(null, arguments) } class NativeStrategy extends _m_date_box.default { ctor(dateBox) { super.ctor(dateBox); this.NAME = "Native" } popupConfig(popupConfig) { return _extends({}, 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 _m_date_utils.default.fromStandardDateFormat(text) } renderPopupContent() {} _getWidgetName() {} _getWidgetOptions() {} _getDateBoxType() { let { type: type } = this.dateBox.option(); if (!_m_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 || _m_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.dateOption("min"), format), max: _date_serialization.default.serializeDate(this.dateBox.dateOption("max"), format) }) } } var _default = exports.default = NativeStrategy;