UNPKG

@enact/sandstone

Version:

Large-screen/TV support library for Enact, containing a variety of UI components.

110 lines (108 loc) 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.HeaderBase = exports.Header = void 0; var _handle = require("@enact/core/handle"); var _kind = _interopRequireDefault(require("@enact/core/kind")); var _propTypes = _interopRequireDefault(require("prop-types")); var _$L = _interopRequireDefault(require("../internal/$L")); var _Panels = require("../internal/Panels"); var _util = require("../internal/Panels/util"); var _Header = _interopRequireDefault(require("../Panels/Header")); var _FlexiblePopupPanelsModule = _interopRequireDefault(require("./FlexiblePopupPanels.module.css")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /** * A header component for `FlexiblePopupPanels.Panel` with a `title` and `subtitle`, supporting several configurable * {@link ui/Slottable.Slottable|slots} for components. * * @class Header * @extends sandstone/Panels.Header * @memberof sandstone/FlexiblePopupPanels * @ui * @public */ var HeaderBase = exports.HeaderBase = (0, _kind["default"])({ name: 'Header', contextType: _Panels.PanelsStateContext, propTypes: /** @lends sandstone/FlexiblePopupPanels.Header.prototype */{ /** * Hint string read when focusing the application close button. * * @type {String} * @default 'Exit app' * @public */ closeButtonAriaLabel: _propTypes["default"].string, /** * Background opacity of the application close button. * * @type {('opaque'|'transparent')} * @default 'transparent' * @public */ closeButtonBackgroundOpacity: _propTypes["default"].oneOf(['opaque', 'transparent']), /** * Omits the close button. * * @type {Boolean} * @default false * @public */ noCloseButton: _propTypes["default"].bool, /** * Called when the app close button is clicked. * * @type {Function} * @public */ onClose: _propTypes["default"].func }, styles: { css: _FlexiblePopupPanelsModule["default"], className: 'header' }, computed: { backButtonAriaLabel: function backButtonAriaLabel(_ref) { var closeButtonAriaLabel = _ref.closeButtonAriaLabel; return closeButtonAriaLabel == null ? (0, _$L["default"])('Exit app') : closeButtonAriaLabel; }, backButtonBackgroundOpacity: function backButtonBackgroundOpacity(_ref2) { var closeButtonBackgroundOpacity = _ref2.closeButtonBackgroundOpacity; return closeButtonBackgroundOpacity; }, className: function className(_ref3, _ref4) { var noCloseButton = _ref3.noCloseButton, styler = _ref3.styler; var count = _ref4.count; return styler.append({ 'showBack': count > 1 && noCloseButton }); }, noBackButton: function noBackButton(_ref5) { var noCloseButton = _ref5.noCloseButton; return noCloseButton; } }, handlers: { onBack: (0, _handle.forwardCustom)('onClose') }, render: function render(props) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Header["default"], _objectSpread(_objectSpread({ type: "mini" }, props), {}, { noCloseButton: true })); } }); var Header = exports.Header = (0, _util.ContextAsDefaults)({ props: ['closeButtonAriaLabel', 'closeButtonBackgroundOpacity', 'noCloseButton', 'onClose'] }, HeaderBase); // Relay the defaultSlot property to our version of Header Header.defaultSlot = _Header["default"].defaultSlot; var _default = exports["default"] = Header;