123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- const _ = require('lodash');
- const OptionsProcessor = require('./OptionsProcessor');
-
- class Commands {
- constructor(nativeCommandsSender, layoutTreeParser, layoutTreeCrawler) {
- this.nativeCommandsSender = nativeCommandsSender;
- this.layoutTreeParser = layoutTreeParser;
- this.layoutTreeCrawler = layoutTreeCrawler;
- }
-
- setRoot(simpleApi) {
- const input = _.cloneDeep(simpleApi);
- const layout = this.layoutTreeParser.parseFromSimpleJSON(input);
- this.layoutTreeCrawler.crawl(layout);
- return this.nativeCommandsSender.setRoot(layout);
- }
-
- setOptions(containerId, options) {
- const input = _.cloneDeep(options);
- OptionsProcessor.processOptions(input);
- this.nativeCommandsSender.setOptions(containerId, input);
- }
-
- showModal(simpleApi) {
- const input = _.cloneDeep(simpleApi);
- const layout = this.layoutTreeParser.parseFromSimpleJSON(input);
- this.layoutTreeCrawler.crawl(layout);
- return this.nativeCommandsSender.showModal(layout);
- }
-
- dismissModal(id) {
- return this.nativeCommandsSender.dismissModal(id);
- }
-
- dismissAllModals() {
- return this.nativeCommandsSender.dismissAllModals();
- }
-
- push(onContainerId, containerData) {
- const input = _.cloneDeep(containerData);
- const layout = this.layoutTreeParser.createContainer(input);
- this.layoutTreeCrawler.crawl(layout);
- return this.nativeCommandsSender.push(onContainerId, layout);
- }
-
- pop(containerId) {
- return this.nativeCommandsSender.pop(containerId);
- }
-
- popTo(containerId) {
- return this.nativeCommandsSender.popTo(containerId);
- }
-
- popToRoot(containerId) {
- return this.nativeCommandsSender.popToRoot(containerId);
- }
-
- showOverlay(type, options) {
- let promise;
- if (type === 'custom') {
- const layout = this.layoutTreeParser.createDialogContainer({ name: options });
- this.layoutTreeCrawler.crawl(layout);
- promise = this.nativeCommandsSender.showOverlay(type, layout);
- } else {
- const input = _.cloneDeep(options);
- OptionsProcessor.processOptions(input);
- promise = this.nativeCommandsSender.showOverlay(type, input);
- }
- return promise;
- }
-
- dismissOverlay() {
- return this.nativeCommandsSender.dismissOverlay();
- }
- }
-
- module.exports = Commands;
|