@khanacademy/wonder-blocks-link 3.7.12 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/index.js +147 -369
- package/dist/index.js +191 -276
- package/package.json +10 -9
- package/src/components/__tests__/link.test.js +2 -1
- package/src/components/link-core.js +10 -9
- package/src/components/link.js +11 -8
- package/src/components/link.md +6 -0
- package/src/__tests__/index.test.js +0 -13
package/dist/index.js
CHANGED
|
@@ -82,26 +82,26 @@ module.exports =
|
|
|
82
82
|
/******/
|
|
83
83
|
/******/
|
|
84
84
|
/******/ // Load entry module and return exports
|
|
85
|
-
/******/ return __webpack_require__(__webpack_require__.s =
|
|
85
|
+
/******/ return __webpack_require__(__webpack_require__.s = 9);
|
|
86
86
|
/******/ })
|
|
87
87
|
/************************************************************************/
|
|
88
88
|
/******/ ([
|
|
89
89
|
/* 0 */
|
|
90
90
|
/***/ (function(module, exports) {
|
|
91
91
|
|
|
92
|
-
module.exports = require("
|
|
92
|
+
module.exports = require("react");
|
|
93
93
|
|
|
94
94
|
/***/ }),
|
|
95
95
|
/* 1 */
|
|
96
96
|
/***/ (function(module, exports) {
|
|
97
97
|
|
|
98
|
-
module.exports = require("
|
|
98
|
+
module.exports = require("@khanacademy/wonder-blocks-color");
|
|
99
99
|
|
|
100
100
|
/***/ }),
|
|
101
101
|
/* 2 */
|
|
102
102
|
/***/ (function(module, exports) {
|
|
103
103
|
|
|
104
|
-
module.exports = require("
|
|
104
|
+
module.exports = require("react-router");
|
|
105
105
|
|
|
106
106
|
/***/ }),
|
|
107
107
|
/* 3 */
|
|
@@ -111,158 +111,75 @@ module.exports = require("@khanacademy/wonder-blocks-clickable");
|
|
|
111
111
|
|
|
112
112
|
/***/ }),
|
|
113
113
|
/* 4 */
|
|
114
|
-
/***/ (function(module, exports) {
|
|
115
|
-
|
|
116
|
-
module.exports = require("aphrodite");
|
|
117
|
-
|
|
118
|
-
/***/ }),
|
|
119
|
-
/* 5 */
|
|
120
|
-
/***/ (function(module, exports) {
|
|
121
|
-
|
|
122
|
-
module.exports = require("@khanacademy/wonder-blocks-core");
|
|
123
|
-
|
|
124
|
-
/***/ }),
|
|
125
|
-
/* 6 */
|
|
126
|
-
/***/ (function(module, exports) {
|
|
127
|
-
|
|
128
|
-
module.exports = require("react-router-dom");
|
|
129
|
-
|
|
130
|
-
/***/ }),
|
|
131
|
-
/* 7 */
|
|
132
114
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
133
115
|
|
|
134
116
|
"use strict";
|
|
135
|
-
|
|
136
|
-
__webpack_require__
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
var
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
var
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
var
|
|
149
|
-
|
|
150
|
-
// EXTERNAL MODULE: external "aphrodite"
|
|
151
|
-
var external_aphrodite_ = __webpack_require__(4);
|
|
152
|
-
|
|
153
|
-
// EXTERNAL MODULE: external "react-router-dom"
|
|
154
|
-
var external_react_router_dom_ = __webpack_require__(6);
|
|
155
|
-
|
|
156
|
-
// EXTERNAL MODULE: external "@khanacademy/wonder-blocks-core"
|
|
157
|
-
var wonder_blocks_core_ = __webpack_require__(5);
|
|
158
|
-
|
|
159
|
-
// EXTERNAL MODULE: external "@khanacademy/wonder-blocks-color"
|
|
160
|
-
var wonder_blocks_color_ = __webpack_require__(0);
|
|
161
|
-
var wonder_blocks_color_default = /*#__PURE__*/__webpack_require__.n(wonder_blocks_color_);
|
|
162
|
-
|
|
163
|
-
// CONCATENATED MODULE: ./packages/wonder-blocks-link/src/components/link-core.js
|
|
164
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
165
|
-
|
|
117
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LinkCore; });
|
|
118
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
|
|
119
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
120
|
+
/* harmony import */ var aphrodite__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
|
|
121
|
+
/* harmony import */ var aphrodite__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(aphrodite__WEBPACK_IMPORTED_MODULE_1__);
|
|
122
|
+
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
|
|
123
|
+
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_2__);
|
|
124
|
+
/* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);
|
|
125
|
+
/* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_router__WEBPACK_IMPORTED_MODULE_3__);
|
|
126
|
+
/* harmony import */ var _khanacademy_wonder_blocks_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6);
|
|
127
|
+
/* harmony import */ var _khanacademy_wonder_blocks_core__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_khanacademy_wonder_blocks_core__WEBPACK_IMPORTED_MODULE_4__);
|
|
128
|
+
/* harmony import */ var _khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1);
|
|
129
|
+
/* harmony import */ var _khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__);
|
|
130
|
+
/* harmony import */ var _khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3);
|
|
131
|
+
/* harmony import */ var _khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_6__);
|
|
166
132
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
167
133
|
|
|
168
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
169
|
-
|
|
170
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
171
|
-
|
|
172
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
173
|
-
|
|
174
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
175
|
-
|
|
176
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
177
|
-
|
|
178
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
179
|
-
|
|
180
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
181
|
-
|
|
182
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
183
|
-
|
|
184
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
185
|
-
|
|
186
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
187
|
-
|
|
188
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
189
|
-
|
|
190
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
191
|
-
|
|
192
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
193
|
-
|
|
194
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
195
|
-
|
|
196
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
134
|
|
|
201
135
|
|
|
202
136
|
|
|
203
137
|
|
|
204
138
|
|
|
205
|
-
var StyledAnchor = Object(wonder_blocks_core_["addStyle"])("a");
|
|
206
|
-
var StyledLink = Object(wonder_blocks_core_["addStyle"])(external_react_router_dom_["Link"]);
|
|
207
139
|
|
|
208
|
-
var link_core_LinkCore = /*#__PURE__*/function (_React$Component) {
|
|
209
|
-
_inherits(LinkCore, _React$Component);
|
|
210
140
|
|
|
211
|
-
|
|
141
|
+
const StyledAnchor = Object(_khanacademy_wonder_blocks_core__WEBPACK_IMPORTED_MODULE_4__["addStyle"])("a");
|
|
142
|
+
const StyledLink = Object(_khanacademy_wonder_blocks_core__WEBPACK_IMPORTED_MODULE_4__["addStyle"])(react_router_dom__WEBPACK_IMPORTED_MODULE_2__["Link"]);
|
|
143
|
+
class LinkCore extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
|
|
144
|
+
renderInner(router) {
|
|
145
|
+
const {
|
|
146
|
+
children,
|
|
147
|
+
skipClientNav,
|
|
148
|
+
focused,
|
|
149
|
+
hovered,
|
|
150
|
+
href,
|
|
151
|
+
kind,
|
|
152
|
+
light,
|
|
153
|
+
visitable,
|
|
154
|
+
pressed,
|
|
155
|
+
style,
|
|
156
|
+
testId,
|
|
157
|
+
waiting: _,
|
|
158
|
+
...restProps
|
|
159
|
+
} = this.props;
|
|
212
160
|
|
|
213
|
-
|
|
214
|
-
_classCallCheck(this, LinkCore);
|
|
161
|
+
const linkStyles = _generateStyles(kind, light, visitable);
|
|
215
162
|
|
|
216
|
-
|
|
163
|
+
const defaultStyles = [sharedStyles.shared, !(hovered || focused || pressed) && linkStyles.default, pressed ? linkStyles.active : (hovered || focused) && linkStyles.focus];
|
|
164
|
+
const commonProps = {
|
|
165
|
+
"data-test-id": testId,
|
|
166
|
+
style: [defaultStyles, style],
|
|
167
|
+
...restProps
|
|
168
|
+
};
|
|
169
|
+
return router && !skipClientNav && Object(_khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_6__["isClientSideUrl"])(href) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](StyledLink, _extends({}, commonProps, {
|
|
170
|
+
to: href
|
|
171
|
+
}), children) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](StyledAnchor, _extends({}, commonProps, {
|
|
172
|
+
href: href
|
|
173
|
+
}), children);
|
|
217
174
|
}
|
|
218
175
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
var _this$props = this.props,
|
|
223
|
-
children = _this$props.children,
|
|
224
|
-
skipClientNav = _this$props.skipClientNav,
|
|
225
|
-
focused = _this$props.focused,
|
|
226
|
-
hovered = _this$props.hovered,
|
|
227
|
-
href = _this$props.href,
|
|
228
|
-
kind = _this$props.kind,
|
|
229
|
-
light = _this$props.light,
|
|
230
|
-
visitable = _this$props.visitable,
|
|
231
|
-
pressed = _this$props.pressed,
|
|
232
|
-
style = _this$props.style,
|
|
233
|
-
testId = _this$props.testId,
|
|
234
|
-
_ = _this$props.waiting,
|
|
235
|
-
restProps = _objectWithoutProperties(_this$props, ["children", "skipClientNav", "focused", "hovered", "href", "kind", "light", "visitable", "pressed", "style", "testId", "waiting"]);
|
|
236
|
-
|
|
237
|
-
var router = this.context.router;
|
|
238
|
-
|
|
239
|
-
var linkStyles = link_core_generateStyles(kind, light, visitable);
|
|
240
|
-
|
|
241
|
-
var defaultStyles = [sharedStyles.shared, !(hovered || focused || pressed) && linkStyles.default, pressed ? linkStyles.active : (hovered || focused) && linkStyles.focus];
|
|
242
|
-
|
|
243
|
-
var commonProps = _objectSpread({
|
|
244
|
-
"data-test-id": testId,
|
|
245
|
-
style: [defaultStyles, style]
|
|
246
|
-
}, restProps);
|
|
247
|
-
|
|
248
|
-
return router && !skipClientNav && Object(wonder_blocks_clickable_["isClientSideUrl"])(href) ? /*#__PURE__*/external_react_["createElement"](StyledLink, _extends({}, commonProps, {
|
|
249
|
-
to: href
|
|
250
|
-
}), children) : /*#__PURE__*/external_react_["createElement"](StyledAnchor, _extends({}, commonProps, {
|
|
251
|
-
href: href
|
|
252
|
-
}), children);
|
|
253
|
-
}
|
|
254
|
-
}]);
|
|
255
|
-
|
|
256
|
-
return LinkCore;
|
|
257
|
-
}(external_react_["Component"]);
|
|
258
|
-
|
|
259
|
-
_defineProperty(link_core_LinkCore, "contextTypes", {
|
|
260
|
-
router: external_prop_types_["any"]
|
|
261
|
-
});
|
|
262
|
-
|
|
176
|
+
render() {
|
|
177
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_router__WEBPACK_IMPORTED_MODULE_3__["__RouterContext"].Consumer, null, router => this.renderInner(router));
|
|
178
|
+
}
|
|
263
179
|
|
|
264
|
-
|
|
265
|
-
|
|
180
|
+
}
|
|
181
|
+
const styles = {};
|
|
182
|
+
const sharedStyles = aphrodite__WEBPACK_IMPORTED_MODULE_1__["StyleSheet"].create({
|
|
266
183
|
shared: {
|
|
267
184
|
cursor: "pointer",
|
|
268
185
|
textDecoration: "none",
|
|
@@ -270,8 +187,8 @@ var sharedStyles = external_aphrodite_["StyleSheet"].create({
|
|
|
270
187
|
}
|
|
271
188
|
});
|
|
272
189
|
|
|
273
|
-
|
|
274
|
-
|
|
190
|
+
const _generateStyles = (kind, light, visitable) => {
|
|
191
|
+
const buttonType = kind + light.toString() + visitable.toString();
|
|
275
192
|
|
|
276
193
|
if (styles[buttonType]) {
|
|
277
194
|
return styles[buttonType];
|
|
@@ -285,71 +202,73 @@ var link_core_generateStyles = function _generateStyles(kind, light, visitable)
|
|
|
285
202
|
throw new Error("Only primary (not light) link is visitable");
|
|
286
203
|
}
|
|
287
204
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
205
|
+
const {
|
|
206
|
+
blue,
|
|
207
|
+
purple,
|
|
208
|
+
white,
|
|
209
|
+
offBlack,
|
|
210
|
+
offBlack32
|
|
211
|
+
} = _khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5___default.a;
|
|
212
|
+
const linkPurple = Object(_khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__["mix"])(Object(_khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__["fade"])(offBlack, 0.08), purple);
|
|
213
|
+
const defaultTextColor = kind === "primary" ? light ? white : blue : offBlack;
|
|
214
|
+
const focusColor = light ? white : blue;
|
|
215
|
+
const activeColor = light ? Object(_khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__["mix"])(Object(_khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__["fade"])(blue, 0.32), white) : Object(_khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__["mix"])(offBlack32, blue);
|
|
216
|
+
const defaultVisited = visitable ? {
|
|
298
217
|
":visited": {
|
|
299
218
|
color: linkPurple
|
|
300
219
|
}
|
|
301
220
|
} : Object.freeze({});
|
|
302
|
-
|
|
221
|
+
const activeVisited = visitable ? {
|
|
303
222
|
":visited": {
|
|
304
|
-
color: Object(
|
|
223
|
+
color: Object(_khanacademy_wonder_blocks_color__WEBPACK_IMPORTED_MODULE_5__["mix"])(offBlack32, linkPurple)
|
|
305
224
|
}
|
|
306
225
|
} : Object.freeze({});
|
|
307
|
-
|
|
308
|
-
default:
|
|
309
|
-
color: defaultTextColor
|
|
310
|
-
|
|
311
|
-
|
|
226
|
+
const newStyles = {
|
|
227
|
+
default: {
|
|
228
|
+
color: defaultTextColor,
|
|
229
|
+
...defaultVisited
|
|
230
|
+
},
|
|
231
|
+
focus: {
|
|
312
232
|
textDecoration: "underline currentcolor solid",
|
|
313
|
-
color: focusColor
|
|
314
|
-
|
|
315
|
-
|
|
233
|
+
color: focusColor,
|
|
234
|
+
...defaultVisited
|
|
235
|
+
},
|
|
236
|
+
active: {
|
|
316
237
|
color: activeColor,
|
|
317
|
-
textDecoration: "underline currentcolor solid"
|
|
318
|
-
|
|
238
|
+
textDecoration: "underline currentcolor solid",
|
|
239
|
+
...activeVisited
|
|
240
|
+
}
|
|
319
241
|
};
|
|
320
|
-
styles[buttonType] =
|
|
242
|
+
styles[buttonType] = aphrodite__WEBPACK_IMPORTED_MODULE_1__["StyleSheet"].create(newStyles);
|
|
321
243
|
return styles[buttonType];
|
|
322
244
|
};
|
|
323
|
-
// CONCATENATED MODULE: ./packages/wonder-blocks-link/src/components/link.js
|
|
324
|
-
function link_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { link_typeof = function _typeof(obj) { return typeof obj; }; } else { link_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return link_typeof(obj); }
|
|
325
|
-
|
|
326
|
-
function link_extends() { link_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return link_extends.apply(this, arguments); }
|
|
327
|
-
|
|
328
|
-
function link_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = link_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
329
|
-
|
|
330
|
-
function link_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
331
|
-
|
|
332
|
-
function link_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
333
|
-
|
|
334
|
-
function link_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
335
245
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
function link_setPrototypeOf(o, p) { link_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return link_setPrototypeOf(o, p); }
|
|
341
|
-
|
|
342
|
-
function link_createSuper(Derived) { var hasNativeReflectConstruct = link_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = link_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = link_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return link_possibleConstructorReturn(this, result); }; }
|
|
246
|
+
/***/ }),
|
|
247
|
+
/* 5 */
|
|
248
|
+
/***/ (function(module, exports) {
|
|
343
249
|
|
|
344
|
-
|
|
250
|
+
module.exports = require("aphrodite");
|
|
345
251
|
|
|
346
|
-
|
|
252
|
+
/***/ }),
|
|
253
|
+
/* 6 */
|
|
254
|
+
/***/ (function(module, exports) {
|
|
347
255
|
|
|
348
|
-
|
|
256
|
+
module.exports = require("@khanacademy/wonder-blocks-core");
|
|
349
257
|
|
|
350
|
-
|
|
258
|
+
/***/ }),
|
|
259
|
+
/* 7 */
|
|
260
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
351
261
|
|
|
352
|
-
|
|
262
|
+
"use strict";
|
|
263
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Link; });
|
|
264
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
|
|
265
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
266
|
+
/* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
|
|
267
|
+
/* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_router__WEBPACK_IMPORTED_MODULE_1__);
|
|
268
|
+
/* harmony import */ var _khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
|
|
269
|
+
/* harmony import */ var _khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_2__);
|
|
270
|
+
/* harmony import */ var _link_core_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
|
|
271
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
353
272
|
|
|
354
273
|
|
|
355
274
|
|
|
@@ -373,104 +292,100 @@ function link_defineProperty(obj, key, value) { if (key in obj) { Object.defineP
|
|
|
373
292
|
* </Link>
|
|
374
293
|
* ```
|
|
375
294
|
*/
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
disabled: false,
|
|
295
|
+
class Link extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
|
|
296
|
+
renderClickableBehavior(router) {
|
|
297
|
+
const {
|
|
298
|
+
onClick,
|
|
299
|
+
beforeNav = undefined,
|
|
300
|
+
safeWithNav,
|
|
301
|
+
href,
|
|
302
|
+
skipClientNav,
|
|
303
|
+
children,
|
|
304
|
+
tabIndex,
|
|
305
|
+
onKeyDown,
|
|
306
|
+
onKeyUp,
|
|
307
|
+
target = undefined,
|
|
308
|
+
...sharedProps
|
|
309
|
+
} = this.props;
|
|
310
|
+
const ClickableBehavior = Object(_khanacademy_wonder_blocks_clickable__WEBPACK_IMPORTED_MODULE_2__["getClickableBehavior"])(href, skipClientNav, router);
|
|
311
|
+
|
|
312
|
+
if (beforeNav) {
|
|
313
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ClickableBehavior, {
|
|
314
|
+
disabled: false,
|
|
315
|
+
href: href,
|
|
316
|
+
role: "link",
|
|
317
|
+
onClick: onClick,
|
|
318
|
+
beforeNav: beforeNav,
|
|
319
|
+
safeWithNav: safeWithNav,
|
|
320
|
+
onKeyDown: onKeyDown,
|
|
321
|
+
onKeyUp: onKeyUp
|
|
322
|
+
}, (state, {
|
|
323
|
+
tabIndex: clickableTabIndex,
|
|
324
|
+
...childrenProps
|
|
325
|
+
}) => {
|
|
326
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_link_core_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], _extends({}, sharedProps, state, childrenProps, {
|
|
327
|
+
skipClientNav: skipClientNav,
|
|
410
328
|
href: href,
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
}
|
|
432
|
-
return /*#__PURE__*/
|
|
433
|
-
|
|
329
|
+
target: target // If tabIndex is provide to the component we allow
|
|
330
|
+
// it to override the tabIndex provide to use by
|
|
331
|
+
// ClickableBehavior.
|
|
332
|
+
,
|
|
333
|
+
tabIndex: tabIndex || clickableTabIndex
|
|
334
|
+
}), children);
|
|
335
|
+
});
|
|
336
|
+
} else {
|
|
337
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ClickableBehavior, {
|
|
338
|
+
disabled: false,
|
|
339
|
+
href: href,
|
|
340
|
+
role: "link",
|
|
341
|
+
onClick: onClick,
|
|
342
|
+
safeWithNav: safeWithNav,
|
|
343
|
+
target: target,
|
|
344
|
+
onKeyDown: onKeyDown,
|
|
345
|
+
onKeyUp: onKeyUp
|
|
346
|
+
}, (state, {
|
|
347
|
+
tabIndex: clickableTabIndex,
|
|
348
|
+
...childrenProps
|
|
349
|
+
}) => {
|
|
350
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_link_core_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], _extends({}, sharedProps, state, childrenProps, {
|
|
351
|
+
skipClientNav: skipClientNav,
|
|
434
352
|
href: href,
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
var clickableTabIndex = _ref2.tabIndex,
|
|
443
|
-
childrenProps = link_objectWithoutProperties(_ref2, ["tabIndex"]);
|
|
444
|
-
|
|
445
|
-
return /*#__PURE__*/external_react_["createElement"](link_core_LinkCore, link_extends({}, sharedProps, state, childrenProps, {
|
|
446
|
-
skipClientNav: skipClientNav,
|
|
447
|
-
href: href,
|
|
448
|
-
target: target // If tabIndex is provide to the component we allow
|
|
449
|
-
// it to override the tabIndex provide to use by
|
|
450
|
-
// ClickableBehavior.
|
|
451
|
-
,
|
|
452
|
-
tabIndex: tabIndex || clickableTabIndex
|
|
453
|
-
}), children);
|
|
454
|
-
});
|
|
455
|
-
}
|
|
353
|
+
target: target // If tabIndex is provide to the component we allow
|
|
354
|
+
// it to override the tabIndex provide to use by
|
|
355
|
+
// ClickableBehavior.
|
|
356
|
+
,
|
|
357
|
+
tabIndex: tabIndex || clickableTabIndex
|
|
358
|
+
}), children);
|
|
359
|
+
});
|
|
456
360
|
}
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
return Link;
|
|
460
|
-
}(external_react_["Component"]);
|
|
361
|
+
}
|
|
461
362
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}
|
|
363
|
+
render() {
|
|
364
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_router__WEBPACK_IMPORTED_MODULE_1__["__RouterContext"].Consumer, null, router => this.renderClickableBehavior(router));
|
|
365
|
+
}
|
|
465
366
|
|
|
466
|
-
|
|
367
|
+
}
|
|
368
|
+
Link.defaultProps = {
|
|
467
369
|
kind: "primary",
|
|
468
370
|
light: false,
|
|
469
371
|
visitable: false
|
|
470
|
-
}
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
/***/ }),
|
|
375
|
+
/* 8 */
|
|
376
|
+
/***/ (function(module, exports) {
|
|
377
|
+
|
|
378
|
+
module.exports = require("react-router-dom");
|
|
379
|
+
|
|
380
|
+
/***/ }),
|
|
381
|
+
/* 9 */
|
|
382
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
471
383
|
|
|
384
|
+
"use strict";
|
|
385
|
+
__webpack_require__.r(__webpack_exports__);
|
|
386
|
+
/* harmony import */ var _components_link_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
|
|
387
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _components_link_js__WEBPACK_IMPORTED_MODULE_0__["a"]; });
|
|
472
388
|
|
|
473
|
-
// CONCATENATED MODULE: ./packages/wonder-blocks-link/src/index.js
|
|
474
389
|
|
|
475
390
|
|
|
476
391
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@khanacademy/wonder-blocks-link",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.1",
|
|
4
4
|
"design": "v1",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -15,18 +15,19 @@
|
|
|
15
15
|
"author": "",
|
|
16
16
|
"license": "MIT",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@
|
|
19
|
-
"@khanacademy/wonder-blocks-
|
|
20
|
-
"@khanacademy/wonder-blocks-
|
|
18
|
+
"@babel/runtime": "^7.16.3",
|
|
19
|
+
"@khanacademy/wonder-blocks-clickable": "^2.2.1",
|
|
20
|
+
"@khanacademy/wonder-blocks-color": "^1.1.20",
|
|
21
|
+
"@khanacademy/wonder-blocks-core": "^4.0.0"
|
|
21
22
|
},
|
|
22
23
|
"peerDependencies": {
|
|
23
24
|
"aphrodite": "^1.2.5",
|
|
24
|
-
"
|
|
25
|
-
"react": "
|
|
26
|
-
"react-router-dom": "
|
|
25
|
+
"react": "16.14.0",
|
|
26
|
+
"react-router": "5.2.1",
|
|
27
|
+
"react-router-dom": "5.3.0"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
|
-
"wb-dev-build-settings": "^0.0
|
|
30
|
+
"wb-dev-build-settings": "^0.2.0"
|
|
30
31
|
},
|
|
31
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "9ebea88533e702011165072f090a377e02fa3f0f"
|
|
32
33
|
}
|
|
@@ -15,7 +15,8 @@ describe("Link", () => {
|
|
|
15
15
|
beforeEach(() => {
|
|
16
16
|
// Note: window.location.assign needs a mock function in the testing
|
|
17
17
|
// environment.
|
|
18
|
-
window.location
|
|
18
|
+
delete window.location;
|
|
19
|
+
window.location = {assign: jest.fn()};
|
|
19
20
|
});
|
|
20
21
|
|
|
21
22
|
afterEach(() => {
|