UNPKG

@brizy/media-gallery

Version:
176 lines (175 loc) 7.35 kB
function _define_property(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 _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } 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 _object_spread_props(target, source) { source = source != null ? source : {}; 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; } import { InsertFilesTypes } from "../types/Context"; import { isT, mPipe, optional, parse, pass } from "fp-utilities"; import { always, pipe, prop } from "ramda"; import * as Str from "./string"; import * as Colors from "./colors"; import { is } from "./function"; import { onNothing } from "./maybe/onNothing"; export var contextFromRecord = function(config) { try { var baseProperties = { __type: always("context"), development: pipe(prop("development"), Boolean), locale: pipe(function(v) { var _v_locale; return (_v_locale = v.locale) !== null && _v_locale !== void 0 ? _v_locale : "default"; }, function(v) { return v; }), origin: pipe(prop("origin"), Str.read, onNothing("origin")), acceptableTypes: pipe(prop("acceptableTypes"), onNothing("acceptableTypes"), function(v) { return v.map(Str.read); }, function(v) { return v.filter(isT); }), height: optional(mPipe(function(v) { return v.height; }, Str.read)), colors: pipe(function(v) { return v.colors; }, Colors.read), mediaLibrary: pipe(prop("mediaLibrary"), parse({ getItems: pipe(prop("getItems"), pass(is), function(v) { return v; }, onNothing("mediaLibrary.getItems")), uploadItem: pipe(prop("uploadItem"), pass(is), function(v) { return v; }, onNothing("mediaLibrary.uploadItem")), removeItems: pipe(prop("removeItems"), pass(is), function(v) { return v; }, onNothing("mediaLibrary.removeItems")), updateItem: pipe(prop("updateItem"), pass(is), function(v) { return v; }, onNothing("mediaLibrary.updateItem")) }), onNothing("mediaLibrary")), stockPhotos: pipe(prop("stockPhotos"), parse({ getItems: pipe(prop("getItems"), pass(is), function(v) { return v; }, onNothing("stockPhotos.getItems")), downloadItem: pipe(prop("downloadItem"), pass(is), function(v) { return v; }, onNothing("stockPhotos.downloadItem")) }), onNothing("stockPhotos")), aiGenerated: pipe(prop("aiGenerated"), parse({ generateFromText: pipe(prop("generateFromText"), pass(is), function(v) { return v; }, onNothing("aiGenerated.generateFromText")), generateFromTextAndImage: pipe(prop("generateFromTextAndImage"), pass(is), function(v) { return v; }, onNothing("aiGenerated.generateFromTextAndImage")), isApiKeyProvided: pipe(prop("isApiKeyProvided"), pass(is), function(v) { return v; }, onNothing("aiGenerated.isApiKeyProvided")), goToApiKeyTab: pipe(prop("goToApiKeyTab"), pass(is), function(v) { return v; }, onNothing("aiGenerated.goToApiKeyTab")), aspectRatioOptions: optional(mPipe(function(v) { return v.aspectRatioOptions; }, function(v) { return v; })), styleOptions: optional(mPipe(function(v) { return v.styleOptions; }, function(v) { return v; })), resolutionOptions: optional(mPipe(function(v) { return v.resolutionOptions; }, function(v) { return v; })), thinkingModeOptions: optional(mPipe(function(v) { return v.thinkingModeOptions; }, function(v) { return v; })), countOfGenerationsOptions: optional(mPipe(function(v) { return v.countOfGenerationsOptions; }, function(v) { return v; })) }), onNothing("aiGenerated")), onClose: pipe(prop("onClose"), pass(is), function(v) { return v; }, onNothing("onClose")) }; switch(config.insertFilesType){ case "multiple": return parse(_object_spread_props(_object_spread({}, baseProperties), { onInsertFiles: pipe(prop("onInsertFiles"), pass(is), function(v) { return v; }, onNothing("onInsertFiles")), insertFilesType: always(InsertFilesTypes.MULTIPLE) }))(config); case "single": return parse(_object_spread_props(_object_spread({}, baseProperties), { onInsertFiles: pipe(prop("onInsertFiles"), pass(is), function(v) { return v; }, onNothing("onInsertFiles")), insertFilesType: always(InsertFilesTypes.SINGLE) }))(config); case undefined: case "none": return parse(_object_spread_props(_object_spread({}, baseProperties), { insertFilesType: always(InsertFilesTypes.NONE) }))(config); } } catch (message) { return { __type: "error", message: message }; } };