UNPKG

@shopify/app-bridge-core

Version:

**[Join our team and work on libraries like this one.](https://www.shopify.ca/careers)**

107 lines (106 loc) 6.25 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Action = void 0; exports.validateProps = validateProps; exports.validateAction = validateAction; var Picker_1 = require("../../actions/Picker"); Object.defineProperty(exports, "Action", { enumerable: true, get: function () { return Picker_1.Action; } }); var type_validate_1 = require("../type-validate"); var utils_1 = require("../utils"); var resourceBadge = (0, type_validate_1.matchesObject)({ content: (0, type_validate_1.matchesString)(), id: (0, type_validate_1.matchesString)(), progress: (0, type_validate_1.matchesEnum)(Picker_1.ALL_BADGE_PROGRESSES), status: (0, type_validate_1.matchesEnum)(Picker_1.ALL_BADGE_STATUSES), }); var resourceMedia = (0, type_validate_1.matchesObject)({ accessibilityLabel: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), alt: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), initials: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), kind: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesEnum)(Picker_1.ALL_MEDIA_KINDS)), name: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), source: (0, type_validate_1.matchesString)(), }); var sharedResourceSchema = { accessibilityLabel: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), badges: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesArray)(resourceBadge)), disabled: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()), id: (0, type_validate_1.matchesString)(), loading: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()), media: (0, type_validate_1.makeOptional)(resourceMedia), name: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), caption: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), selectable: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()), }; var resourceOption = (0, type_validate_1.matchesObject)(__assign({}, sharedResourceSchema)); var resourceSelectionSchema = (0, type_validate_1.matchesArray)((0, type_validate_1.matchesObject)(__assign(__assign({}, sharedResourceSchema), { options: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesArray)(resourceOption)) }))); var resourceName = (0, type_validate_1.matchesObject)({ plural: (0, type_validate_1.matchesString)(), singular: (0, type_validate_1.matchesString)(), }); var pickerOptions = (0, type_validate_1.matchesObject)({ canLoadMore: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()), emptySearchLabel: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesObject)({ title: (0, type_validate_1.matchesString)(), description: (0, type_validate_1.matchesString)(), withIllustration: (0, type_validate_1.matchesBoolean)(), })), items: (0, type_validate_1.makeOptional)(resourceSelectionSchema), loading: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()), loadingMore: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()), maxSelectable: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesPositiveInteger)()), primaryActionLabel: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), searchQuery: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), searchQueryPlaceholder: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), secondaryActionLabel: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), selectedItems: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesArray)((0, type_validate_1.matchesObject)(sharedResourceSchema))), title: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), verticalAlignment: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesEnum)(Picker_1.ALL_RESOURCE_VERTICAL_ALIGNMENT)), allowEmptySelection: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()), resourceName: (0, type_validate_1.makeOptional)(resourceName), }); var pickerActionSchema = (0, type_validate_1.matchesObject)({ options: (0, type_validate_1.makeOptional)(resourceSelectionSchema), }); var selectionSchema = (0, type_validate_1.matchesObject)({ selectedItems: resourceSelectionSchema, }); var searchSchema = (0, type_validate_1.matchesObject)({ searchQuery: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()), }); /** * @unstable This API may be updated without warning in the future */ function validateProps(props) { return (0, type_validate_1.validate)(props, pickerOptions); } /** * @unstable This API may be updated without warning in the future */ function validateAction(action) { switch (action.type) { case Picker_1.Action.UPDATE: case Picker_1.Action.OPEN: return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(Picker_1.Action, pickerActionSchema, false, true)); case Picker_1.Action.SELECT: return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(Picker_1.Action, selectionSchema, true, true)); case Picker_1.Action.SEARCH: return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(Picker_1.Action, searchSchema, true, true)); case Picker_1.Action.CANCEL: case Picker_1.Action.LOAD_MORE: return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(Picker_1.Action)); default: return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(Picker_1.Action)); } }