UNPKG

@matt-dunn/react-wireframes

Version:

React component to annotate your components — useful for prototypes and proof of concepts

180 lines (137 loc) 6.57 kB
"use strict"; require("core-js/modules/es.symbol"); require("core-js/modules/es.symbol.description"); require("core-js/modules/es.symbol.iterator"); require("core-js/modules/es.array.concat"); require("core-js/modules/es.array.filter"); require("core-js/modules/es.array.for-each"); require("core-js/modules/es.array.from"); require("core-js/modules/es.array.iterator"); require("core-js/modules/es.array.slice"); require("core-js/modules/es.function.name"); require("core-js/modules/es.object.get-own-property-descriptor"); require("core-js/modules/es.object.get-own-property-descriptors"); require("core-js/modules/es.object.keys"); require("core-js/modules/es.object.to-string"); require("core-js/modules/es.regexp.to-string"); require("core-js/modules/es.string.iterator"); require("core-js/modules/web.dom-collections.for-each"); require("core-js/modules/web.dom-collections.iterator"); Object.defineProperty(exports, "__esModule", { value: true }); exports.API = API; var _utils = require("./utils"); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 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; } 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; } 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; } function API(defaultOptions) { var annotations = []; var apiOptions = defaultOptions || {}; var parentReference; var highlightedComponent; var openCallbacks = []; var isOpen = false; return { setOptions: function setOptions(options) { apiOptions = options; return apiOptions; }, getAnnotations: function getAnnotations() { return annotations; }, register: function register(Component, options) { var annotation = (0, _utils.getWireframeAnnotation)(annotations, Component); if (annotation) { var updatedAnnotation = _objectSpread(_objectSpread({}, annotation), {}, { count: annotation.count + 1 }); annotations = (0, _utils.updateWireframeAnnotation)(annotations, annotation, updatedAnnotation); /* istanbul ignore else */ if (apiOptions.updater) { apiOptions.updater(annotations); } return updatedAnnotation; } var newAnnotation = { id: annotations.length + 1, Component: Component, count: 1, options: options }; annotations = [].concat(_toConsumableArray(annotations), [newAnnotation]); if (apiOptions.updater) { apiOptions.updater(annotations); } return newAnnotation; }, unregister: function unregister(Component) { var annotation = (0, _utils.getWireframeAnnotation)(annotations, Component); if (annotation) { if (annotation.count > 1) { annotations = (0, _utils.updateWireframeAnnotation)(annotations, annotation, _objectSpread(_objectSpread({}, annotation), {}, { count: annotation.count - 1 })); } else { annotations = annotations.filter(function (c) { return c !== annotation; }); } if (apiOptions.updater) { apiOptions.updater(annotations); } } }, highlightNote: function highlightNote(Component) { if (highlightedComponent !== Component) { highlightedComponent = Component; /* istanbul ignore else */ if (apiOptions && apiOptions.highlightNote) { apiOptions.highlightNote((0, _utils.getWireframeAnnotation)(annotations, Component)); } } }, setOpen: function setOpen(open) { if (open !== isOpen) { isOpen = open; openCallbacks.forEach(function (cb) { return cb(isOpen); }); } return isOpen; }, onOpen: function onOpen(cb) { openCallbacks = [].concat(_toConsumableArray(openCallbacks), [cb]); return { unregister: function unregister() { openCallbacks = openCallbacks.filter(function (c) { return c !== cb; }); } }; }, isOpen: function (_isOpen) { function isOpen() { return _isOpen.apply(this, arguments); } isOpen.toString = function () { return _isOpen.toString(); }; return isOpen; }(function () { return isOpen; }), setParentReference: function setParentReference(reference) { parentReference = reference; }, getParentReference: function getParentReference() { return parentReference; } }; }