@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
JavaScript
;
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));
}
}