@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
99 lines (84 loc) • 3.48 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _lodash = _interopRequireDefault(require("lodash.assign"));
var _constants = require("../../utilities/constants");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved */
/* Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
// Implements the [Trial Bar design pattern](https://lightningdesignsystem.com/components/trial-bar/) in React.
// Based on SLDS v2.4.5
var propTypes = {
/**
* Provide children of the types `<TrialBarButton />` or `<TrialBarDropdown />` to define the structure of the trial bar.
* ```
* <TrialBar>
* <TrialBarButton />
* <TrialBarDropdown />
* </TrialBar>
* ```
*/
children: _propTypes.default.node,
/**
* CSS classes to be added to the component. Uses `classNames` [API](https://github.com/JedWatson/classnames).
*/
className: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object, _propTypes.default.string]),
/**
* **Text labels for internationalization**
* This object is merged with the default props object on every render.
* * `learnMoreAfter`: Amount of time left in trial, e.g. `30`
* * `learnMoreBefore`: Unit of the amount of time left, e.g. `days`
* * `timeLeftUnitAfter`: String after `timeLeftUnit`
*/
labels: _propTypes.default.shape({
timeLeft: _propTypes.default.string,
timeLeftUnit: _propTypes.default.string,
timeLeftUnitAfter: _propTypes.default.string
}),
/**
* Renders the actions section of the trial bar.
*/
onRenderActions: _propTypes.default.func,
/**
* Customs styles to be applied to the component.
*/
style: _propTypes.default.object
};
var defaultProps = {
labels: {
timeLeftUnitAfter: 'left in trial'
}
};
/**
* Trial bar components are used to provide an interactive and educational prospect experience for setup.
*/
var TrialBar = function TrialBar(_ref) {
var _ref$labels = _ref.labels,
labels = _ref$labels === void 0 ? defaultProps.labels : _ref$labels,
className = _ref.className,
style = _ref.style,
onRenderActions = _ref.onRenderActions,
children = _ref.children;
var mergedLabels = (0, _lodash.default)({}, defaultProps.labels, labels);
return /*#__PURE__*/_react.default.createElement("div", {
className: (0, _classnames.default)('slds-trial-header slds-grid', className),
style: style
}, /*#__PURE__*/_react.default.createElement("div", {
className: "slds-grid"
}, children), /*#__PURE__*/_react.default.createElement("div", {
className: "slds-grid slds-grid_vertical-align-center slds-col_bump-left"
}, /*#__PURE__*/_react.default.createElement("span", {
className: "slds-box slds-box_xx-small slds-theme_default"
}, mergedLabels.timeLeft), /*#__PURE__*/_react.default.createElement("span", {
className: "slds-m-horizontal_x-small"
}, mergedLabels.timeLeftUnit, " ".concat(mergedLabels.timeLeftUnitAfter)), onRenderActions()));
};
TrialBar.displayName = _constants.TRIAL_BAR;
TrialBar.propTypes = propTypes;
var _default = TrialBar;
exports.default = _default;