diff --git a/dist/ts-build/components/form/form.d.ts b/dist/ts-build/components/form/form.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/form/form.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/form/form.directive.d.ts b/dist/ts-build/components/form/form.directive.d.ts
new file mode 100644
index 000000000..d8f8ddbfc
--- /dev/null
+++ b/dist/ts-build/components/form/form.directive.d.ts
@@ -0,0 +1,71 @@
+import { UiSchemaRegistry } from '../ng-services/ui-schema-registry/ui-schema-registry.service';
+import { ISchemaGenerator } from '../generators/generators';
+import { RendererService } from '../renderers/renderer.service';
+import { IUISchemaElement } from '../../uischema';
+import { DataService } from '../ng-services/data/data.service';
+export declare class FormController {
+ private rendererService;
+ private UISchemaRegistry;
+ private dataService;
+ private SchemaGenerator;
+ private $compile;
+ private $q;
+ private scope;
+ private timeout;
+ static $inject: string[];
+ element: any;
+ uiSchema: IUISchemaElement;
+ private isInitialized;
+ private childScope;
+ private static isDataProvider(testMe);
+ constructor(rendererService: RendererService, UISchemaRegistry: UiSchemaRegistry, dataService: DataService, SchemaGenerator: ISchemaGenerator, $compile: ng.ICompileService, $q: ng.IQService, scope: JsonFormsDirectiveScope, timeout: ng.ITimeoutService);
+ init(): void;
+ private render(schema, data, uischema);
+ private fetch(any);
+ private isPromise(data);
+}
+export interface JsonFormsDirectiveScope extends ng.IScope {
+ schema: any;
+ uischema: any;
+ data: any;
+}
+export declare class JsonFormsDirective implements ng.IDirective {
+ private DataService;
+ restrict: string;
+ templateUrl: string;
+ controller: typeof FormController;
+ controllerAs: string;
+ scope: {
+ schema: string;
+ uischema: string;
+ data: string;
+ };
+ link: (scope: any, el: any, attrs: any, ctrl: any) => void;
+ constructor(DataService: DataService);
+}
+export declare class InnerFormController {
+ private rendererService;
+ private $compile;
+ private scope;
+ static $inject: string[];
+ element: any;
+ private uischema;
+ constructor(rendererService: RendererService, $compile: ng.ICompileService, scope: JsonFormsInnerDirectiveScope);
+ init(): void;
+}
+export interface JsonFormsInnerDirectiveScope extends ng.IScope {
+ uischema: any;
+}
+export declare class JsonFormsInnerDirective implements ng.IDirective {
+ restrict: string;
+ templateUrl: string;
+ controller: typeof InnerFormController;
+ controllerAs: string;
+ bindToController: {
+ uischema: string;
+ };
+ scope: boolean;
+ link: (scope: any, el: any, attrs: any, ctrl: any) => void;
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/form/form.directive.js b/dist/ts-build/components/form/form.directive.js
new file mode 100644
index 000000000..beb5a3ebe
--- /dev/null
+++ b/dist/ts-build/components/form/form.directive.js
@@ -0,0 +1,189 @@
+"use strict";
+require('angular');
+var JsonRefs = require('json-refs');
+var services_1 = require('../services/services');
+var services_2 = require('../services/services');
+var services_3 = require('../services/services');
+var services_4 = require('../services/services');
+var rule_service_1 = require('../services/rule/rule-service');
+var default_data_providers_1 = require('../services/data/default-data-providers');
+var FormController = (function () {
+ function FormController(rendererService, UISchemaRegistry, dataService, SchemaGenerator, $compile, $q, scope, timeout) {
+ this.rendererService = rendererService;
+ this.UISchemaRegistry = UISchemaRegistry;
+ this.dataService = dataService;
+ this.SchemaGenerator = SchemaGenerator;
+ this.$compile = $compile;
+ this.$q = $q;
+ this.scope = scope;
+ this.timeout = timeout;
+ this.isInitialized = false;
+ }
+ FormController.isDataProvider = function (testMe) {
+ return testMe !== undefined && testMe.hasOwnProperty('fetchData');
+ };
+ FormController.prototype.init = function () {
+ var _this = this;
+ if (this.isInitialized) {
+ var children = angular.element(this.element.find('form')).children();
+ children.remove();
+ if (this.childScope !== undefined) {
+ this.childScope.$destroy();
+ }
+ }
+ this.isInitialized = true;
+ this.$q.all([
+ this.fetch(this.scope.data),
+ this.fetch(this.scope.schema),
+ this.fetch(this.scope.uischema)])
+ .then(function (values) {
+ var data = values[0];
+ var schema = values[1];
+ var uischema = values[2];
+ if (data === undefined) {
+ throw new Error("The 'data' attribute must be specified.");
+ }
+ _this.dataService.setRoot(data);
+ var s = schema === undefined ?
+ _this.SchemaGenerator.generateDefaultSchema(data) :
+ schema;
+ var u = uischema === undefined ?
+ _this.UISchemaRegistry.getBestUiSchema(s, data) :
+ uischema;
+ var unresolvedRefs = JsonRefs.findRefs(s);
+ if (_.size(unresolvedRefs) === 0) {
+ _this.render(s, data, u);
+ }
+ else {
+ JsonRefs.resolveRefs(s).then(function (res) {
+ _this.render(res.resolved, data, u);
+ _this.scope.$digest();
+ }, function (err) { return console.error(err.stack); });
+ }
+ });
+ };
+ FormController.prototype.render = function (schema, data, uischema) {
+ var _this = this;
+ var dataProvider;
+ var services = new services_4.Services();
+ services.add(new services_2.SchemaProvider(schema));
+ services.add(new default_data_providers_1.DefaultDataProvider(this.$q, data));
+ services.add(new services_3.ScopeProvider(this.scope));
+ services.add(new services_1.ValidationService());
+ services.add(new rule_service_1.RuleService());
+ if (FormController.isDataProvider(this.scope.data)) {
+ dataProvider = this.scope.data;
+ }
+ else {
+ dataProvider = new default_data_providers_1.DefaultDataProvider(this.$q, data);
+ }
+ services.add(dataProvider);
+ this.childScope = this.scope.$new();
+ this.childScope['services'] = services;
+ this.childScope['uischema'] = uischema;
+ var template = this.rendererService.getBestComponent(uischema, schema, dataProvider.getData());
+ var compiledTemplate = this.$compile(template)(this.childScope);
+ angular.element(this.element.find('form')).append(compiledTemplate);
+ this.timeout(function () { return _this.scope.$root.$broadcast('jsonforms:change'); }, 0);
+ };
+ FormController.prototype.fetch = function (any) {
+ if (_.isFunction(any)) {
+ var ret = any();
+ if (this.isPromise(ret)) {
+ return ret;
+ }
+ else {
+ return this.$q.when(ret);
+ }
+ }
+ else {
+ return this.$q.when(any);
+ }
+ };
+ FormController.prototype.isPromise = function (data) {
+ return _.isFunction(data['then']);
+ };
+ FormController.$inject = ['RendererService', 'UiSchemaRegistry', 'DataService',
+ 'SchemaGenerator', '$compile', '$q', '$scope', '$timeout'];
+ return FormController;
+}());
+exports.FormController = FormController;
+var formTemplate = "\n
\n \n
";
+var JsonFormsDirective = (function () {
+ function JsonFormsDirective(DataService) {
+ var _this = this;
+ this.DataService = DataService;
+ this.restrict = 'E';
+ this.templateUrl = 'form.html';
+ this.controller = FormController;
+ this.controllerAs = 'vm';
+ this.scope = {
+ schema: '=',
+ uischema: '=',
+ data: '='
+ };
+ this.link = function (scope, el, attrs, ctrl) {
+ var parent = el.parent();
+ if (parent === undefined && parent.controller('jsonforms') === undefined) {
+ _this.DataService.unset();
+ }
+ ctrl.element = el;
+ scope.$watchGroup(['data', 'uischema', 'schema'], function (newValue) {
+ if (angular.isDefined(newValue)) {
+ ctrl.init();
+ }
+ });
+ };
+ }
+ return JsonFormsDirective;
+}());
+exports.JsonFormsDirective = JsonFormsDirective;
+var InnerFormController = (function () {
+ function InnerFormController(rendererService, $compile, scope) {
+ this.rendererService = rendererService;
+ this.$compile = $compile;
+ this.scope = scope;
+ }
+ InnerFormController.prototype.init = function () {
+ var services = this.scope['services'];
+ var data = services.get(services_4.ServiceId.DataProvider).getData();
+ var schema = services.get(services_4.ServiceId.SchemaProvider).getSchema();
+ var template = this.rendererService.getBestComponent(this.uischema, schema, data);
+ this.scope['uischema'] = this.uischema;
+ var compiledTemplate = this.$compile(template)(this.scope);
+ angular.element(this.element.find('form')).append(compiledTemplate);
+ this.scope.$root.$broadcast('jsonforms:change');
+ };
+ InnerFormController.$inject = ['RendererService', '$compile', '$scope'];
+ return InnerFormController;
+}());
+exports.InnerFormController = InnerFormController;
+var JsonFormsInnerDirective = (function () {
+ function JsonFormsInnerDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'form.html';
+ this.controller = InnerFormController;
+ this.controllerAs = 'vm';
+ this.bindToController = {
+ uischema: '='
+ };
+ this.scope = true;
+ this.link = function (scope, el, attrs, ctrl) {
+ ctrl.element = el;
+ ctrl.init();
+ };
+ }
+ return JsonFormsInnerDirective;
+}());
+exports.JsonFormsInnerDirective = JsonFormsInnerDirective;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms.form.directives', ['jsonforms.form'])
+ .directive('jsonforms', ['DataService', function (DataService) {
+ return new JsonFormsDirective(DataService);
+ }])
+ .directive('jsonformsInner', function () { return new JsonFormsInnerDirective(); })
+ .run(['$templateCache', function ($templateCache) {
+ return $templateCache.put('form.html', formTemplate);
+ }])
+ .name;
+//# sourceMappingURL=form.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/form/form.directive.js.map b/dist/ts-build/components/form/form.directive.js.map
new file mode 100644
index 000000000..d69a0b35e
--- /dev/null
+++ b/dist/ts-build/components/form/form.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"form.directive.js","sourceRoot":"","sources":["../../../../src/components/form/form.directive.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/form/form.js b/dist/ts-build/components/form/form.js
new file mode 100644
index 000000000..fb8108476
--- /dev/null
+++ b/dist/ts-build/components/form/form.js
@@ -0,0 +1,62 @@
+"use strict";
+var angular = require('angular');
+var renderer_service_1 = require('../renderers/renderer.service');
+var path_resolver_service_1 = require('../ng-services/path-resolver/path-resolver.service');
+var ui_schema_registry_service_1 = require('../ng-services/ui-schema-registry/ui-schema-registry.service');
+var data_service_1 = require('../ng-services/data/data.service');
+var generators_1 = require('../generators/generators');
+var ui_schema_gen_service_1 = require('../generators/ui-schema-gen.service');
+var schema_gen_service_1 = require('../generators/schema-gen.service');
+var layout_directive_1 = require('../renderers/layouts/layout.directive');
+var control_directive_1 = require('../renderers/controls/control.directive');
+var categorization_directive_1 = require('../renderers/layouts/categories/categorization.directive');
+var vertical_directive_1 = require('../renderers/layouts/vertical/vertical.directive');
+var horizontal_directive_1 = require('../renderers/layouts/horizontal/horizontal.directive');
+var masterdetail_directives_1 = require('../renderers/layouts/masterdetail/masterdetail.directives');
+var group_directive_1 = require('../renderers/layouts/group/group.directive');
+var label_directive_1 = require('../renderers/extras/label/label.directive');
+var string_directive_1 = require('../renderers/controls/string/string.directive');
+var integer_directive_1 = require('../renderers/controls/integer/integer.directive');
+var number_directive_1 = require('../renderers/controls/number/number.directive');
+var boolean_directive_1 = require('../renderers/controls/boolean/boolean.directive');
+var array_directive_1 = require('../renderers/controls/array/array.directive');
+var reference_directive_1 = require('../renderers/controls/reference/reference.directive');
+var datetime_directive_1 = require('../renderers/controls/datetime/datetime.directive');
+var enum_directive_1 = require('../renderers/controls/enum/enum.directive');
+var form_directive_1 = require('../form/form.directive');
+var abstract_control_1 = require('../renderers/controls/abstract-control');
+var testers_1 = require('../renderers/testers');
+var norenderer_directive_1 = require('../renderers/norenderer-directive');
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.form', [
+ renderer_service_1.default,
+ path_resolver_service_1.default,
+ ui_schema_registry_service_1.default,
+ data_service_1.default,
+ generators_1.default,
+ ui_schema_gen_service_1.default,
+ schema_gen_service_1.default,
+ form_directive_1.default,
+ control_directive_1.default,
+ layout_directive_1.default,
+ norenderer_directive_1.default,
+ array_directive_1.default,
+ string_directive_1.default,
+ integer_directive_1.default,
+ number_directive_1.default,
+ boolean_directive_1.default,
+ enum_directive_1.default,
+ reference_directive_1.default,
+ datetime_directive_1.default,
+ label_directive_1.default,
+ group_directive_1.default,
+ vertical_directive_1.default,
+ horizontal_directive_1.default,
+ categorization_directive_1.default,
+ masterdetail_directives_1.default,
+ abstract_control_1.default,
+ testers_1.default
+])
+ .name;
+//# sourceMappingURL=form.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/form/form.js.map b/dist/ts-build/components/form/form.js.map
new file mode 100644
index 000000000..fee9d325d
--- /dev/null
+++ b/dist/ts-build/components/form/form.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../src/components/form/form.ts"],"names":[],"mappings":";AACA,IAAY,OAAO,WAAM,SAAS,CAAC,CAAA;AACnC,iCAA4B,+BAA+B,CAAC,CAAA;AAC5D,sCAAyB,oDAAoD,CAAC,CAAA;AAC9E,2CAA6B,8DAA8D,CAAC,CAAA;AAC5F,6BAA4B,kCAAkC,CAAC,CAAA;AAC/D,2BAAuB,0BAA0B,CAAC,CAAA;AAClD,sCAA8B,qCAAqC,CAAC,CAAA;AACpE,mCAA4B,kCAAkC,CAAC,CAAA;AAE/D,iCAA4B,uCAAuC,CAAC,CAAA;AACpE,kCAA6B,yCAAyC,CAAC,CAAA;AAEvE,yCAAoC,0DAA0D,CAAC,CAAA;AAE/F,mCAAoC,kDAAkD,CAAC,CAAA;AACvF,qCAAsC,sDAAsD,CAAC,CAAA;AAC7F,wCAAmC,2DAA2D,CAAC,CAAA;AAC/F,gCAAiC,4CAA4C,CAAC,CAAA;AAE9E,gCAA2B,2CAA2C,CAAC,CAAA;AAEvE,iCAAmC,+CAA+C,CAAC,CAAA;AACnF,kCAAoC,iDAAiD,CAAC,CAAA;AACtF,iCAAmC,+CAA+C,CAAC,CAAA;AACnF,kCAAoC,iDAAiD,CAAC,CAAA;AACtF,gCAAkC,6CAA6C,CAAC,CAAA;AAChF,oCAAsC,qDAAqD,CAAC,CAAA;AAC5F,mCAAqC,mDAAmD,CAAC,CAAA;AACzF,+BAAiC,2CAA2C,CAAC,CAAA;AAC7E,+BAA2B,wBAAwB,CAAC,CAAA;AAEpD,iCAAwB,wCAAwC,CAAC,CAAA;AAEjE,wBAAoB,sBAAsB,CAAC,CAAA;AAE3C,qCAAgC,mCAAmC,CAAC,CAAA;AAEpE;kBAAe,OAAO;KACjB,MAAM,CAAC,gBAAgB,EAAE;IACtB,0BAAe;IACf,+BAAY;IACZ,oCAAgB;IAChB,sBAAe;IACf,oBAAU;IACV,+BAAiB;IACjB,4BAAe;IAEf,wBAAc;IAEd,2BAAgB;IAChB,0BAAe;IACf,8BAAmB;IACnB,yBAAqB;IACrB,0BAAsB;IACtB,2BAAuB;IACvB,0BAAsB;IACtB,2BAAuB;IACvB,wBAAoB;IACpB,6BAAyB;IACzB,4BAAwB;IAExB,yBAAc;IAEd,yBAAoB;IACpB,4BAAuB;IACvB,8BAAyB;IACzB,kCAAuB;IACvB,iCAAsB;IAEtB,0BAAW;IACX,iBAAO;CACV,CAAC;KACD,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/generators/generators.d.ts b/dist/ts-build/components/generators/generators.d.ts
new file mode 100644
index 000000000..57e664b51
--- /dev/null
+++ b/dist/ts-build/components/generators/generators.d.ts
@@ -0,0 +1,9 @@
+export interface ISchemaGenerator {
+ generateDefaultSchema(instance: Object): Object;
+ generateDefaultSchemaWithOptions(instance: Object, allowAdditionalProperties: (properties: Object) => boolean, requiredProperties: (properties: string[]) => string[]): Object;
+}
+export interface IUISchemaGenerator {
+ generateDefaultUISchema(jsonSchema: any, layoutType?: string): any;
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/generators/generators.js b/dist/ts-build/components/generators/generators.js
new file mode 100644
index 000000000..d34038cf8
--- /dev/null
+++ b/dist/ts-build/components/generators/generators.js
@@ -0,0 +1,4 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms.generators', []).name;
+//# sourceMappingURL=generators.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/generators/generators.js.map b/dist/ts-build/components/generators/generators.js.map
new file mode 100644
index 000000000..53f825d5d
--- /dev/null
+++ b/dist/ts-build/components/generators/generators.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../../src/components/generators/generators.ts"],"names":[],"mappings":";AAaA;kBAAe,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/generators/schema-gen.service.d.ts b/dist/ts-build/components/generators/schema-gen.service.d.ts
new file mode 100644
index 000000000..e8ed6fec3
--- /dev/null
+++ b/dist/ts-build/components/generators/schema-gen.service.d.ts
@@ -0,0 +1,15 @@
+import { ISchemaGenerator } from './generators';
+export declare class SchemaGenerator implements ISchemaGenerator {
+ protected static requiredProperties(properties: string[]): string[];
+ protected static allowAdditionalProperties(properties: Object): boolean;
+ generateDefaultSchema(instance: Object): Object;
+ generateDefaultSchemaWithOptions(instance: Object, allowAdditionalProperties: (properties: Object) => boolean, requiredProperties: (properties: string[]) => string[]): Object;
+ private schemaObject(instance, allowAdditionalProperties, requiredProperties);
+ private properties;
+ private property(instance, allowAdditionalProperties, requiredProperties);
+ private schemaObjectOrNullOrArray(instance, allowAdditionalProperties, requiredProperties);
+ private schemaArray(instance, allowAdditionalProperties, requiredProperties);
+ private distinct(array, discriminator);
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/generators/schema-gen.service.js b/dist/ts-build/components/generators/schema-gen.service.js
new file mode 100644
index 000000000..db3b98eea
--- /dev/null
+++ b/dist/ts-build/components/generators/schema-gen.service.js
@@ -0,0 +1,110 @@
+"use strict";
+var SchemaGenerator = (function () {
+ function SchemaGenerator() {
+ var _this = this;
+ this.properties = function (instance, allowAdditionalProperties, requiredProperties) {
+ var generator = _this;
+ return _.keys(instance).reduce(function (acc, key) {
+ acc[key] = generator.property(instance[key], allowAdditionalProperties, requiredProperties);
+ return acc;
+ }, {});
+ };
+ }
+ SchemaGenerator.requiredProperties = function (properties) {
+ return properties;
+ };
+ SchemaGenerator.allowAdditionalProperties = function (properties) {
+ return true;
+ };
+ SchemaGenerator.prototype.generateDefaultSchema = function (instance) {
+ return this.schemaObject(instance, SchemaGenerator.allowAdditionalProperties, SchemaGenerator.requiredProperties);
+ };
+ ;
+ SchemaGenerator.prototype.generateDefaultSchemaWithOptions = function (instance, allowAdditionalProperties, requiredProperties) {
+ return this.schemaObject(instance, allowAdditionalProperties, requiredProperties);
+ };
+ SchemaGenerator.prototype.schemaObject = function (instance, allowAdditionalProperties, requiredProperties) {
+ var properties = this.properties(instance, allowAdditionalProperties, requiredProperties);
+ return {
+ 'type': 'object',
+ 'properties': properties,
+ 'additionalProperties': allowAdditionalProperties(properties),
+ 'required': requiredProperties(_.keys(properties))
+ };
+ };
+ SchemaGenerator.prototype.property = function (instance, allowAdditionalProperties, requiredProperties) {
+ switch (typeof instance) {
+ case 'string':
+ return { 'type': 'string' };
+ case 'boolean':
+ return { 'type': 'boolean' };
+ case 'number':
+ if (_.toNumber(instance) % 1 === 0) {
+ return { 'type': 'integer' };
+ }
+ return { 'type': 'number' };
+ case 'object':
+ return this.schemaObjectOrNullOrArray(instance, allowAdditionalProperties, requiredProperties);
+ default:
+ return {};
+ }
+ };
+ SchemaGenerator.prototype.schemaObjectOrNullOrArray = function (instance, allowAdditionalProperties, requiredProperties) {
+ if (!_.isNull(instance)) {
+ if (_.isArray(instance)) {
+ return this.schemaArray(instance, allowAdditionalProperties, requiredProperties);
+ }
+ else {
+ return this.schemaObject(instance, allowAdditionalProperties, requiredProperties);
+ }
+ }
+ else {
+ return { 'type': 'null' };
+ }
+ };
+ SchemaGenerator.prototype.schemaArray = function (instance, allowAdditionalProperties, requiredProperties) {
+ if (instance.length) {
+ var generator_1 = this;
+ var allProperties = instance.map(function (object) {
+ return generator_1.property(object, allowAdditionalProperties, requiredProperties);
+ });
+ var uniqueProperties = this.distinct(allProperties, JSON.stringify);
+ if (uniqueProperties.length === 1) {
+ return {
+ 'type': 'array',
+ 'items': uniqueProperties[0]
+ };
+ }
+ else {
+ return {
+ 'type': 'array',
+ 'items': {
+ 'oneOf': uniqueProperties
+ }
+ };
+ }
+ }
+ };
+ ;
+ SchemaGenerator.prototype.distinct = function (array, discriminator) {
+ var known = {};
+ return array.filter(function (item) {
+ var discriminatorValue = discriminator(item);
+ if (_.has(known, discriminatorValue)) {
+ return false;
+ }
+ else {
+ return (known[discriminatorValue] = true);
+ }
+ });
+ };
+ ;
+ return SchemaGenerator;
+}());
+exports.SchemaGenerator = SchemaGenerator;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.generators.schema', ['jsonforms.generators'])
+ .service('SchemaGenerator', SchemaGenerator)
+ .name;
+//# sourceMappingURL=schema-gen.service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/generators/schema-gen.service.js.map b/dist/ts-build/components/generators/schema-gen.service.js.map
new file mode 100644
index 000000000..8709ff3d7
--- /dev/null
+++ b/dist/ts-build/components/generators/schema-gen.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"schema-gen.service.js","sourceRoot":"","sources":["../../../../src/components/generators/schema-gen.service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/generators/ui-schema-gen.service.d.ts b/dist/ts-build/components/generators/ui-schema-gen.service.d.ts
new file mode 100644
index 000000000..be6bb41d2
--- /dev/null
+++ b/dist/ts-build/components/generators/ui-schema-gen.service.d.ts
@@ -0,0 +1,14 @@
+import { IUISchemaGenerator } from './generators';
+import { IUISchemaElement } from '../../uischema';
+export declare class UISchemaGenerator implements IUISchemaGenerator {
+ private static createLayout(layoutType);
+ private static isIgnoredProperty(propertyKey, propertyValue);
+ private static deriveType(jsonSchema);
+ private static getControlObject(label, ref);
+ private static wrapInLayoutIfNecessary(uiSchema, layoutType);
+ generateDefaultUISchema(jsonSchema: any, layoutType?: string): IUISchemaElement;
+ private generateUISchema(jsonSchema, schemaElements, currentRef, schemaName, layoutType);
+ private addLabel;
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/generators/ui-schema-gen.service.js b/dist/ts-build/components/generators/ui-schema-gen.service.js
new file mode 100644
index 000000000..6fdb06652
--- /dev/null
+++ b/dist/ts-build/components/generators/ui-schema-gen.service.js
@@ -0,0 +1,98 @@
+"use strict";
+var pathutil_1 = require('../services/pathutil');
+var UISchemaGenerator = (function () {
+ function UISchemaGenerator() {
+ this.addLabel = function (layout, labelName) {
+ if (labelName && labelName !== '') {
+ var label = {
+ type: 'Label',
+ text: pathutil_1.PathUtil.beautify(labelName)
+ };
+ layout.elements.push(label);
+ }
+ };
+ }
+ UISchemaGenerator.createLayout = function (layoutType) {
+ return {
+ type: layoutType,
+ elements: []
+ };
+ };
+ UISchemaGenerator.isIgnoredProperty = function (propertyKey, propertyValue) {
+ return propertyKey === 'id' && typeof propertyValue === 'string';
+ };
+ UISchemaGenerator.deriveType = function (jsonSchema) {
+ if (jsonSchema.type) {
+ return jsonSchema.type;
+ }
+ if (jsonSchema.properties || jsonSchema.additionalProperties) {
+ return 'object';
+ }
+ return 'null';
+ };
+ UISchemaGenerator.getControlObject = function (label, ref) {
+ var control = {
+ type: 'Control',
+ scope: {
+ $ref: ref
+ }
+ };
+ if (label) {
+ control.label = label;
+ }
+ return control;
+ };
+ UISchemaGenerator.wrapInLayoutIfNecessary = function (uiSchema, layoutType) {
+ if (uiSchema['elements'] === undefined) {
+ var verticalLayout = UISchemaGenerator.createLayout(layoutType);
+ verticalLayout.elements.push(uiSchema);
+ return verticalLayout;
+ }
+ return uiSchema;
+ };
+ UISchemaGenerator.prototype.generateDefaultUISchema = function (jsonSchema, layoutType) {
+ if (layoutType === void 0) { layoutType = 'VerticalLayout'; }
+ var uiSchema = this.generateUISchema(jsonSchema, [], '#', '', layoutType);
+ return UISchemaGenerator.wrapInLayoutIfNecessary(uiSchema, layoutType);
+ };
+ ;
+ UISchemaGenerator.prototype.generateUISchema = function (jsonSchema, schemaElements, currentRef, schemaName, layoutType) {
+ var _this = this;
+ var type = UISchemaGenerator.deriveType(jsonSchema);
+ switch (type) {
+ case 'object':
+ var layout_1 = UISchemaGenerator.createLayout(layoutType);
+ schemaElements.push(layout_1);
+ this.addLabel(layout_1, schemaName);
+ if (jsonSchema.properties) {
+ var nextRef_1 = currentRef + '/properties';
+ _.forOwn(jsonSchema.properties, function (value, key) {
+ if (!UISchemaGenerator.isIgnoredProperty(key, value)) {
+ _this.generateUISchema(value, layout_1.elements, nextRef_1 + "/" + key, key, layoutType);
+ }
+ });
+ }
+ return layout_1;
+ case 'array':
+ case 'string':
+ case 'number':
+ case 'integer':
+ case 'boolean':
+ var controlObject = UISchemaGenerator.getControlObject(pathutil_1.PathUtil.beautify(schemaName), currentRef);
+ schemaElements.push(controlObject);
+ return controlObject;
+ case 'null':
+ return null;
+ default:
+ throw new Error('Unknown type: ' + JSON.stringify(jsonSchema));
+ }
+ };
+ ;
+ return UISchemaGenerator;
+}());
+exports.UISchemaGenerator = UISchemaGenerator;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.generators.uischema', ['jsonforms.generators'])
+ .service('UISchemaGenerator', UISchemaGenerator).name;
+//# sourceMappingURL=ui-schema-gen.service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/generators/ui-schema-gen.service.js.map b/dist/ts-build/components/generators/ui-schema-gen.service.js.map
new file mode 100644
index 000000000..708981865
--- /dev/null
+++ b/dist/ts-build/components/generators/ui-schema-gen.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ui-schema-gen.service.js","sourceRoot":"","sources":["../../../../src/components/generators/ui-schema-gen.service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/capitalize/capitalize.filter.d.ts b/dist/ts-build/components/ng-services/capitalize/capitalize.filter.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/ng-services/capitalize/capitalize.filter.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/ng-services/capitalize/capitalize.filter.js b/dist/ts-build/components/ng-services/capitalize/capitalize.filter.js
new file mode 100644
index 000000000..f3edd9097
--- /dev/null
+++ b/dist/ts-build/components/ng-services/capitalize/capitalize.filter.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.filters.capitalize', [])
+ .filter('capitalize', function () {
+ return function (input) { return _.capitalize(input); };
+}).name;
+//# sourceMappingURL=capitalize.filter.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/capitalize/capitalize.filter.js.map b/dist/ts-build/components/ng-services/capitalize/capitalize.filter.js.map
new file mode 100644
index 000000000..9feb82e8a
--- /dev/null
+++ b/dist/ts-build/components/ng-services/capitalize/capitalize.filter.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"capitalize.filter.js","sourceRoot":"","sources":["../../../../../src/components/ng-services/capitalize/capitalize.filter.ts"],"names":[],"mappings":";AACA;kBAAe,OAAO;KACjB,MAAM,CAAC,8BAA8B,EAAE,EAAE,CAAC;KAC1C,MAAM,CAAC,YAAY,EAAE;IAClB,OAAA,UAAC,KAAK,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAnB,CAAmB;AAA9B,CAA8B,CACjC,CAAC,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/data/data.service.d.ts b/dist/ts-build/components/ng-services/data/data.service.d.ts
new file mode 100644
index 000000000..48caf3db8
--- /dev/null
+++ b/dist/ts-build/components/ng-services/data/data.service.d.ts
@@ -0,0 +1,8 @@
+export declare class DataService {
+ private root;
+ unset(): void;
+ setRoot(newRootData: any): void;
+ getRoot(): any;
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/ng-services/data/data.service.js b/dist/ts-build/components/ng-services/data/data.service.js
new file mode 100644
index 000000000..1f70ba273
--- /dev/null
+++ b/dist/ts-build/components/ng-services/data/data.service.js
@@ -0,0 +1,25 @@
+"use strict";
+var angular = require('angular');
+var DataService = (function () {
+ function DataService() {
+ }
+ DataService.prototype.unset = function () {
+ this.root = undefined;
+ };
+ DataService.prototype.setRoot = function (newRootData) {
+ if (this.root === undefined) {
+ this.root = newRootData;
+ }
+ };
+ DataService.prototype.getRoot = function () {
+ return this.root;
+ };
+ return DataService;
+}());
+exports.DataService = DataService;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.service.data', [])
+ .service('DataService', DataService)
+ .name;
+//# sourceMappingURL=data.service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/data/data.service.js.map b/dist/ts-build/components/ng-services/data/data.service.js.map
new file mode 100644
index 000000000..9feeca705
--- /dev/null
+++ b/dist/ts-build/components/ng-services/data/data.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"data.service.js","sourceRoot":"","sources":["../../../../../src/components/ng-services/data/data.service.ts"],"names":[],"mappings":";AAAA,IAAY,OAAO,WAAM,SAAS,CAAC,CAAA;AAEnC;IAAA;IAiBA,CAAC;IAbU,2BAAK,GAAZ;QACI,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC;IAEM,6BAAO,GAAd,UAAe,WAAgB;QAC3B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAC5B,CAAC;IACL,CAAC;IAEM,6BAAO,GAAd;QACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACL,kBAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,mBAAW,cAiBvB,CAAA;AAGD;kBAAe,OAAO;KACjB,MAAM,CAAC,wBAAwB,EAAE,EAAE,CAAC;KACpC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;KACnC,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/label/label.service.d.ts b/dist/ts-build/components/ng-services/label/label.service.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/ng-services/label/label.service.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/ng-services/label/label.service.js b/dist/ts-build/components/ng-services/label/label.service.js
new file mode 100644
index 000000000..f2ac1ba56
--- /dev/null
+++ b/dist/ts-build/components/ng-services/label/label.service.js
@@ -0,0 +1,8 @@
+"use strict";
+var Labels_1 = require('../../renderers/Labels');
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.service.label', [])
+ .service('LabelService', Labels_1.Labels)
+ .name;
+//# sourceMappingURL=label.service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/label/label.service.js.map b/dist/ts-build/components/ng-services/label/label.service.js.map
new file mode 100644
index 000000000..00fd472d0
--- /dev/null
+++ b/dist/ts-build/components/ng-services/label/label.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"label.service.js","sourceRoot":"","sources":["../../../../../src/components/ng-services/label/label.service.ts"],"names":[],"mappings":";AACA,uBAAqB,wBAAwB,CAAC,CAAA;AAE9C;kBAAe,OAAO;KACjB,MAAM,CAAC,yBAAyB,EAAE,EAAE,CAAC;KACrC,OAAO,CAAC,cAAc,EAAE,eAAM,CAAC;KAC/B,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/ng-services.d.ts b/dist/ts-build/components/ng-services/ng-services.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/ng-services/ng-services.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/ng-services/ng-services.js b/dist/ts-build/components/ng-services/ng-services.js
new file mode 100644
index 000000000..ed5d2684e
--- /dev/null
+++ b/dist/ts-build/components/ng-services/ng-services.js
@@ -0,0 +1,22 @@
+"use strict";
+var ui_schema_registry_service_1 = require('./ui-schema-registry/ui-schema-registry.service');
+var path_resolver_service_1 = require('./path-resolver/path-resolver.service');
+var label_service_1 = require('./label/label.service');
+var capitalize_filter_1 = require('./capitalize/capitalize.filter');
+var services_1 = require("../services/services");
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms.services', [
+ ui_schema_registry_service_1.default,
+ path_resolver_service_1.default,
+ label_service_1.default,
+ capitalize_filter_1.default
+]).value('ServiceIds', {
+ validation: services_1.ServiceId.Validation,
+ data: services_1.ServiceId.DataProvider,
+ schema: services_1.ServiceId.SchemaProvider,
+ uischema: services_1.ServiceId.UiSchemaProvider,
+ scope: services_1.ServiceId.ScopeProvider,
+ rule: services_1.ServiceId.RuleService,
+ path: services_1.ServiceId.PathResolver
+}).name;
+//# sourceMappingURL=ng-services.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/ng-services.js.map b/dist/ts-build/components/ng-services/ng-services.js.map
new file mode 100644
index 000000000..7549446cc
--- /dev/null
+++ b/dist/ts-build/components/ng-services/ng-services.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ng-services.js","sourceRoot":"","sources":["../../../../src/components/ng-services/ng-services.ts"],"names":[],"mappings":";AACA,2CAA6B,iDAAiD,CAAC,CAAA;AAC/E,sCAAyB,uCAAuC,CAAC,CAAA;AACjE,8BAAyB,uBAAuB,CAAC,CAAA;AACjD,kCAA6B,gCAAgC,CAAC,CAAA;AAC9D,yBAAwB,sBAAsB,CAAC,CAAA;AAE/C;kBAAe,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE;IAChD,oCAAgB;IAChB,+BAAY;IACZ,uBAAY;IACZ,2BAAgB;CACnB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE;IACnB,UAAU,EAAE,oBAAS,CAAC,UAAU;IAChC,IAAI,EAAE,oBAAS,CAAC,YAAY;IAC5B,MAAM,EAAE,oBAAS,CAAC,cAAc;IAChC,QAAQ,EAAE,oBAAS,CAAC,gBAAgB;IACpC,KAAK,EAAE,oBAAS,CAAC,aAAa;IAC9B,IAAI,EAAE,oBAAS,CAAC,WAAW;IAC3B,IAAI,EAAE,oBAAS,CAAC,YAAY;CAC/B,CAAC,CAAC,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.d.ts b/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.js b/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.js
new file mode 100644
index 000000000..99cff1a4f
--- /dev/null
+++ b/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.js
@@ -0,0 +1,8 @@
+"use strict";
+var path_resolver_1 = require('../../services/path-resolver/path-resolver');
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.service.path-resolver', [])
+ .service('PathResolver', path_resolver_1.RefResolver)
+ .name;
+//# sourceMappingURL=path-resolver.service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.js.map b/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.js.map
new file mode 100644
index 000000000..4527289a9
--- /dev/null
+++ b/dist/ts-build/components/ng-services/path-resolver/path-resolver.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"path-resolver.service.js","sourceRoot":"","sources":["../../../../../src/components/ng-services/path-resolver/path-resolver.service.ts"],"names":[],"mappings":";AACA,8BAA0B,4CAA4C,CAAC,CAAA;AAEvE;kBAAe,OAAO;KACjB,MAAM,CAAC,iCAAiC,EAAE,EAAE,CAAC;KAC7C,OAAO,CAAC,cAAc,EAAE,2BAAW,CAAC;KACpC,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.d.ts b/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.d.ts
new file mode 100644
index 000000000..0c286db59
--- /dev/null
+++ b/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.d.ts
@@ -0,0 +1,21 @@
+import { IUISchemaElement } from '../../../uischema';
+import { IUISchemaGenerator } from '../../generators/generators';
+import { SchemaElement } from '../../../jsonschema';
+export interface UiSchemaRegistry {
+ register(uiSchema: IUISchemaElement, tester: UiSchemaTester): void;
+ getBestUiSchema(schema: SchemaElement, data: any): IUISchemaElement;
+}
+export interface UiSchemaTester {
+ (schema: SchemaElement, data: any): number;
+}
+export declare const NOT_FITTING: number;
+export declare class UiSchemaRegistryImpl implements UiSchemaRegistry {
+ private uiSchemaGenerator;
+ static $inject: string[];
+ private registry;
+ constructor(uiSchemaGenerator: IUISchemaGenerator);
+ register(uiSchema: IUISchemaElement, tester: UiSchemaTester): void;
+ getBestUiSchema(schema: SchemaElement, data: any): IUISchemaElement;
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.js b/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.js
new file mode 100644
index 000000000..24e96df70
--- /dev/null
+++ b/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.js
@@ -0,0 +1,31 @@
+"use strict";
+exports.NOT_FITTING = -1;
+var NO_UISCHEMA_DEFINITION = { uiSchema: null, tester: function (schema) { return 0; } };
+var UiSchemaRegistryImpl = (function () {
+ function UiSchemaRegistryImpl(uiSchemaGenerator) {
+ this.uiSchemaGenerator = uiSchemaGenerator;
+ this.registry = [];
+ this.registry.push(NO_UISCHEMA_DEFINITION);
+ }
+ UiSchemaRegistryImpl.prototype.register = function (uiSchema, tester) {
+ this.registry.push({ uiSchema: uiSchema, tester: tester });
+ };
+ UiSchemaRegistryImpl.prototype.getBestUiSchema = function (schema, data) {
+ var bestSchema = _.maxBy(this.registry, function (renderer) {
+ return renderer.tester(schema, data);
+ });
+ if (bestSchema === NO_UISCHEMA_DEFINITION) {
+ return this.uiSchemaGenerator.generateDefaultUISchema(schema);
+ }
+ return bestSchema.uiSchema;
+ };
+ UiSchemaRegistryImpl.$inject = ['UISchemaGenerator'];
+ return UiSchemaRegistryImpl;
+}());
+exports.UiSchemaRegistryImpl = UiSchemaRegistryImpl;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.service.uischema-registry', [])
+ .service('UiSchemaRegistry', UiSchemaRegistryImpl)
+ .name;
+//# sourceMappingURL=ui-schema-registry.service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.js.map b/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.js.map
new file mode 100644
index 000000000..dda861f1b
--- /dev/null
+++ b/dist/ts-build/components/ng-services/ui-schema-registry/ui-schema-registry.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ui-schema-registry.service.js","sourceRoot":"","sources":["../../../../../src/components/ng-services/ui-schema-registry/ui-schema-registry.service.ts"],"names":[],"mappings":";AAea,mBAAW,GAAW,CAAC,CAAC,CAAC;AACtC,IAAM,sBAAsB,GAAG,EAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAC,MAAM,IAAK,OAAA,CAAC,EAAD,CAAC,EAAC,CAAC;AACvE;IAGI,8BAAoB,iBAAqC;QAArC,sBAAiB,GAAjB,iBAAiB,CAAoB;QADjD,aAAQ,GAA8B,EAAE,CAAC;QAE7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;IAED,uCAAQ,GAAR,UAAS,QAA0B,EAAE,MAAsB;QACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IAC7D,CAAC;IACD,8CAAe,GAAf,UAAgB,MAAqB,EAAE,IAAS;QAC5C,IAAI,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAA,QAAQ;YAC5C,OAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;QAA7B,CAA6B,CAChC,CAAC;QACF,EAAE,CAAC,CAAC,UAAU,KAAK,sBAAsB,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAjBM,4BAAO,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAkB3C,2BAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,4BAAoB,uBAmBhC,CAAA;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,qCAAqC,EAAE,EAAE,CAAC;KACjD,OAAO,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;KACjD,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/Labels.d.ts b/dist/ts-build/components/renderers/Labels.d.ts
new file mode 100644
index 000000000..e23cf8e8d
--- /dev/null
+++ b/dist/ts-build/components/renderers/Labels.d.ts
@@ -0,0 +1,6 @@
+import { ILabelObject, IWithLabel } from '../../uischema';
+export declare class Labels {
+ shouldShowLabel(withLabel: IWithLabel): boolean;
+ getElementLabelObject(withLabel: IWithLabel, schemaPath: string): ILabelObject;
+}
+export declare const LabelObjectUtil: Labels;
diff --git a/dist/ts-build/components/renderers/Labels.js b/dist/ts-build/components/renderers/Labels.js
new file mode 100644
index 000000000..cd182488a
--- /dev/null
+++ b/dist/ts-build/components/renderers/Labels.js
@@ -0,0 +1,57 @@
+"use strict";
+var pathutil_1 = require('../services/pathutil');
+var Labels = (function () {
+ function Labels() {
+ }
+ Labels.prototype.shouldShowLabel = function (withLabel) {
+ var label = withLabel.label;
+ if (label === undefined) {
+ return true;
+ }
+ else if (_.isBoolean(label)) {
+ return label;
+ }
+ else if (_.isString(label)) {
+ return label !== '';
+ }
+ else {
+ var labelObj = label;
+ return _.has(labelObj, 'show') ? labelObj.show : true;
+ }
+ };
+ Labels.prototype.getElementLabelObject = function (withLabel, schemaPath) {
+ var labelProperty = withLabel.label;
+ if (_.isBoolean(labelProperty)) {
+ if (labelProperty) {
+ return new LabelObject(pathutil_1.PathUtil.beautifiedLastFragment(schemaPath), labelProperty);
+ }
+ else {
+ return new LabelObject(undefined, labelProperty);
+ }
+ }
+ else if (_.isString(labelProperty)) {
+ return new LabelObject(labelProperty, true);
+ }
+ else if (_.isObject(labelProperty)) {
+ var show = _.has(labelProperty, 'show') ?
+ labelProperty.show : true;
+ var label = _.has(labelProperty, 'text') ?
+ labelProperty.text : pathutil_1.PathUtil.beautifiedLastFragment(schemaPath);
+ return new LabelObject(label, show);
+ }
+ else {
+ return new LabelObject(pathutil_1.PathUtil.beautifiedLastFragment(schemaPath), true);
+ }
+ };
+ return Labels;
+}());
+exports.Labels = Labels;
+exports.LabelObjectUtil = new Labels();
+var LabelObject = (function () {
+ function LabelObject(text, show) {
+ this.text = text;
+ this.show = show;
+ }
+ return LabelObject;
+}());
+//# sourceMappingURL=Labels.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/Labels.js.map b/dist/ts-build/components/renderers/Labels.js.map
new file mode 100644
index 000000000..dca0bb92b
--- /dev/null
+++ b/dist/ts-build/components/renderers/Labels.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Labels.js","sourceRoot":"","sources":["../../../../src/components/renderers/Labels.ts"],"names":[],"mappings":";AACA,yBAAuB,sBAAsB,CAAC,CAAA;AAG9C;IAAA;IAuCA,CAAC;IArCU,gCAAe,GAAtB,UAAuB,SAAqB;QACxC,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC5B,EAAE,CAAC,CAAC,KAAK,KAAK,SAAU,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC;QAChB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAW,KAAK,CAAC;QAC3B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAW,KAAM,KAAK,EAAE,CAAC;QACnC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,QAAQ,GAAkB,KAAK,CAAC;YACpC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1D,CAAC;IACL,CAAC;IAEM,sCAAqB,GAA5B,UAA6B,SAAqB,EACd,UAAkB;QAClD,IAAI,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;QACpC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,WAAW,CAClB,mBAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAClC,aAAa,CAAC,CAAC;YAChC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,WAAW,CAAC,SAAS,EAAW,aAAa,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,WAAW,CAAS,aAAa,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC;gBACpB,aAAc,CAAC,IAAI,GAAG,IAAI,CAAC;YAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC;gBACrB,aAAc,CAAC,IAAI,GAAG,mBAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,IAAI,WAAW,CAAC,mBAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IACL,aAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,cAAM,SAuClB,CAAA;AACY,uBAAe,GAAG,IAAI,MAAM,EAAE,CAAC;AAE5C;IAII,qBAAY,IAAY,EAAE,IAAa;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACL,kBAAC;AAAD,CAAC,AARD,IAQC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/abstract-control.d.ts b/dist/ts-build/components/renderers/controls/abstract-control.d.ts
new file mode 100644
index 000000000..ab9b2e301
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/abstract-control.d.ts
@@ -0,0 +1,28 @@
+import { IRuleServiceCallBack } from '../../services/rule/rule-service';
+import { IRule, IControlObject } from '../../../uischema';
+import { SchemaElement } from '../../../jsonschema';
+export declare class AbstractControl implements IRuleServiceCallBack {
+ protected scope: ng.IScope;
+ instance: any;
+ rule: IRule;
+ hide: boolean;
+ protected schemaPath: string;
+ protected resolvedData: any;
+ protected resolvedSchema: SchemaElement;
+ protected fragment: string;
+ protected uiSchema: IControlObject;
+ protected schema: SchemaElement;
+ protected data: any;
+ private services;
+ private alerts;
+ private showLabel;
+ protected label: string;
+ constructor(scope: ng.IScope);
+ protected id: string;
+ private static createLabel(uischema, schemaPath, isRequiredProperty);
+ protected triggerChangeEvent(): void;
+ private validate();
+ private static isRequired(schema, schemaPath);
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/abstract-control.js b/dist/ts-build/components/renderers/controls/abstract-control.js
new file mode 100644
index 000000000..0a3b7d347
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/abstract-control.js
@@ -0,0 +1,84 @@
+"use strict";
+var pathutil_1 = require('../../services/pathutil');
+var path_resolver_1 = require('../../services/path-resolver/path-resolver');
+var services_1 = require('../../services/services');
+var Labels_1 = require('../Labels');
+var AbstractControl = (function () {
+ function AbstractControl(scope) {
+ var _this = this;
+ this.scope = scope;
+ this.alerts = [];
+ this.services = scope['services'];
+ this.uiSchema = scope['uischema'];
+ this.schema = this.services.get(services_1.ServiceId.SchemaProvider).getSchema();
+ this.data = this.services.get(services_1.ServiceId.DataProvider).getData();
+ var indexedSchemaPath = this.uiSchema['scope']['$ref'];
+ this.schemaPath = pathutil_1.PathUtil.filterIndexes(indexedSchemaPath);
+ this.fragment = path_resolver_1.PathResolver.lastFragment(this.uiSchema.scope.$ref);
+ this.resolvedData = path_resolver_1.PathResolver.resolveToLastModel(this.data, this.uiSchema.scope.$ref);
+ this.resolvedSchema = path_resolver_1.PathResolver.resolveSchema(this.schema, this.schemaPath);
+ this.showLabel = Labels_1.LabelObjectUtil.shouldShowLabel(this.uiSchema);
+ this.label = AbstractControl.createLabel(this.uiSchema, this.schemaPath, AbstractControl.isRequired(this.schema, this.schemaPath));
+ this.scope.$on('jsonforms:change', function () {
+ if (_this.validate) {
+ _this.validate();
+ }
+ _this.services.get(services_1.ServiceId.RuleService).reevaluateRules(_this.schemaPath);
+ });
+ this.instance = this.data;
+ this.rule = this.uiSchema.rule;
+ this.services.get(services_1.ServiceId.RuleService).addRuleTrack(this);
+ }
+ Object.defineProperty(AbstractControl.prototype, "id", {
+ get: function () {
+ return this.schemaPath;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ AbstractControl.createLabel = function (uischema, schemaPath, isRequiredProperty) {
+ var labelObject = Labels_1.LabelObjectUtil.getElementLabelObject(uischema, schemaPath);
+ var stringBuilder = labelObject.text;
+ if (isRequiredProperty) {
+ stringBuilder += '*';
+ }
+ return stringBuilder;
+ };
+ AbstractControl.prototype.triggerChangeEvent = function () {
+ this.scope.$root.$broadcast('jsonforms:change');
+ };
+ AbstractControl.prototype.validate = function () {
+ var validationService = this.services.get(services_1.ServiceId.Validation);
+ validationService.validate(this.data, this.schema);
+ var result = validationService.getResult(this.data, '/' + pathutil_1.PathUtil.normalize(this.schemaPath));
+ this.alerts = [];
+ if (result !== undefined) {
+ var alert_1 = {
+ type: 'danger',
+ msg: result
+ };
+ this.alerts.push(alert_1);
+ }
+ };
+ AbstractControl.isRequired = function (schema, schemaPath) {
+ var path = pathutil_1.PathUtil.init(schemaPath);
+ var lastFragment = pathutil_1.PathUtil.lastFragment(path);
+ if (lastFragment === 'properties') {
+ path = pathutil_1.PathUtil.init(path);
+ }
+ var subSchema = path_resolver_1.PathResolver.resolveSchema(schema, path + '/required');
+ if (subSchema !== undefined) {
+ if (subSchema.indexOf(pathutil_1.PathUtil.lastFragment(schemaPath)) !== -1) {
+ return true;
+ }
+ }
+ return false;
+ };
+ return AbstractControl;
+}());
+exports.AbstractControl = AbstractControl;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms.control.base', ['jsonforms.renderers.controls'])
+ .factory('BaseController', function () { return AbstractControl; })
+ .name;
+//# sourceMappingURL=abstract-control.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/abstract-control.js.map b/dist/ts-build/components/renderers/controls/abstract-control.js.map
new file mode 100644
index 000000000..ef64a49ac
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/abstract-control.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"abstract-control.js","sourceRoot":"","sources":["../../../../../src/components/renderers/controls/abstract-control.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/array/array.directive.d.ts b/dist/ts-build/components/renderers/controls/array/array.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/array/array.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/array/array.directive.js b/dist/ts-build/components/renderers/controls/array/array.directive.js
new file mode 100644
index 000000000..0048dd0ea
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/array/array.directive.js
@@ -0,0 +1,116 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+require('lodash');
+var pathutil_1 = require('../../../services/pathutil');
+var abstract_control_1 = require('../abstract-control');
+var path_resolver_1 = require('../../../services/path-resolver/path-resolver');
+var testers_1 = require('../../testers');
+var pluralize = require('pluralize');
+var readOnlyArrayTemplate = "\n \n \n ";
+var ArrayReadOnlyDirective = (function () {
+ function ArrayReadOnlyDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'read-only-array.html';
+ this.controller = ArrayController;
+ this.controllerAs = 'vm';
+ }
+ return ArrayReadOnlyDirective;
+}());
+var arrayTemplate = "\n \n \n ";
+var ArrayDirective = (function () {
+ function ArrayDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'array.html';
+ this.controller = ArrayController;
+ this.controllerAs = 'vm';
+ }
+ return ArrayDirective;
+}());
+var ArrayController = (function (_super) {
+ __extends(ArrayController, _super);
+ function ArrayController(scope, uiGenerator) {
+ _super.call(this, scope);
+ this.submitElement = {};
+ var resolvedSubSchema = path_resolver_1.PathResolver.resolveSchema(this.schema, this.schemaPath);
+ var items = resolvedSubSchema.items;
+ this.arraySchema = items;
+ this.properties = _.keys(items['properties']);
+ var detailUiSchema = this.uiSchema['options'] ?
+ this.uiSchema['options']['detail-uischema'] : undefined;
+ this.arrayUiSchema = detailUiSchema ? detailUiSchema :
+ uiGenerator.generateDefaultUISchema(items, 'HorizontalLayout');
+ }
+ Object.defineProperty(ArrayController.prototype, "buttonText", {
+ get: function () {
+ return pluralize(pathutil_1.PathUtil.beautifiedLastFragment(this.schemaPath), 1);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ArrayController.prototype.submitCallback = function () {
+ if (this.resolvedData[this.fragment] === undefined) {
+ this.resolvedData[this.fragment] = [];
+ }
+ this.resolvedData[this.fragment].push(_.clone(this.submitElement));
+ this.submitElement = {};
+ };
+ ArrayController.prototype.deleteCallback = function (element) {
+ var index = this.resolvedData[this.fragment].indexOf(element);
+ if (index !== -1) {
+ this.resolvedData[this.fragment].splice(index, 1);
+ }
+ };
+ Object.defineProperty(ArrayController.prototype, "supportsSubmit", {
+ get: function () {
+ return this.supports('submit');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ArrayController.prototype, "supportsDelete", {
+ get: function () {
+ return this.supports('delete');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ArrayController.prototype.supports = function (keyword) {
+ var options = this.uiSchema['options'];
+ return !(options !== undefined && options[keyword] === false);
+ };
+ Object.defineProperty(ArrayController.prototype, "isEmpty", {
+ get: function () {
+ return _.isEmpty(this.resolvedData) || _.isEmpty(this.resolvedData[this.fragment]);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ArrayController.prototype, "emptyMsg", {
+ get: function () {
+ return 'No ' + pathutil_1.PathUtil.beautifiedLastFragment(this.schemaPath) + ' yet.';
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ArrayController.$inject = ['$scope', 'UISchemaGenerator'];
+ return ArrayController;
+}(abstract_control_1.AbstractControl));
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.array', ['jsonforms.renderers.controls'])
+ .directive('arrayReadonlyControl', function () { return new ArrayReadOnlyDirective(); })
+ .directive('arrayControl', function () { return new ArrayDirective(); })
+ .run(['RendererService', function (RendererService) {
+ RendererService.register('array-readonly-control', testers_1.Testers.and(testers_1.schemaTypeIs('array'), testers_1.optionIs('simple', true)), 1);
+ RendererService.register('array-control', testers_1.schemaTypeIs('array'), 1);
+ }])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('read-only-array.html', readOnlyArrayTemplate);
+ $templateCache.put('array.html', arrayTemplate);
+ }])
+ .name;
+//# sourceMappingURL=array.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/array/array.directive.js.map b/dist/ts-build/components/renderers/controls/array/array.directive.js.map
new file mode 100644
index 000000000..4dff135a9
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/array/array.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"array.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/array/array.directive.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/boolean/boolean.directive.d.ts b/dist/ts-build/components/renderers/controls/boolean/boolean.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/boolean/boolean.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/boolean/boolean.directive.js b/dist/ts-build/components/renderers/controls/boolean/boolean.directive.js
new file mode 100644
index 000000000..192a71c85
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/boolean/boolean.directive.js
@@ -0,0 +1,39 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_control_1 = require('../abstract-control');
+var testers_1 = require('../../testers');
+var BooleanDirective = (function () {
+ function BooleanDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'boolean.html';
+ this.controller = BooleanController;
+ this.controllerAs = 'vm';
+ }
+ return BooleanDirective;
+}());
+var BooleanController = (function (_super) {
+ __extends(BooleanController, _super);
+ function BooleanController(scope) {
+ _super.call(this, scope);
+ }
+ BooleanController.$inject = ['$scope'];
+ return BooleanController;
+}(abstract_control_1.AbstractControl));
+var booleanTemplate = "\n \n";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.boolean', ['jsonforms.renderers.controls'])
+ .directive('booleanControl', function () { return new BooleanDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('boolean-control', testers_1.schemaTypeIs('boolean'), 1);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('boolean.html', booleanTemplate);
+ }])
+ .name;
+//# sourceMappingURL=boolean.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/boolean/boolean.directive.js.map b/dist/ts-build/components/renderers/controls/boolean/boolean.directive.js.map
new file mode 100644
index 000000000..9d8df4178
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/boolean/boolean.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"boolean.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/boolean/boolean.directive.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8B,qBAAqB,CAAC,CAAA;AACpD,wBAA2B,eAAe,CAAC,CAAA;AAE3C;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,cAAc,CAAC;QAC7B,eAAU,GAAG,iBAAiB,CAAC;QAC/B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,uBAAC;AAAD,CAAC,AALD,IAKC;AAID;IAAgC,qCAAe;IAE3C,2BAAY,KAA6B;QACrC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IAHM,yBAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAIhC,wBAAC;AAAD,CAAC,AALD,CAAgC,kCAAe,GAK9C;AAED,IAAM,eAAe,GAAG,6RAOH,CAAC;AAEtB;kBAAe,OAAO;KACjB,MAAM,CAAC,sCAAsC,EAAE,CAAC,8BAA8B,CAAC,CAAC;KAChF,SAAS,CAAC,gBAAgB,EAAE,cAAM,OAAA,IAAI,gBAAgB,EAAE,EAAtB,CAAsB,CAAC;KACzD,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QACpC,OAAA,eAAe,CAAC,QAAQ,CAAC,iBAAiB,EAAE,sBAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAAvE,CAAuE;CAC1E,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/control.directive.d.ts b/dist/ts-build/components/renderers/controls/control.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/control.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/control.directive.js b/dist/ts-build/components/renderers/controls/control.directive.js
new file mode 100644
index 000000000..7f86d364f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/control.directive.js
@@ -0,0 +1,19 @@
+"use strict";
+var controlTemplate = " 0 ? 'has-error' : ''\"\" ng-hide=\"vm.hide\">\n
\n
\n
{{alert.msg}}\n
";
+var ControlDirective = (function () {
+ function ControlDirective() {
+ this.restrict = 'E';
+ this.transclude = true;
+ this.templateUrl = 'control.html';
+ }
+ return ControlDirective;
+}());
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls', ['jsonforms.renderers'])
+ .directive('jsonformsControl', function () { return new ControlDirective; })
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('control.html', controlTemplate);
+ }])
+ .name;
+//# sourceMappingURL=control.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/control.directive.js.map b/dist/ts-build/components/renderers/controls/control.directive.js.map
new file mode 100644
index 000000000..1bcc4d96e
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/control.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"control.directive.js","sourceRoot":"","sources":["../../../../../src/components/renderers/controls/control.directive.ts"],"names":[],"mappings":";AAAA,IAAM,eAAe,GAAG,mYAIjB,CAAC;AAER;IAAA;QACI,aAAQ,GAAM,GAAG,CAAC;QAClB,eAAU,GAAI,IAAI,CAAC;QACnB,gBAAW,GAAG,cAAc,CAAC;IACjC,CAAC;IAAD,uBAAC;AAAD,CAAC,AAJD,IAIC;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,8BAA8B,EAAE,CAAC,qBAAqB,CAAC,CAAC;KAC/D,SAAS,CAAC,kBAAkB,EAAE,cAAM,OAAA,IAAI,gBAAgB,EAApB,CAAoB,CAAC;KACzD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/datetime/datetime.directive.d.ts b/dist/ts-build/components/renderers/controls/datetime/datetime.directive.d.ts
new file mode 100644
index 000000000..cf3c118b8
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/datetime/datetime.directive.d.ts
@@ -0,0 +1,12 @@
+import { AbstractControl } from '../abstract-control';
+export interface DateTimeControllerScope extends ng.IScope {
+}
+export declare class DateTimeController extends AbstractControl {
+ static $inject: string[];
+ protected dt: Date;
+ constructor(scope: DateTimeControllerScope);
+ protected triggerChangeEvent(): void;
+ protected updateDateObject(): void;
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/datetime/datetime.directive.js b/dist/ts-build/components/renderers/controls/datetime/datetime.directive.js
new file mode 100644
index 000000000..4752bbc0b
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/datetime/datetime.directive.js
@@ -0,0 +1,58 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_control_1 = require('../abstract-control');
+var testers_1 = require('../../testers');
+var DateTimeDirective = (function () {
+ function DateTimeDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'datetime.html';
+ this.controller = DateTimeController;
+ this.controllerAs = 'vm';
+ }
+ return DateTimeDirective;
+}());
+var DateTimeController = (function (_super) {
+ __extends(DateTimeController, _super);
+ function DateTimeController(scope) {
+ var _this = this;
+ _super.call(this, scope);
+ var value = this.resolvedData[this.fragment];
+ if (value) {
+ this.dt = new Date(value);
+ }
+ scope.$watch('vm.resolvedData[vm.fragment]', function (newValue) { _this.updateDateObject(); });
+ }
+ DateTimeController.prototype.triggerChangeEvent = function () {
+ if (this.dt != null) {
+ this.resolvedData[this.fragment] = this.dt.toISOString().substr(0, 10);
+ }
+ else {
+ this.resolvedData[this.fragment] = null;
+ }
+ _super.prototype.triggerChangeEvent.call(this);
+ };
+ DateTimeController.prototype.updateDateObject = function () {
+ this.dt = new Date(this.resolvedData[this.fragment]);
+ };
+ DateTimeController.$inject = ['$scope'];
+ return DateTimeController;
+}(abstract_control_1.AbstractControl));
+exports.DateTimeController = DateTimeController;
+var datetimeTemplate = "\n \n";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.datetime', ['jsonforms.renderers.controls'])
+ .directive('datetimeControl', function () { return new DateTimeDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('datetime-control', testers_1.Testers.and(testers_1.schemaTypeIs('string'), testers_1.schemaTypeMatches(function (el) { return _.has(el, 'format') && el['format'] === 'date'; })), 2);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('datetime.html', datetimeTemplate);
+ }])
+ .name;
+//# sourceMappingURL=datetime.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/datetime/datetime.directive.js.map b/dist/ts-build/components/renderers/controls/datetime/datetime.directive.js.map
new file mode 100644
index 000000000..ce19c93f3
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/datetime/datetime.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"datetime.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/datetime/datetime.directive.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8B,qBAAqB,CAAC,CAAA;AACpD,wBAAuD,eAAe,CAAC,CAAA;AAEvE;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,eAAe,CAAC;QAC9B,eAAU,GAAG,kBAAkB,CAAC;QAChC,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,wBAAC;AAAD,CAAC,AALD,IAKC;AAGD;IAAwC,sCAAe;IAGnD,4BAAY,KAA8B;QAH9C,iBAuBC;QAnBO,kBAAM,KAAK,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACR,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,8BAA8B,EAAE,UAAC,QAAQ,IAAM,KAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IACS,+CAAkB,GAA5B;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;YAElB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAC5C,CAAC;QACD,gBAAK,CAAC,kBAAkB,WAAE,CAAC;IAC/B,CAAC;IACS,6CAAgB,GAA1B;QACI,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IArBM,0BAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAsBhC,yBAAC;AAAD,CAAC,AAvBD,CAAwC,kCAAe,GAuBtD;AAvBY,0BAAkB,qBAuB9B,CAAA;AAED,IAAM,gBAAgB,GAAG,+WASJ,CAAC;AAEtB;kBAAe,OAAO;KACjB,MAAM,CAAC,uCAAuC,EAAE,CAAC,8BAA8B,CAAC,CAAC;KACjF,SAAS,CAAC,iBAAiB,EAAE,cAAM,OAAA,IAAI,iBAAiB,EAAE,EAAvB,CAAuB,CAAC;KAC3D,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QAChC,OAAA,eAAe,CAAC,QAAQ,CAAC,kBAAkB,EACvC,iBAAO,CAAC,GAAG,CACP,sBAAY,CAAC,QAAQ,CAAC,EACtB,2BAAiB,CAAC,UAAA,EAAE,IAAI,OAAA,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,MAAM,EAA9C,CAA8C,CAAC,CAC1E,EAAE,CAAC,CAAC;IAJT,CAIS;CAChB,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/enum/enum.directive.d.ts b/dist/ts-build/components/renderers/controls/enum/enum.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/enum/enum.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/enum/enum.directive.js b/dist/ts-build/components/renderers/controls/enum/enum.directive.js
new file mode 100644
index 000000000..b33a4c191
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/enum/enum.directive.js
@@ -0,0 +1,46 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_control_1 = require('../abstract-control');
+var testers_1 = require('../../testers');
+var enumTemplate = "\n \n";
+var EnumDirective = (function () {
+ function EnumDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'enum.html';
+ this.controller = EnumController;
+ this.controllerAs = 'vm';
+ }
+ return EnumDirective;
+}());
+var EnumController = (function (_super) {
+ __extends(EnumController, _super);
+ function EnumController(scope) {
+ _super.call(this, scope);
+ }
+ Object.defineProperty(EnumController.prototype, "options", {
+ get: function () {
+ return this.resolvedSchema.enum;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ EnumController.$inject = ['$scope'];
+ return EnumController;
+}(abstract_control_1.AbstractControl));
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.enum', ['jsonforms.renderers.controls'])
+ .directive('enumControl', function () { return new EnumDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('enum-control', testers_1.Testers.and(testers_1.uiTypeIs('Control'), testers_1.schemaTypeMatches(function (el) { return _.has(el, 'enum'); })), 5);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('enum.html', enumTemplate);
+ }])
+ .name;
+//# sourceMappingURL=enum.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/enum/enum.directive.js.map b/dist/ts-build/components/renderers/controls/enum/enum.directive.js.map
new file mode 100644
index 000000000..566f4b283
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/enum/enum.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"enum.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/enum/enum.directive.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8B,qBAAqB,CAAC,CAAA;AACpD,wBAAmD,eAAe,CAAC,CAAA;AAEnE,IAAM,YAAY,GAAG,+XAQA,CAAC;AAEtB;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,WAAW,CAAC;QAC1B,eAAU,GAAG,cAAc,CAAC;QAC5B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,oBAAC;AAAD,CAAC,AALD,IAKC;AAKD;IAA6B,kCAAe;IAExC,wBAAY,KAA0B;QAClC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,sBAAY,mCAAO;aAAnB;YACI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACpC,CAAC;;;OAAA;IAPM,sBAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAQhC,qBAAC;AAAD,CAAC,AATD,CAA6B,kCAAe,GAS3C;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,mCAAmC,EAAE,CAAC,8BAA8B,CAAC,CAAC;KAC7E,SAAS,CAAC,aAAa,EAAE,cAAM,OAAA,IAAI,aAAa,EAAE,EAAnB,CAAmB,CAAC;KACnD,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QAChC,OAAA,eAAe,CAAC,QAAQ,CAAC,cAAc,EACnC,iBAAO,CAAC,GAAG,CACP,kBAAQ,CAAC,SAAS,CAAC,EACnB,2BAAiB,CAAC,UAAA,EAAE,IAAI,OAAA,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAjB,CAAiB,CAAC,CAC7C,EAAE,CAAC,CAAC;IAJT,CAIS;CAChB,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/integer/integer.directive.d.ts b/dist/ts-build/components/renderers/controls/integer/integer.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/integer/integer.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/integer/integer.directive.js b/dist/ts-build/components/renderers/controls/integer/integer.directive.js
new file mode 100644
index 000000000..581f6b7eb
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/integer/integer.directive.js
@@ -0,0 +1,38 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_control_1 = require('../abstract-control');
+var testers_1 = require('../../testers');
+var integerTemplate = "\n \n ";
+var IntegerDirective = (function () {
+ function IntegerDirective() {
+ this.templateUrl = 'integer.html';
+ this.controller = IntegerController;
+ this.controllerAs = 'vm';
+ }
+ return IntegerDirective;
+}());
+var IntegerController = (function (_super) {
+ __extends(IntegerController, _super);
+ function IntegerController(scope) {
+ _super.call(this, scope);
+ }
+ IntegerController.$inject = ['$scope'];
+ return IntegerController;
+}(abstract_control_1.AbstractControl));
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.integer', ['jsonforms.renderers.controls'])
+ .directive('integerControl', function () { return new IntegerDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('integer-control', testers_1.Testers.and(testers_1.schemaTypeIs('integer'), testers_1.uiTypeIs('Control')), 1);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('integer.html', integerTemplate);
+ }])
+ .name;
+//# sourceMappingURL=integer.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/integer/integer.directive.js.map b/dist/ts-build/components/renderers/controls/integer/integer.directive.js.map
new file mode 100644
index 000000000..f24336704
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/integer/integer.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"integer.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/integer/integer.directive.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8B,qBAAqB,CAAC,CAAA;AACpD,wBAA8C,eAAe,CAAC,CAAA;AAE9D,IAAM,eAAe,GAAG,mWAQC,CAAC;AAE1B;IAAA;QACI,gBAAW,GAAG,cAAc,CAAC;QAC7B,eAAU,GAAG,iBAAiB,CAAC;QAC/B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,uBAAC;AAAD,CAAC,AAJD,IAIC;AAGD;IAAgC,qCAAe;IAE3C,2BAAY,KAA6B;QACrC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IAHM,yBAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAIhC,wBAAC;AAAD,CAAC,AALD,CAAgC,kCAAe,GAK9C;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,sCAAsC,EAAE,CAAC,8BAA8B,CAAC,CAAC;KAChF,SAAS,CAAC,gBAAgB,EAAE,cAAM,OAAA,IAAI,gBAAgB,EAAE,EAAtB,CAAsB,CAAC;KACzD,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QACpC,OAAA,eAAe,CAAC,QAAQ,CAAC,iBAAiB,EAClC,iBAAO,CAAC,GAAG,CACP,sBAAY,CAAC,SAAS,CAAC,EACvB,kBAAQ,CAAC,SAAS,CAAC,CACtB,EAAE,CAAC,CAAC;IAJb,CAIa;CAChB,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/number/number.directive.d.ts b/dist/ts-build/components/renderers/controls/number/number.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/number/number.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/number/number.directive.js b/dist/ts-build/components/renderers/controls/number/number.directive.js
new file mode 100644
index 000000000..53daaccac
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/number/number.directive.js
@@ -0,0 +1,39 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_control_1 = require('../abstract-control');
+var testers_1 = require('../../testers');
+var numberTemplate = "\n \n ";
+var NumberDirective = (function () {
+ function NumberDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'number.html';
+ this.controller = NumberController;
+ this.controllerAs = 'vm';
+ }
+ return NumberDirective;
+}());
+var NumberController = (function (_super) {
+ __extends(NumberController, _super);
+ function NumberController(scope) {
+ _super.call(this, scope);
+ }
+ NumberController.$inject = ['$scope'];
+ return NumberController;
+}(abstract_control_1.AbstractControl));
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.number', ['jsonforms.renderers.controls'])
+ .directive('numberControl', function () { return new NumberDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('number-control', testers_1.schemaTypeIs('number'), 1);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('number.html', numberTemplate);
+ }])
+ .name;
+//# sourceMappingURL=number.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/number/number.directive.js.map b/dist/ts-build/components/renderers/controls/number/number.directive.js.map
new file mode 100644
index 000000000..f6da1ff09
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/number/number.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"number.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/number/number.directive.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8B,qBAAqB,CAAC,CAAA;AACpD,wBAA2B,eAAe,CAAC,CAAA;AAE3C,IAAM,cAAc,GAAG,qWAQE,CAAA;AAEzB;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,aAAa,CAAC;QAC5B,eAAU,GAAG,gBAAgB,CAAC;QAC9B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,sBAAC;AAAD,CAAC,AALD,IAKC;AAGD;IAA+B,oCAAe;IAE1C,0BAAY,KAA4B;QACpC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IAHM,wBAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAIhC,uBAAC;AAAD,CAAC,AALD,CAA+B,kCAAe,GAK7C;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,qCAAqC,EAAE,CAAC,8BAA8B,CAAC,CAAC;KAC/E,SAAS,CAAC,eAAe,EAAE,cAAM,OAAA,IAAI,eAAe,EAAE,EAArB,CAAqB,CAAC;KACvD,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QAChC,OAAA,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAArE,CAAqE;CAC5E,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/reference/reference.directive.d.ts b/dist/ts-build/components/renderers/controls/reference/reference.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/reference/reference.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/reference/reference.directive.js b/dist/ts-build/components/renderers/controls/reference/reference.directive.js
new file mode 100644
index 000000000..550f22596
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/reference/reference.directive.js
@@ -0,0 +1,59 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_control_1 = require('../abstract-control');
+var path_resolver_1 = require('../../../services/path-resolver/path-resolver');
+var testers_1 = require('../../testers');
+var ReferenceDirective = (function () {
+ function ReferenceDirective() {
+ this.restrict = 'E';
+ this.template = "";
+ this.controller = ReferenceController;
+ this.controllerAs = 'vm';
+ }
+ return ReferenceDirective;
+}());
+var ReferenceController = (function (_super) {
+ __extends(ReferenceController, _super);
+ function ReferenceController(scope) {
+ _super.call(this, scope);
+ }
+ Object.defineProperty(ReferenceController.prototype, "link", {
+ get: function () {
+ var normalizedPath = path_resolver_1.PathResolver.toInstancePath(this.schemaPath);
+ return '#' + this.uiSchema['href']['url'] + '/' + this.data[normalizedPath];
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ;
+ Object.defineProperty(ReferenceController.prototype, "linkText", {
+ get: function () {
+ return this.uiSchema['href']['label'] ? this.uiSchema['href']['label'] : this.label;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ReferenceController.prototype, "prefix", {
+ get: function () {
+ return this.uiSchema.label ? this.uiSchema.label : 'Go to';
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ReferenceController.$inject = ['$scope'];
+ return ReferenceController;
+}(abstract_control_1.AbstractControl));
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.reference', ['jsonforms.renderers.controls'])
+ .directive('referenceControl', function () { return new ReferenceDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('reference-control', testers_1.uiTypeIs('ReferenceControl'), 2);
+ }
+])
+ .name;
+//# sourceMappingURL=reference.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/reference/reference.directive.js.map b/dist/ts-build/components/renderers/controls/reference/reference.directive.js.map
new file mode 100644
index 000000000..47c630a83
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/reference/reference.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reference.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/reference/reference.directive.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8B,qBAAqB,CAAC,CAAA;AACpD,8BAA2B,+CAA+C,CAAC,CAAA;AAC3E,wBAAuB,eAAe,CAAC,CAAA;AAEvC;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,aAAQ,GAAG,sEAAoE,CAAC;QAChF,eAAU,GAAG,mBAAmB,CAAC;QACjC,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,yBAAC;AAAD,CAAC,AALD,IAKC;AAGD;IAAkC,uCAAe;IAE7C,6BAAY,KAA+B;QACvC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,sBAAW,qCAAI;aAAf;YACI,IAAI,cAAc,GAAG,4BAAY,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChF,CAAC;;;OAAA;;IACD,sBAAW,yCAAQ;aAAnB;YACI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACxF,CAAC;;;OAAA;IACD,sBAAW,uCAAM;aAAjB;YACI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;QAC/D,CAAC;;;OAAA;IAbM,2BAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAchC,0BAAC;AAAD,CAAC,AAfD,CAAkC,kCAAe,GAehD;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,wCAAwC,EAAE,CAAC,8BAA8B,CAAC,CAAC;KAClF,SAAS,CAAC,kBAAkB,EAAE,cAAM,OAAA,IAAI,kBAAkB,EAAE,EAAxB,CAAwB,CAAC;KAC7D,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QAChC,OAAA,eAAe,CAAC,QAAQ,CAAC,mBAAmB,EAAE,kBAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAA9E,CAA8E;CACrF,CAAC;KACD,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/string/string.directive.d.ts b/dist/ts-build/components/renderers/controls/string/string.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/string/string.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/controls/string/string.directive.js b/dist/ts-build/components/renderers/controls/string/string.directive.js
new file mode 100644
index 000000000..8452890b3
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/string/string.directive.js
@@ -0,0 +1,52 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_control_1 = require('../abstract-control');
+var testers_1 = require('../../testers');
+var stringTemplate = "\n \n";
+var StringDirective = (function () {
+ function StringDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'string.html';
+ this.controller = StringController;
+ this.controllerAs = 'vm';
+ }
+ return StringDirective;
+}());
+var textAreaTemplate = "\n ";
+var StringAreaDirective = (function () {
+ function StringAreaDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'text-area.html';
+ this.controller = StringController;
+ this.controllerAs = 'vm';
+ }
+ return StringAreaDirective;
+}());
+var StringController = (function (_super) {
+ __extends(StringController, _super);
+ function StringController(scope) {
+ _super.call(this, scope);
+ }
+ StringController.$inject = ['$scope', 'PathResolver'];
+ return StringController;
+}(abstract_control_1.AbstractControl));
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.controls.string', ['jsonforms.renderers.controls'])
+ .directive('stringControl', function () { return new StringDirective(); })
+ .directive('textAreaControl', function () { return new StringAreaDirective(); })
+ .run(['RendererService', function (RendererService) {
+ RendererService.register('string-control', testers_1.schemaTypeIs('string'), 1);
+ RendererService.register('text-area-control', testers_1.Testers.and(testers_1.schemaTypeIs('string'), testers_1.optionIs('multi', true)), 2);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('string.html', stringTemplate);
+ $templateCache.put('text-area.html', textAreaTemplate);
+ }])
+ .name;
+//# sourceMappingURL=string.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/controls/string/string.directive.js.map b/dist/ts-build/components/renderers/controls/string/string.directive.js.map
new file mode 100644
index 000000000..be70c619b
--- /dev/null
+++ b/dist/ts-build/components/renderers/controls/string/string.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"string.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/controls/string/string.directive.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8B,qBAAqB,CAAC,CAAA;AACpD,wBAA8C,eAAe,CAAC,CAAA;AAE9D,IAAM,cAAc,GAAG,qSAOF,CAAC;AAEtB;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,aAAa,CAAC;QAC5B,eAAU,GAAG,gBAAgB,CAAC;QAC9B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,sBAAC;AAAD,CAAC,AALD,IAKC;AAED,IAAM,gBAAgB,GAAG,4RAMJ,CAAC;AAEtB;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,eAAU,GAAG,gBAAgB,CAAC;QAC9B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,0BAAC;AAAD,CAAC,AALD,IAKC;AAID;IAA+B,oCAAe;IAE1C,0BAAY,KAA4B;QACpC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IAHM,wBAAO,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAIhD,uBAAC;AAAD,CAAC,AALD,CAA+B,kCAAe,GAK7C;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,qCAAqC,EAAE,CAAC,8BAA8B,CAAC,CAAC;KAC/E,SAAS,CAAC,eAAe,EAAE,cAAM,OAAA,IAAI,eAAe,EAAE,EAArB,CAAqB,CAAC;KACvD,SAAS,CAAC,iBAAiB,EAAE,cAAM,OAAA,IAAI,mBAAmB,EAAE,EAAzB,CAAyB,CAAC;KAC7D,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QACpC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,eAAe,CAAC,QAAQ,CAAC,mBAAmB,EACpC,iBAAO,CAAC,GAAG,CACP,sBAAY,CAAC,QAAQ,CAAC,EACtB,kBAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAC1B,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;CACA,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAClD,cAAc,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;KAEF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/extras/label/label.directive.d.ts b/dist/ts-build/components/renderers/extras/label/label.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/extras/label/label.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/extras/label/label.directive.js b/dist/ts-build/components/renderers/extras/label/label.directive.js
new file mode 100644
index 000000000..e2622b932
--- /dev/null
+++ b/dist/ts-build/components/renderers/extras/label/label.directive.js
@@ -0,0 +1,36 @@
+"use strict";
+var testers_1 = require('../../testers');
+var LabelDirective = (function () {
+ function LabelDirective() {
+ this.restrict = 'E';
+ this.template = "{{vm.text}}
";
+ this.controller = LabelController;
+ this.controllerAs = 'vm';
+ }
+ return LabelDirective;
+}());
+var LabelController = (function () {
+ function LabelController(scope) {
+ this.scope = scope;
+ this.text = scope['uischema']['text'];
+ }
+ Object.defineProperty(LabelController.prototype, "size", {
+ get: function () {
+ return 100;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ LabelController.$inject = ['$scope'];
+ return LabelController;
+}());
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.extras.label', ['jsonforms.renderers'])
+ .directive('labelControl', function () { return new LabelDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('label-control', testers_1.uiTypeIs('Label'), 2);
+ }
+])
+ .name;
+//# sourceMappingURL=label.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/extras/label/label.directive.js.map b/dist/ts-build/components/renderers/extras/label/label.directive.js.map
new file mode 100644
index 000000000..b93dc6cfe
--- /dev/null
+++ b/dist/ts-build/components/renderers/extras/label/label.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"label.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/extras/label/label.directive.ts"],"names":[],"mappings":";AACA,wBAAuB,eAAe,CAAC,CAAA;AACvC;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,aAAQ,GAAG,0EAAwE,CAAC;QACpF,eAAU,GAAG,eAAe,CAAC;QAC7B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,qBAAC;AAAD,CAAC,AALD,IAKC;AAGD;IAGI,yBAAoB,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;QAC3C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,sBAAY,iCAAI;aAAhB;YACI,MAAM,CAAC,GAAG,CAAC;QACf,CAAC;;;OAAA;IAPM,uBAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAQhC,sBAAC;AAAD,CAAC,AATD,IASC;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,kCAAkC,EAAE,CAAC,qBAAqB,CAAC,CAAC;KACnE,SAAS,CAAC,cAAc,EAAE,cAAM,OAAA,IAAI,cAAc,EAAE,EAApB,CAAoB,CAAC;KACrD,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QAChC,OAAA,eAAe,CAAC,QAAQ,CAAC,eAAe,EAAE,kBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAA/D,CAA+D;CACtE,CAAC;KACD,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/abstract-layout.d.ts b/dist/ts-build/components/renderers/layouts/abstract-layout.d.ts
new file mode 100644
index 000000000..89f2a2307
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/abstract-layout.d.ts
@@ -0,0 +1,10 @@
+import { IRuleServiceCallBack } from '../../services/rule/rule-service';
+import { ILayout, IRule } from '../../../uischema';
+export declare abstract class AbstractLayout implements IRuleServiceCallBack {
+ protected scope: ng.IScope;
+ protected uiSchema: ILayout;
+ instance: any;
+ rule: IRule;
+ hide: boolean;
+ constructor(scope: ng.IScope);
+}
diff --git a/dist/ts-build/components/renderers/layouts/abstract-layout.js b/dist/ts-build/components/renderers/layouts/abstract-layout.js
new file mode 100644
index 000000000..960c7143f
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/abstract-layout.js
@@ -0,0 +1,15 @@
+"use strict";
+var services_1 = require('../../services/services');
+var AbstractLayout = (function () {
+ function AbstractLayout(scope) {
+ this.scope = scope;
+ var services = scope['services'];
+ this.uiSchema = scope['uischema'];
+ this.instance = services.get(services_1.ServiceId.DataProvider).getData();
+ this.rule = this.uiSchema.rule;
+ services.get(services_1.ServiceId.RuleService).addRuleTrack(this);
+ }
+ return AbstractLayout;
+}());
+exports.AbstractLayout = AbstractLayout;
+//# sourceMappingURL=abstract-layout.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/abstract-layout.js.map b/dist/ts-build/components/renderers/layouts/abstract-layout.js.map
new file mode 100644
index 000000000..167c8fe39
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/abstract-layout.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"abstract-layout.js","sourceRoot":"","sources":["../../../../../src/components/renderers/layouts/abstract-layout.ts"],"names":[],"mappings":";AAAA,yBAAkC,yBAAyB,CAAC,CAAA;AAK5D;IAQI,wBAAsB,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;QAClC,IAAI,QAAQ,GAAa,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAGlC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAgB,oBAAS,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,QAAQ,CAAC,GAAG,CAAe,oBAAS,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IACL,qBAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBqB,sBAAc,iBAiBnC,CAAA"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/categories/categorization.directive.d.ts b/dist/ts-build/components/renderers/layouts/categories/categorization.directive.d.ts
new file mode 100644
index 000000000..f4b0516d6
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/categories/categorization.directive.d.ts
@@ -0,0 +1,9 @@
+import { AbstractLayout } from '../abstract-layout';
+export declare class CategorizationController extends AbstractLayout {
+ static $inject: string[];
+ private selectedCategory;
+ constructor(scope: ng.IScope);
+ changeSelectedCategory(category: any, clickScope: any): void;
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/layouts/categories/categorization.directive.js b/dist/ts-build/components/renderers/layouts/categories/categorization.directive.js
new file mode 100644
index 000000000..8adf8eb84
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/categories/categorization.directive.js
@@ -0,0 +1,51 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_layout_1 = require('../abstract-layout');
+var testers_1 = require('../../testers');
+var CategorizationDirective = (function () {
+ function CategorizationDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'categorization.html';
+ this.controller = CategorizationController;
+ this.controllerAs = 'vm';
+ }
+ return CategorizationDirective;
+}());
+var CategorizationController = (function (_super) {
+ __extends(CategorizationController, _super);
+ function CategorizationController(scope) {
+ _super.call(this, scope);
+ }
+ CategorizationController.prototype.changeSelectedCategory = function (category, clickScope) {
+ if (category.type === 'Category') {
+ this.selectedCategory = category;
+ }
+ else {
+ clickScope.expanded = !clickScope.expanded;
+ if (!clickScope.expanded) {
+ this.selectedCategory = null;
+ }
+ }
+ };
+ CategorizationController.$inject = ['$scope'];
+ return CategorizationController;
+}(abstract_layout_1.AbstractLayout));
+exports.CategorizationController = CategorizationController;
+var categorizationTemplate = "\n\n\n \n";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.layouts.categories', ['jsonforms.renderers.layouts'])
+ .directive('categorization', function () { return new CategorizationDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('categorization', testers_1.uiTypeIs('Categorization'), 2);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('categorization.html', categorizationTemplate);
+ }])
+ .name;
+//# sourceMappingURL=categorization.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/categories/categorization.directive.js.map b/dist/ts-build/components/renderers/layouts/categories/categorization.directive.js.map
new file mode 100644
index 000000000..5aed34e23
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/categories/categorization.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"categorization.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/layouts/categories/categorization.directive.ts"],"names":[],"mappings":";;;;;;AAAA,gCAA6B,oBAAoB,CAAC,CAAA;AAClD,wBAAuB,eAAe,CAAC,CAAA;AAEvC;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,qBAAqB,CAAC;QACpC,eAAU,GAAG,wBAAwB,CAAC;QACtC,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,8BAAC;AAAD,CAAC,AALD,IAKC;AACD;IAA+C,4CAAc;IAGzD,kCAAY,KAAgB;QACxB,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IACM,yDAAsB,GAA7B,UAA8B,QAAQ,EAAE,UAAU;QAChD,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACnC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,UAAU,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3C,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAdM,gCAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAehC,+BAAC;AAAD,CAAC,AAhBD,CAA+C,gCAAc,GAgB5D;AAhBY,gCAAwB,2BAgBpC,CAAA;AAED,IAAM,sBAAsB,GAAG,q8CAkCX,CAAC;AAErB;kBAAe,OAAO;KACjB,MAAM,CAAC,wCAAwC,EAAE,CAAC,6BAA6B,CAAC,CAAC;KACjF,SAAS,CAAC,gBAAgB,EAAE,cAAM,OAAA,IAAI,uBAAuB,EAAE,EAA7B,CAA6B,CAAC;KAChE,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QACpC,OAAA,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAG,kBAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAA1E,CAA0E;CAC7E,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/group/group.directive.d.ts b/dist/ts-build/components/renderers/layouts/group/group.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/group/group.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/layouts/group/group.directive.js b/dist/ts-build/components/renderers/layouts/group/group.directive.js
new file mode 100644
index 000000000..9b2f56a05
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/group/group.directive.js
@@ -0,0 +1,46 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_layout_1 = require('../abstract-layout');
+var testers_1 = require('../../testers');
+var GroupDirective = (function () {
+ function GroupDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'group.html';
+ this.controller = GroupController;
+ this.controllerAs = 'vm';
+ }
+ return GroupDirective;
+}());
+var GroupController = (function (_super) {
+ __extends(GroupController, _super);
+ function GroupController(scope) {
+ _super.call(this, scope);
+ }
+ Object.defineProperty(GroupController.prototype, "label", {
+ get: function () {
+ return this.uiSchema.label ? this.uiSchema.label : '';
+ },
+ enumerable: true,
+ configurable: true
+ });
+ GroupController.$inject = ['$scope'];
+ return GroupController;
+}(abstract_layout_1.AbstractLayout));
+var groupTemplate = "\n \n
\n \n";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.layouts.group', ['jsonforms.renderers.layouts'])
+ .directive('grouplayout', function () { return new GroupDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('grouplayout', testers_1.uiTypeIs('Group'), 2);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('group.html', groupTemplate);
+ }])
+ .name;
+//# sourceMappingURL=group.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/group/group.directive.js.map b/dist/ts-build/components/renderers/layouts/group/group.directive.js.map
new file mode 100644
index 000000000..4492b0da1
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/group/group.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"group.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/layouts/group/group.directive.ts"],"names":[],"mappings":";;;;;;AAAA,gCAA6B,oBAAoB,CAAC,CAAA;AAClD,wBAAuB,eAAe,CAAC,CAAA;AAEvC;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,YAAY,CAAC;QAC3B,eAAU,GAAG,eAAe,CAAC;QAC7B,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,qBAAC;AAAD,CAAC,AALD,IAKC;AAGD;IAA+B,mCAAc;IAEzC,yBAAY,KAA2B;QACnC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,sBAAY,kCAAK;aAAjB;YACI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1D,CAAC;;;OAAA;IANM,uBAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAOhC,sBAAC;AAAD,CAAC,AARD,CAA+B,gCAAc,GAQ5C;AAED,IAAM,aAAa,GAAG,wVASF,CAAC;AAErB;kBAAe,OAAO;KACjB,MAAM,CAAC,mCAAmC,EAAE,CAAC,6BAA6B,CAAC,CAAC;KAC5E,SAAS,CAAC,aAAa,EAAE,cAAM,OAAA,IAAI,cAAc,EAAE,EAApB,CAAoB,CAAC;KACpD,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QACpC,OAAA,eAAe,CAAC,QAAQ,CAAC,aAAa,EAAE,kBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAA7D,CAA6D;CAChE,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.d.ts b/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.d.ts
new file mode 100644
index 000000000..26d9c5ce4
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.d.ts
@@ -0,0 +1,10 @@
+import { AbstractLayout } from '../abstract-layout';
+export interface HorizontalControllerScope extends ng.IScope {
+}
+export declare class HorizontalController extends AbstractLayout {
+ static $inject: string[];
+ constructor(scope: HorizontalControllerScope);
+ private updateChildrenLabel(elements);
+}
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.js b/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.js
new file mode 100644
index 000000000..ed17a9d76
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.js
@@ -0,0 +1,55 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_layout_1 = require('../abstract-layout');
+var testers_1 = require('../../testers');
+var Labels_1 = require('../../Labels');
+var HorizontalDirective = (function () {
+ function HorizontalDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'horizontal.html';
+ this.controller = HorizontalController;
+ this.controllerAs = 'vm';
+ }
+ return HorizontalDirective;
+}());
+var HorizontalController = (function (_super) {
+ __extends(HorizontalController, _super);
+ function HorizontalController(scope) {
+ _super.call(this, scope);
+ this.updateChildrenLabel(this.uiSchema.elements);
+ }
+ HorizontalController.prototype.updateChildrenLabel = function (elements) {
+ var labelExists = elements.reduce(function (atLeastOneLabel, element) {
+ return atLeastOneLabel || Labels_1.LabelObjectUtil.shouldShowLabel(element);
+ }, false);
+ if (labelExists) {
+ elements.forEach(function (element) {
+ var showElementLabel = Labels_1.LabelObjectUtil.shouldShowLabel(element);
+ if (!showElementLabel) {
+ element.label = { show: true, text: '' };
+ }
+ });
+ }
+ };
+ HorizontalController.$inject = ['$scope'];
+ return HorizontalController;
+}(abstract_layout_1.AbstractLayout));
+exports.HorizontalController = HorizontalController;
+var horizontalTemplate = "\n \n";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.layouts.horizontal', ['jsonforms.renderers.layouts'])
+ .directive('horizontallayout', function () { return new HorizontalDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('horizontallayout', testers_1.uiTypeIs('HorizontalLayout'), 2);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('horizontal.html', horizontalTemplate);
+ }])
+ .name;
+//# sourceMappingURL=horizontal.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.js.map b/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.js.map
new file mode 100644
index 000000000..3bfac67fe
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/horizontal/horizontal.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"horizontal.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/layouts/horizontal/horizontal.directive.ts"],"names":[],"mappings":";;;;;;AAAA,gCAA6B,oBAAoB,CAAC,CAAA;AAElD,wBAAuB,eAAe,CAAC,CAAA;AACvC,uBAA8B,cAAc,CAAC,CAAA;AAG7C;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,iBAAiB,CAAC;QAChC,eAAU,GAAG,oBAAoB,CAAC;QAClC,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,0BAAC;AAAD,CAAC,AALD,IAKC;AAGD;IAA2C,wCAAc;IAGrD,8BAAY,KAAgC;QACxC,kBAAM,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IACO,kDAAmB,GAA3B,UAA4B,QAA4B;QACpD,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAC,eAAe,EAAE,OAAO;YACvD,MAAM,CAAC,eAAe,IAAK,wBAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACd,QAAQ,CAAC,OAAO,CAAC,UAAA,OAAO;gBACpB,IAAI,gBAAgB,GAAG,wBAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAChE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACpB,OAAO,CAAC,KAAK,GAAG,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC;gBAC3C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAlBM,4BAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAmBhC,2BAAC;AAAD,CAAC,AApBD,CAA2C,gCAAc,GAoBxD;AApBY,4BAAoB,uBAoBhC,CAAA;AAED,IAAM,kBAAkB,GAAG,6UAQP,CAAC;AAErB;kBAAe,OAAO;KACjB,MAAM,CAAC,wCAAwC,EAAE,CAAC,6BAA6B,CAAC,CAAC;KACjF,SAAS,CAAC,kBAAkB,EAAE,cAAM,OAAA,IAAI,mBAAmB,EAAE,EAAzB,CAAyB,CAAC;KAC9D,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QACpC,OAAA,eAAe,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAA7E,CAA6E;CAChF,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/layout.directive.d.ts b/dist/ts-build/components/renderers/layouts/layout.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/layout.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/layouts/layout.directive.js b/dist/ts-build/components/renderers/layouts/layout.directive.js
new file mode 100644
index 000000000..0acdb67e9
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/layout.directive.js
@@ -0,0 +1,17 @@
+"use strict";
+var layoutTemplate = "";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.layouts', ['jsonforms.renderers'])
+ .directive('jsonformsLayout', function () {
+ return {
+ restrict: 'E',
+ transclude: true,
+ templateUrl: 'layout.html'
+ };
+})
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('layout.html', layoutTemplate);
+ }])
+ .name;
+//# sourceMappingURL=layout.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/layout.directive.js.map b/dist/ts-build/components/renderers/layouts/layout.directive.js.map
new file mode 100644
index 000000000..03550a83a
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/layout.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"layout.directive.js","sourceRoot":"","sources":["../../../../../src/components/renderers/layouts/layout.directive.ts"],"names":[],"mappings":";AAAA,IAAM,cAAc,GAAG,iFAA+E,CAAC;AAEvG;kBAAe,OAAO;KACjB,MAAM,CAAC,6BAA6B,EAAE,CAAC,qBAAqB,CAAC,CAAC;KAC9D,SAAS,CAAC,iBAAiB,EAAE;IAC1B,MAAM,CAAC;QACH,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC7B,CAAC;AACN,CAAC,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.d.ts b/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.js b/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.js
new file mode 100644
index 000000000..cfe7c576f
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.js
@@ -0,0 +1,216 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var pathutil_1 = require('../../../services/pathutil');
+var abstract_control_1 = require('../../controls/abstract-control');
+var testers_1 = require('../../testers');
+var MasterDetailDirective = (function () {
+ function MasterDetailDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'masterdetail.html';
+ this.controller = MasterDetailController;
+ this.controllerAs = 'vm';
+ }
+ return MasterDetailDirective;
+}());
+var MasterDetailController = (function (_super) {
+ __extends(MasterDetailController, _super);
+ function MasterDetailController(scope) {
+ var _this = this;
+ _super.call(this, scope);
+ this.labelProvider = {};
+ this.imageProvider = {};
+ this.deletableRoot = true;
+ this.scope['select'] = function (child, schema) { return _this.select(child, schema); };
+ var options = this.uiSchema['options'];
+ if (options) {
+ var definedLabelProvider = options['labelProvider'];
+ if (definedLabelProvider) {
+ this.labelProvider = definedLabelProvider;
+ }
+ var definedImageProvider = options['imageProvider'];
+ if (definedImageProvider) {
+ this.imageProvider = definedImageProvider;
+ }
+ }
+ if (this.resolvedSchema.type === 'object') {
+ var innerSchema = this.resolvedSchema;
+ this.treeSchema = { 'type': 'array', 'items': innerSchema };
+ this.treeData = [this.resolvedData];
+ this.deletableRoot = false;
+ }
+ else {
+ this.treeSchema = this.resolvedSchema;
+ this.treeData = this.resolvedData;
+ }
+ }
+ MasterDetailController.prototype.select = function (selectedChild, selectedSchema) {
+ this.selectedChild = selectedChild;
+ this.selectedSchema = selectedSchema;
+ this.scope['selectedChild'] = selectedChild;
+ };
+ MasterDetailController.$inject = ['$scope'];
+ return MasterDetailController;
+}(abstract_control_1.AbstractControl));
+var MasterDetailCollectionController = (function () {
+ function MasterDetailCollectionController(scope) {
+ this.scope = scope;
+ this.showSelectKeyDialog = false;
+ }
+ MasterDetailCollectionController.prototype.getArraySubSchemas = function (schema) {
+ var result = {};
+ angular.forEach(schema.properties, function (value, key) {
+ if (value.type === 'array' && value.items.type === 'object') {
+ result[key] = value;
+ }
+ });
+ return result;
+ };
+ Object.defineProperty(MasterDetailCollectionController.prototype, "selectedChild", {
+ get: function () {
+ return this.scope.selectedChild;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ MasterDetailCollectionController.prototype.selectElement = function (child, schema) {
+ if (child === undefined || schema === undefined) {
+ this.scope.select(undefined, undefined);
+ }
+ else {
+ this.scope.select(child, schema.items);
+ }
+ };
+ MasterDetailCollectionController.prototype.updateHasContents = function (scope) {
+ if (scope.child === this.instance) {
+ scope.hasContents = true;
+ return;
+ }
+ var child = scope.child;
+ var schemaToCheck = scope.schema.items;
+ var keys = _.keys(this.getArraySubSchemas(schemaToCheck));
+ scope.hasContents = _.some(keys, function (key) { return child[key] !== undefined && child[key].length !== 0; });
+ };
+ MasterDetailCollectionController.prototype.canHaveChildren = function (dataSchema) {
+ return _.keys(this.getArraySubSchemas(dataSchema.items)).length !== 0;
+ };
+ MasterDetailCollectionController.prototype.getLabel = function (data, dataSchema) {
+ var labelProperty = this.labelProvider[dataSchema.items.id];
+ if (labelProperty !== undefined) {
+ return data[labelProperty];
+ }
+ return data.name || data.id || JSON.stringify(data);
+ };
+ MasterDetailCollectionController.prototype.getImage = function (dataSchema) {
+ var imageUrl = this.imageProvider[dataSchema.items.id];
+ if (imageUrl !== undefined) {
+ return imageUrl;
+ }
+ return null;
+ };
+ MasterDetailCollectionController.prototype.addElement = function (schemaKeyForAdd, schemaOfNewElement, event) {
+ if (this.selectedElementForAdd[schemaKeyForAdd] === undefined) {
+ this.selectedElementForAdd[schemaKeyForAdd] = [];
+ }
+ var newElement = {};
+ this.selectedElementForAdd[schemaKeyForAdd].push(newElement);
+ this.selectElement(newElement, schemaOfNewElement);
+ event.stopPropagation();
+ this.updateHasContents(this.selectedScopeForAdd);
+ this.selectedScopeForAdd.object_open = true;
+ this.showSelectKeyDialog = false;
+ this.selectedScopeForAdd = undefined;
+ this.selectedElementForAdd = undefined;
+ this.selectedSchemaForAdd = undefined;
+ };
+ MasterDetailCollectionController.prototype.addToRoot = function () {
+ var newElement = {};
+ this.instance.push(newElement);
+ this.selectElement(newElement, this.schema);
+ };
+ MasterDetailCollectionController.prototype.removeElement = function (data, key, parentData, parentSchema) {
+ var children;
+ if (parentData === this.instance) {
+ children = this.instance;
+ }
+ else {
+ children = parentData[key];
+ }
+ var index = children.indexOf(data);
+ children.splice(index, 1);
+ if (parentData === this.instance) {
+ this.selectElement(undefined, undefined);
+ }
+ else {
+ this.selectElement(parentData, parentSchema);
+ }
+ };
+ MasterDetailCollectionController.prototype.deactivateScroll = function () {
+ document.body.style.overflow = 'hidden';
+ };
+ MasterDetailCollectionController.prototype.activateScroll = function () {
+ document.body.style.overflow = 'auto';
+ };
+ Object.defineProperty(MasterDetailCollectionController.prototype, "pageHeight", {
+ get: function () {
+ return document.body['scrollHeight'];
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MasterDetailCollectionController.prototype, "pageWidth", {
+ get: function () {
+ return document.body['scrollWidth'];
+ },
+ enumerable: true,
+ configurable: true
+ });
+ MasterDetailCollectionController.prototype.getBeautifulKeyName = function (key) {
+ return pathutil_1.PathUtil.beautify(key);
+ };
+ MasterDetailCollectionController.prototype.handleAddClick = function (event) {
+ this.addClickPositionX = event.clientX;
+ this.addClickPositionY = event.clientY;
+ };
+ MasterDetailCollectionController.$inject = ['$scope'];
+ return MasterDetailCollectionController;
+}());
+var MasterDetailCollectionDirective = (function () {
+ function MasterDetailCollectionDirective() {
+ this.restrict = 'E';
+ this.controller = MasterDetailCollectionController;
+ this.controllerAs = 'vm';
+ this.bindToController = {
+ schema: '=',
+ instance: '=',
+ labelProvider: '=',
+ imageProvider: '=',
+ deletableRoot: '='
+ };
+ this.scope = true;
+ this.templateUrl = 'masterdetail-collection.html';
+ }
+ return MasterDetailCollectionDirective;
+}());
+var masterDetailTemplate = "\n\n \n
\n \n \n
\n \n
\n \n \n
\n
";
+var masterDetailCollectionTemplate = "\n\n\n\n
\n
\n - \n \n \n \n {{vm.getBeautifulKeyName(schemaKey)}}\n
\n
\n
Cancel\n
\n
\n";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.layouts.masterdetail', ['jsonforms.renderers.layouts'])
+ .directive('masterDetail', function () { return new MasterDetailDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('master-detail', testers_1.uiTypeIs('MasterDetailLayout'), 2);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('masterdetail.html', masterDetailTemplate);
+ }])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('masterdetail-collection.html', masterDetailCollectionTemplate);
+ }])
+ .directive('jsonformsMasterdetailCollection', function () { return new MasterDetailCollectionDirective(); })
+ .name;
+//# sourceMappingURL=masterdetail.directives.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.js.map b/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.js.map
new file mode 100644
index 000000000..6c5708dd9
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/masterdetail/masterdetail.directives.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"masterdetail.directives.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/layouts/masterdetail/masterdetail.directives.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.d.ts b/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.js b/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.js
new file mode 100644
index 000000000..7c21f026c
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.js
@@ -0,0 +1,39 @@
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var abstract_layout_1 = require('../abstract-layout');
+var testers_1 = require('../../testers');
+var VerticalDirective = (function () {
+ function VerticalDirective() {
+ this.restrict = 'E';
+ this.templateUrl = 'vertical.html';
+ this.controller = VerticalController;
+ this.controllerAs = 'vm';
+ }
+ return VerticalDirective;
+}());
+var VerticalController = (function (_super) {
+ __extends(VerticalController, _super);
+ function VerticalController(scope) {
+ _super.call(this, scope);
+ }
+ VerticalController.$inject = ['$scope'];
+ return VerticalController;
+}(abstract_layout_1.AbstractLayout));
+var verticalTemplate = "\n\n \n";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.layouts.vertical', ['jsonforms.renderers.layouts'])
+ .directive('verticallayout', function () { return new VerticalDirective(); })
+ .run(['RendererService', function (RendererService) {
+ return RendererService.register('verticallayout', testers_1.uiTypeIs('VerticalLayout'), 2);
+ }
+])
+ .run(['$templateCache', function ($templateCache) {
+ $templateCache.put('vertical.html', verticalTemplate);
+ }])
+ .name;
+//# sourceMappingURL=vertical.directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.js.map b/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.js.map
new file mode 100644
index 000000000..4a7d853a4
--- /dev/null
+++ b/dist/ts-build/components/renderers/layouts/vertical/vertical.directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"vertical.directive.js","sourceRoot":"","sources":["../../../../../../src/components/renderers/layouts/vertical/vertical.directive.ts"],"names":[],"mappings":";;;;;;AAAA,gCAA6B,oBAAoB,CAAC,CAAA;AAClD,wBAAuB,eAAe,CAAC,CAAA;AAEvC;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,gBAAW,GAAG,eAAe,CAAC;QAC9B,eAAU,GAAG,kBAAkB,CAAC;QAChC,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,wBAAC;AAAD,CAAC,AALD,IAKC;AAGD;IAAiC,sCAAc;IAE3C,4BAAY,KAA8B;QACtC,kBAAM,KAAK,CAAC,CAAC;IACjB,CAAC;IAHM,0BAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAIhC,yBAAC;AAAD,CAAC,AALD,CAAiC,gCAAc,GAK9C;AAED,IAAM,gBAAgB,GAAG,0UASL,CAAC;AAErB;kBAAe,OAAO;KACjB,MAAM,CAAC,sCAAsC,EAAE,CAAC,6BAA6B,CAAC,CAAC;KAC/E,SAAS,CAAC,gBAAgB,EAAE,cAAM,OAAA,IAAI,iBAAiB,EAAE,EAAvB,CAAuB,CAAC;KAC1D,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAA,eAAe;QACpC,OAAA,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAE,kBAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAAzE,CAAyE;CAC5E,CAAC;KACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAA,cAAc;QAClC,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/norenderer-directive.d.ts b/dist/ts-build/components/renderers/norenderer-directive.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/components/renderers/norenderer-directive.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/norenderer-directive.js b/dist/ts-build/components/renderers/norenderer-directive.js
new file mode 100644
index 000000000..66eab7614
--- /dev/null
+++ b/dist/ts-build/components/renderers/norenderer-directive.js
@@ -0,0 +1,24 @@
+"use strict";
+var NoRendererDirective = (function () {
+ function NoRendererDirective() {
+ this.restrict = 'E';
+ this.template = "\n \n No Renderer for {{vm.uischema.type}}.\n Full element: {{vm.uischema}}.\n
\n ";
+ this.controller = NoRendererController;
+ this.controllerAs = 'vm';
+ }
+ return NoRendererDirective;
+}());
+var NoRendererController = (function () {
+ function NoRendererController(scope) {
+ this.scope = scope;
+ this.uischema = scope['uischema'];
+ }
+ NoRendererController.$inject = ['$scope'];
+ return NoRendererController;
+}());
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers.norenderer', [])
+ .directive('norenderer', function () { return new NoRendererDirective(); })
+ .name;
+//# sourceMappingURL=norenderer-directive.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/norenderer-directive.js.map b/dist/ts-build/components/renderers/norenderer-directive.js.map
new file mode 100644
index 000000000..03cfaf43b
--- /dev/null
+++ b/dist/ts-build/components/renderers/norenderer-directive.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"norenderer-directive.js","sourceRoot":"","sources":["../../../../src/components/renderers/norenderer-directive.ts"],"names":[],"mappings":";AAEA;IAAA;QACI,aAAQ,GAAG,GAAG,CAAC;QACf,aAAQ,GAAG,uLAKV,CAAC;QACF,eAAU,GAAG,oBAAoB,CAAC;QAClC,iBAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAAD,0BAAC;AAAD,CAAC,AAVD,IAUC;AACD;IAGI,8BAAoB,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;QAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAJM,4BAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IAKhC,2BAAC;AAAD,CAAC,AAND,IAMC;AACD;kBAAe,OAAO;KACjB,MAAM,CAAC,gCAAgC,EAAE,EAAE,CAAC;KAC5C,SAAS,CAAC,YAAY,EAAE,cAAM,OAAA,IAAI,mBAAmB,EAAE,EAAzB,CAAyB,CAAC;KACxD,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/renderer.service.d.ts b/dist/ts-build/components/renderers/renderer.service.d.ts
new file mode 100644
index 000000000..2c83964d9
--- /dev/null
+++ b/dist/ts-build/components/renderers/renderer.service.d.ts
@@ -0,0 +1,9 @@
+import { IUISchemaElement } from '../../uischema';
+import { SchemaElement } from '../../jsonschema';
+export interface RendererService {
+ register(directiveName: string, tester: (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean, spec: number): void;
+ getBestComponent(uiSchemaElement: IUISchemaElement, dataSchema: any, dataObject: any): string;
+}
+export declare const NOT_FITTING: number;
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/renderer.service.js b/dist/ts-build/components/renderers/renderer.service.js
new file mode 100644
index 000000000..f0fe69811
--- /dev/null
+++ b/dist/ts-build/components/renderers/renderer.service.js
@@ -0,0 +1,28 @@
+"use strict";
+var testers_1 = require('./testers');
+exports.NOT_FITTING = -1;
+var RendererServiceImpl = (function () {
+ function RendererServiceImpl() {
+ this.renderer = [];
+ this.register('norenderer', testers_1.always, 0);
+ }
+ RendererServiceImpl.prototype.register = function (directiveName, tester, spec) {
+ if (spec === void 0) { spec = 100; }
+ this.renderer.push({ directiveName: directiveName, tester: testers_1.Testers.create(tester, spec) });
+ };
+ RendererServiceImpl.prototype.getBestComponent = function (element, dataSchema, dataObject) {
+ var bestRenderer = _.maxBy(this.renderer, function (renderer) {
+ return renderer.tester(element, dataSchema, dataObject);
+ });
+ var bestDirective = bestRenderer.directiveName;
+ return "<" + bestDirective + ">" + bestDirective + ">";
+ };
+ RendererServiceImpl.$inject = ['PathResolver'];
+ return RendererServiceImpl;
+}());
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular
+ .module('jsonforms.renderers', [])
+ .service('RendererService', RendererServiceImpl)
+ .name;
+//# sourceMappingURL=renderer.service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/renderer.service.js.map b/dist/ts-build/components/renderers/renderer.service.js.map
new file mode 100644
index 000000000..c553d63eb
--- /dev/null
+++ b/dist/ts-build/components/renderers/renderer.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"renderer.service.js","sourceRoot":"","sources":["../../../../src/components/renderers/renderer.service.ts"],"names":[],"mappings":";AAEA,wBAA8B,WAAW,CAAC,CAAA;AAc7B,mBAAW,GAAW,CAAC,CAAC,CAAC;AAEtC;IAWI;QARQ,aAAQ,GAA8B,EAAE,CAAC;QAS7C,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAM,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IARD,sCAAQ,GAAR,UAAS,aAAqB,EACrB,MAAiF,EACjF,IAAU;QAAV,oBAAU,GAAV,UAAU;QACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAC,CAAC,CAAC;IAC7F,CAAC;IAMD,8CAAgB,GAAhB,UAAiB,OAAyB,EAAE,UAAe,EAAE,UAAe;QACxE,IAAI,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAA,QAAQ;YAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QAC/C,MAAM,CAAC,MAAI,aAAa,WAAM,aAAa,MAAG,CAAC;IACnD,CAAC;IAnBM,2BAAO,GAAG,CAAC,cAAc,CAAC,CAAC;IAoBtC,0BAAC;AAAD,CAAC,AAtBD,IAsBC;AAED;kBAAe,OAAO;KACjB,MAAM,CAAC,qBAAqB,EAAE,EAAE,CAAC;KACjC,OAAO,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;KAC/C,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/testers.d.ts b/dist/ts-build/components/renderers/testers.d.ts
new file mode 100644
index 000000000..5f9e6d2ed
--- /dev/null
+++ b/dist/ts-build/components/renderers/testers.d.ts
@@ -0,0 +1,17 @@
+import { SchemaElement } from '../../jsonschema';
+import { IUISchemaElement } from '../../uischema';
+export declare function schemaTypeIs(expected: string): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+export declare function hasDataPropertyValue(propName: string, expected: any): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+export declare function uiTypeIs(expected: string): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+export declare function optionIs(optionName: string, expected: any): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+export declare function schemaTypeMatches(check: (schema: SchemaElement) => boolean): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+export declare function schemaPathEndsWith(expected: string): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+export declare function schemaPropertyName(expected: string): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+export declare function always(uiSchema: IUISchemaElement, schema: SchemaElement, data: any): boolean;
+export declare class RendererTesterBuilder {
+ and(...testers: Array<(uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean>): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean;
+ create(test: (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => boolean, spec: number): (uiSchema: IUISchemaElement, schema: SchemaElement, data: any) => number;
+}
+export declare const Testers: RendererTesterBuilder;
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/components/renderers/testers.js b/dist/ts-build/components/renderers/testers.js
new file mode 100644
index 000000000..870180aa6
--- /dev/null
+++ b/dist/ts-build/components/renderers/testers.js
@@ -0,0 +1,108 @@
+"use strict";
+var path_resolver_1 = require('../services/path-resolver/path-resolver');
+var renderer_service_1 = require('./renderer.service');
+function schemaTypeIs(expected) {
+ return function (uiSchema, schema, data) {
+ var schemaPath = uiSchema['scope'] === undefined ? undefined : uiSchema['scope']['$ref'];
+ if (schemaPath === undefined) {
+ return false;
+ }
+ var currentDataSchema = path_resolver_1.PathResolver.resolveSchema(schema, schemaPath);
+ if (currentDataSchema === undefined) {
+ return false;
+ }
+ return currentDataSchema.type === expected;
+ };
+}
+exports.schemaTypeIs = schemaTypeIs;
+function hasDataPropertyValue(propName, expected) {
+ return function (uiSchema, schema, data) {
+ return _.has(data, propName) && data[propName] === expected;
+ };
+}
+exports.hasDataPropertyValue = hasDataPropertyValue;
+function uiTypeIs(expected) {
+ return function (uiSchema, schema, data) {
+ return uiSchema.type === expected;
+ };
+}
+exports.uiTypeIs = uiTypeIs;
+function optionIs(optionName, expected) {
+ return function (uiSchema, schema, data) {
+ var options = uiSchema['options'];
+ if (options === undefined) {
+ return false;
+ }
+ return options[optionName] === expected;
+ };
+}
+exports.optionIs = optionIs;
+function schemaTypeMatches(check) {
+ return function (uiSchema, schema, data) {
+ var schemaPath = uiSchema['scope'] === undefined ? undefined : uiSchema['scope']['$ref'];
+ var currentDataSchema = path_resolver_1.PathResolver.resolveSchema(schema, schemaPath);
+ return check(currentDataSchema);
+ };
+}
+exports.schemaTypeMatches = schemaTypeMatches;
+function schemaPathEndsWith(expected) {
+ return function (uiSchema, schema, data) {
+ if (expected === undefined || uiSchema['scope'] === undefined) {
+ return false;
+ }
+ return _.endsWith(uiSchema['scope']['$ref'], expected);
+ };
+}
+exports.schemaPathEndsWith = schemaPathEndsWith;
+function schemaPropertyName(expected) {
+ return function (uiSchema, schema, data) {
+ if (expected === undefined || uiSchema['scope'] === undefined) {
+ return false;
+ }
+ var schemaPath = uiSchema['scope']['$ref'];
+ return _.last(schemaPath.split('/')) === expected;
+ };
+}
+exports.schemaPropertyName = schemaPropertyName;
+function always(uiSchema, schema, data) {
+ return true;
+}
+exports.always = always;
+var RendererTesterBuilder = (function () {
+ function RendererTesterBuilder() {
+ }
+ RendererTesterBuilder.prototype.and = function () {
+ var testers = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ testers[_i - 0] = arguments[_i];
+ }
+ return function (uiSchema, schema, data) {
+ return testers.reduce(function (acc, tester) { return acc && tester(uiSchema, schema, data); }, true);
+ };
+ };
+ RendererTesterBuilder.prototype.create = function (test, spec) {
+ return function (uiSchema, schema, data) {
+ if (test(uiSchema, schema, data)) {
+ return spec;
+ }
+ return renderer_service_1.NOT_FITTING;
+ };
+ };
+ return RendererTesterBuilder;
+}());
+exports.RendererTesterBuilder = RendererTesterBuilder;
+exports.Testers = new RendererTesterBuilder();
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms.testers', [])
+ .service('JSONFormsTesters', function () {
+ return {
+ schemaPathEndsWith: schemaPathEndsWith,
+ schemaPropertyName: schemaPropertyName,
+ schemaTypeMatches: schemaTypeMatches,
+ uiTypeIs: uiTypeIs,
+ schemaTypeIs: schemaTypeIs,
+ optionIs: optionIs,
+ and: exports.Testers.and
+ };
+}).name;
+//# sourceMappingURL=testers.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/renderers/testers.js.map b/dist/ts-build/components/renderers/testers.js.map
new file mode 100644
index 000000000..0f717f6f1
--- /dev/null
+++ b/dist/ts-build/components/renderers/testers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"testers.js","sourceRoot":"","sources":["../../../../src/components/renderers/testers.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/services/data/data-providers.d.ts b/dist/ts-build/components/services/data/data-providers.d.ts
new file mode 100644
index 000000000..f4c017c73
--- /dev/null
+++ b/dist/ts-build/components/services/data/data-providers.d.ts
@@ -0,0 +1,15 @@
+import { IService } from "../services";
+export interface IDataProvider extends IService {
+ fetchData(): ng.IPromise;
+ getData(): any;
+ canPage: boolean;
+ canFilter: boolean;
+}
+export interface IPagingDataProvider extends IDataProvider {
+ fetchPage(page: number): ng.IPromise;
+ getTotalItems(): number;
+ setPageSize(size: number): any;
+}
+export interface IFilteringDataProvider extends IDataProvider {
+ filter(terms: any): ng.IPromise;
+}
diff --git a/dist/ts-build/components/services/data/data-providers.js b/dist/ts-build/components/services/data/data-providers.js
new file mode 100644
index 000000000..f8c56f054
--- /dev/null
+++ b/dist/ts-build/components/services/data/data-providers.js
@@ -0,0 +1,2 @@
+"use strict";
+//# sourceMappingURL=data-providers.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/services/data/data-providers.js.map b/dist/ts-build/components/services/data/data-providers.js.map
new file mode 100644
index 000000000..3973d0db9
--- /dev/null
+++ b/dist/ts-build/components/services/data/data-providers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"data-providers.js","sourceRoot":"","sources":["../../../../../src/components/services/data/data-providers.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/ts-build/components/services/data/default-data-providers.d.ts b/dist/ts-build/components/services/data/default-data-providers.d.ts
new file mode 100644
index 000000000..68f046ad0
--- /dev/null
+++ b/dist/ts-build/components/services/data/default-data-providers.d.ts
@@ -0,0 +1,31 @@
+import { ServiceId } from '../services';
+import { IDataProvider, IPagingDataProvider, IFilteringDataProvider } from './data-providers';
+export declare class DataProviders {
+ static canPage(provider: IDataProvider): provider is IPagingDataProvider;
+ static canFilter(provider: IDataProvider): provider is IFilteringDataProvider;
+}
+export declare class DefaultDataProvider implements IPagingDataProvider {
+ private $q;
+ canPage: boolean;
+ canFilter: boolean;
+ private _page;
+ private _pageSize;
+ private _data;
+ constructor($q: ng.IQService, data: any);
+ getId(): ServiceId;
+ getData(): any;
+ fetchData(): ng.IPromise;
+ setPageSize: (newPageSize: number) => void;
+ fetchPage(page: number): ng.IPromise<{}>;
+ getTotalItems(): number;
+}
+export declare class DefaultInternalDataProvider implements IDataProvider {
+ private _data;
+ constructor(data: any);
+ canPage: boolean;
+ canFilter: boolean;
+ getId(): ServiceId;
+ getData(): any;
+ fetchData(): angular.IPromise;
+ getTotalItems(): any;
+}
diff --git a/dist/ts-build/components/services/data/default-data-providers.js b/dist/ts-build/components/services/data/default-data-providers.js
new file mode 100644
index 000000000..6b6e71e0c
--- /dev/null
+++ b/dist/ts-build/components/services/data/default-data-providers.js
@@ -0,0 +1,85 @@
+"use strict";
+var services_1 = require('../services');
+var DataProviders = (function () {
+ function DataProviders() {
+ }
+ DataProviders.canPage = function (provider) {
+ return provider.canPage;
+ };
+ DataProviders.canFilter = function (provider) {
+ return provider.canFilter;
+ };
+ return DataProviders;
+}());
+exports.DataProviders = DataProviders;
+var DefaultDataProvider = (function () {
+ function DefaultDataProvider($q, data) {
+ var _this = this;
+ this.$q = $q;
+ this.canPage = true;
+ this.canFilter = false;
+ this._page = 0;
+ this._pageSize = 2;
+ this.setPageSize = function (newPageSize) {
+ _this._pageSize = newPageSize;
+ };
+ this._data = data;
+ }
+ DefaultDataProvider.prototype.getId = function () {
+ return services_1.ServiceId.DataProvider;
+ };
+ DefaultDataProvider.prototype.getData = function () {
+ return this._data;
+ };
+ DefaultDataProvider.prototype.fetchData = function () {
+ var p = this.$q.defer();
+ p.resolve(this._data);
+ return p.promise;
+ };
+ DefaultDataProvider.prototype.fetchPage = function (page) {
+ this._page = page;
+ var p = this.$q.defer();
+ if (this._data instanceof Array) {
+ p.resolve(this._data.slice(this._page * this._pageSize, this._page * this._pageSize + this._pageSize));
+ }
+ else {
+ p.resolve(this._data);
+ }
+ return p.promise;
+ };
+ DefaultDataProvider.prototype.getTotalItems = function () {
+ return this._data.length;
+ };
+ return DefaultDataProvider;
+}());
+exports.DefaultDataProvider = DefaultDataProvider;
+var DefaultInternalDataProvider = (function () {
+ function DefaultInternalDataProvider(data) {
+ this._data = data;
+ }
+ Object.defineProperty(DefaultInternalDataProvider.prototype, "canPage", {
+ get: function () { return false; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DefaultInternalDataProvider.prototype, "canFilter", {
+ get: function () { return false; },
+ enumerable: true,
+ configurable: true
+ });
+ DefaultInternalDataProvider.prototype.getId = function () {
+ return services_1.ServiceId.DataProvider;
+ };
+ DefaultInternalDataProvider.prototype.getData = function () {
+ return this._data;
+ };
+ DefaultInternalDataProvider.prototype.fetchData = function () {
+ return undefined;
+ };
+ DefaultInternalDataProvider.prototype.getTotalItems = function () {
+ return this._data.length;
+ };
+ return DefaultInternalDataProvider;
+}());
+exports.DefaultInternalDataProvider = DefaultInternalDataProvider;
+//# sourceMappingURL=default-data-providers.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/services/data/default-data-providers.js.map b/dist/ts-build/components/services/data/default-data-providers.js.map
new file mode 100644
index 000000000..265710a57
--- /dev/null
+++ b/dist/ts-build/components/services/data/default-data-providers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"default-data-providers.js","sourceRoot":"","sources":["../../../../../src/components/services/data/default-data-providers.ts"],"names":[],"mappings":";AACA,yBAAwB,aAAa,CAAC,CAAA;AAGtC;IAAA;IAOA,CAAC;IANU,qBAAO,GAAd,UAAe,QAAuB;QAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IACM,uBAAS,GAAhB,UAAiB,QAAuB;QACpC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC9B,CAAC;IACL,oBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,qBAAa,gBAOzB,CAAA;AAED;IAQI,6BAAoB,EAAgB,EAAE,IAAS;QARnD,iBAiDC;QAzCuB,OAAE,GAAF,EAAE,CAAc;QAPpC,YAAO,GAAG,IAAI,CAAC;QACf,cAAS,GAAG,KAAK,CAAC;QAEV,UAAK,GAAG,CAAC,CAAC;QACV,cAAS,GAAG,CAAC,CAAC;QAsBtB,gBAAW,GAAG,UAAC,WAAmB;YAC9B,KAAI,CAAC,SAAS,GAAG,WAAW,CAAC;QACjC,CAAC,CAAC;QApBE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,mCAAK,GAAL;QACI,MAAM,CAAC,oBAAS,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,qCAAO,GAAP;QACI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,uCAAS,GAAT;QACI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAExB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACrB,CAAC;IAMD,uCAAS,GAAT,UAAU,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACxB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,KAAK,CACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CACpD,CAAC;QACN,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,2CAAa,GAAb;QACI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IACL,0BAAC;AAAD,CAAC,AAjDD,IAiDC;AAjDY,2BAAmB,sBAiD/B,CAAA;AAED;IAII,qCAAY,IAAS;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,sBAAI,gDAAO;aAAX,cAAyB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;;OAAA;IACxC,sBAAI,kDAAS;aAAb,cAA2B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;;OAAA;IAE1C,2CAAK,GAAL;QACI,MAAM,CAAC,oBAAS,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,6CAAO,GAAP;QACI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,+CAAS,GAAT;QACI,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IAGD,mDAAa,GAAb;QACI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IACL,kCAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,mCAA2B,8BA2BvC,CAAA"}
\ No newline at end of file
diff --git a/dist/ts-build/components/services/path-resolver/path-resolver.d.ts b/dist/ts-build/components/services/path-resolver/path-resolver.d.ts
new file mode 100644
index 000000000..99beb8210
--- /dev/null
+++ b/dist/ts-build/components/services/path-resolver/path-resolver.d.ts
@@ -0,0 +1,10 @@
+export declare class RefResolver {
+ toInstancePath(path: string): string;
+ resolveUi(instance: any, uiPath: string): any;
+ resolveInstance(instance: any, schemaPath: string): any;
+ resolveSchema(schema: any, path: string): any;
+ lastFragment(schemaPath: string): string;
+ resolveToLastModel(instance: any, schemaPath: string): any;
+ private innerResolveInstance(instance, schemaPath, createMissing);
+}
+export declare const PathResolver: RefResolver;
diff --git a/dist/ts-build/components/services/path-resolver/path-resolver.js b/dist/ts-build/components/services/path-resolver/path-resolver.js
new file mode 100644
index 000000000..a8f718c7b
--- /dev/null
+++ b/dist/ts-build/components/services/path-resolver/path-resolver.js
@@ -0,0 +1,65 @@
+"use strict";
+var pathutil_1 = require('../pathutil');
+var RefResolver = (function () {
+ function RefResolver() {
+ }
+ RefResolver.prototype.toInstancePath = function (path) {
+ return pathutil_1.PathUtil.normalize(path);
+ };
+ RefResolver.prototype.resolveUi = function (instance, uiPath) {
+ return this.resolveInstance(instance, uiPath + '/scope/$ref');
+ };
+ RefResolver.prototype.resolveInstance = function (instance, schemaPath) {
+ return this.innerResolveInstance(instance, schemaPath, false);
+ };
+ ;
+ RefResolver.prototype.resolveSchema = function (schema, path) {
+ try {
+ var fragments = pathutil_1.PathUtil.toPropertyFragments(path);
+ return fragments.reduce(function (subSchema, fragment) {
+ if (fragment === '#') {
+ return subSchema;
+ }
+ else if (subSchema instanceof Array) {
+ return subSchema.map(function (item) {
+ return item[fragment];
+ });
+ }
+ return subSchema[fragment];
+ }, schema);
+ }
+ catch (err) {
+ return undefined;
+ }
+ };
+ ;
+ RefResolver.prototype.lastFragment = function (schemaPath) {
+ var fragments = pathutil_1.PathUtil.normalizeFragments(schemaPath);
+ return fragments[fragments.length - 1];
+ };
+ RefResolver.prototype.resolveToLastModel = function (instance, schemaPath) {
+ var fragments = pathutil_1.PathUtil.normalizeFragments(schemaPath);
+ var fragmentsToObject = fragments.slice(0, fragments.length - 1);
+ return this.innerResolveInstance(instance, fragmentsToObject.join('/'), true);
+ };
+ RefResolver.prototype.innerResolveInstance = function (instance, schemaPath, createMissing) {
+ var fragments = pathutil_1.PathUtil.toPropertyFragments(this.toInstancePath(schemaPath));
+ return fragments.reduce(function (currObj, fragment) {
+ if (currObj === undefined) {
+ return undefined;
+ }
+ if (currObj instanceof Array) {
+ return currObj.map(function (item) { return item[fragment]; });
+ }
+ if (!currObj.hasOwnProperty(fragment) && createMissing) {
+ currObj[fragment] = {};
+ }
+ return currObj[fragment];
+ }, instance);
+ };
+ ;
+ return RefResolver;
+}());
+exports.RefResolver = RefResolver;
+exports.PathResolver = new RefResolver();
+//# sourceMappingURL=path-resolver.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/services/path-resolver/path-resolver.js.map b/dist/ts-build/components/services/path-resolver/path-resolver.js.map
new file mode 100644
index 000000000..504f60f9f
--- /dev/null
+++ b/dist/ts-build/components/services/path-resolver/path-resolver.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"path-resolver.js","sourceRoot":"","sources":["../../../../../src/components/services/path-resolver/path-resolver.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/components/services/pathutil.d.ts b/dist/ts-build/components/services/pathutil.d.ts
new file mode 100644
index 000000000..3e3081782
--- /dev/null
+++ b/dist/ts-build/components/services/pathutil.d.ts
@@ -0,0 +1,15 @@
+export declare class PathUtil {
+ private static Keywords;
+ private static joinWithSlash;
+ private static numberRegex;
+ static normalize(schemaPath: string): string;
+ static normalizeFragments(schemaPath: string): string[];
+ static toPropertyFragments(path: string): string[];
+ static toPropertyAccessString(propertyPath: string): string;
+ static init(schemaPath: string): string;
+ static filterIndexes(path: string): string;
+ static filterNonKeywords(fragments: string[]): string[];
+ static beautifiedLastFragment(schemaPath: string): string;
+ static lastFragment(path: string): string;
+ static beautify(text: string): string;
+}
diff --git a/dist/ts-build/components/services/pathutil.js b/dist/ts-build/components/services/pathutil.js
new file mode 100644
index 000000000..6c6470c2b
--- /dev/null
+++ b/dist/ts-build/components/services/pathutil.js
@@ -0,0 +1,53 @@
+"use strict";
+require('lodash');
+var PathUtil = (function () {
+ function PathUtil() {
+ }
+ PathUtil.normalize = function (schemaPath) {
+ return _.flow(PathUtil.normalizeFragments, PathUtil.joinWithSlash)(schemaPath);
+ };
+ PathUtil.normalizeFragments = function (schemaPath) {
+ return _.flow(PathUtil.toPropertyFragments, PathUtil.filterNonKeywords)(schemaPath);
+ };
+ PathUtil.toPropertyFragments = function (path) {
+ if (path === undefined) {
+ return [];
+ }
+ return path.split('/').filter(function (fragment) { return fragment.length > 0; });
+ };
+ PathUtil.toPropertyAccessString = function (propertyPath) {
+ if (propertyPath === null || propertyPath === undefined) {
+ throw new Error('Property path must not be undefined.');
+ }
+ var fragments = PathUtil.toPropertyFragments(propertyPath);
+ return fragments.reduce(function (propertyAccessString, fragment) {
+ return (propertyAccessString + "['" + fragment + "']");
+ }, '');
+ };
+ PathUtil.init = function (schemaPath) {
+ return '/' + _.flow(PathUtil.toPropertyFragments, _.initial, PathUtil.joinWithSlash)(schemaPath);
+ };
+ PathUtil.filterIndexes = function (path) {
+ return PathUtil.toPropertyFragments(path)
+ .filter(function (fragment, index, fragments) {
+ return !(fragment.match(PathUtil.numberRegex) && fragments[index - 1] === 'items');
+ }).join('/');
+ };
+ PathUtil.filterNonKeywords = function (fragments) {
+ return fragments.filter(function (fragment) { return !_.includes(PathUtil.Keywords, fragment); });
+ };
+ PathUtil.beautifiedLastFragment = function (schemaPath) {
+ return _.flow(PathUtil.lastFragment, PathUtil.beautify)(schemaPath);
+ };
+ PathUtil.lastFragment = function (path) {
+ return path.substr(path.lastIndexOf('/') + 1);
+ };
+ PathUtil.beautify = function (text) { return _.startCase(text); };
+ ;
+ PathUtil.Keywords = ['items', 'properties', '#'];
+ PathUtil.joinWithSlash = _.partialRight(_.join, '/');
+ PathUtil.numberRegex = /^\d+$/;
+ return PathUtil;
+}());
+exports.PathUtil = PathUtil;
+//# sourceMappingURL=pathutil.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/services/pathutil.js.map b/dist/ts-build/components/services/pathutil.js.map
new file mode 100644
index 000000000..8442e48ab
--- /dev/null
+++ b/dist/ts-build/components/services/pathutil.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"pathutil.js","sourceRoot":"","sources":["../../../../src/components/services/pathutil.ts"],"names":[],"mappings":";AAAA,QAAO,QAAQ,CAAC,CAAA;AAEhB;IAAA;IAuHA,CAAC;IA3GU,kBAAS,GAAhB,UAAiB,UAAkB;QAC/B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;IACnF,CAAC;IAQM,2BAAkB,GAAzB,UAA0B,UAAkB;QACxC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;IACxF,CAAC;IAQM,4BAAmB,GAA1B,UAA2B,IAAY;QACnC,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,EAAE,CAAC;QACd,CAAC;QACD,MAAM,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAnB,CAAmB,CAAC,CAAC;IACpE,CAAC;IASM,+BAAsB,GAA7B,UAA8B,YAAoB;QAC9C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,SAAS,GAAG,QAAQ,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAC,oBAAoB,EAAE,QAAQ;YACnD,OAAA,CAAG,oBAAoB,UAAK,QAAQ,QAAI;QAAxC,CAAwC,EACtC,EAAE,CAAC,CAAC;IACd,CAAC;IASM,aAAI,GAAX,UAAY,UAAkB;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CACX,QAAQ,CAAC,mBAAmB,EAC5B,CAAC,CAAC,OAAO,EACT,QAAQ,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAQM,sBAAa,GAApB,UAAqB,IAAY;QAC7B,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC;aACpC,MAAM,CAAC,UAAC,QAAQ,EAAE,KAAK,EAAE,SAAS;YAC/B,OAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC;QAA3E,CAA2E,CAC9E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAQM,0BAAiB,GAAxB,UAAyB,SAAmB;QACxC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,QAAQ,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAxC,CAAwC,CAAC,CAAC;IAClF,CAAC;IAQM,+BAAsB,GAA7B,UAA8B,UAAkB;QAC5C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IASM,qBAAY,GAAnB,UAAoB,IAAY;QAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAMM,iBAAQ,GAAf,UAAgB,IAAY,IAAY,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;IApHpD,iBAAQ,GAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IAClD,sBAAa,GAAuB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChE,oBAAW,GAAG,OAAO,CAAC;IAmHzC,eAAC;AAAD,CAAC,AAvHD,IAuHC;AAvHY,gBAAQ,WAuHpB,CAAA"}
\ No newline at end of file
diff --git a/dist/ts-build/components/services/rule/rule-service.d.ts b/dist/ts-build/components/services/rule/rule-service.d.ts
new file mode 100644
index 000000000..f92717d8d
--- /dev/null
+++ b/dist/ts-build/components/services/rule/rule-service.d.ts
@@ -0,0 +1,18 @@
+import { ServiceId } from '../services';
+import { IService } from '../services';
+import { IRule } from '../../../uischema';
+export interface IRuleService extends IService {
+ addRuleTrack(ruleServiceCallback: IRuleServiceCallBack): void;
+ reevaluateRules(schemaPath: string): void;
+}
+export interface IRuleServiceCallBack {
+ instance: any;
+ rule: IRule;
+ hide: boolean;
+}
+export declare class RuleService implements IRuleService {
+ private map;
+ getId(): ServiceId;
+ reevaluateRules(schemaPath: string): void;
+ addRuleTrack(renderDescription: IRuleServiceCallBack): void;
+}
diff --git a/dist/ts-build/components/services/rule/rule-service.js b/dist/ts-build/components/services/rule/rule-service.js
new file mode 100644
index 000000000..c2b4cdc1d
--- /dev/null
+++ b/dist/ts-build/components/services/rule/rule-service.js
@@ -0,0 +1,46 @@
+"use strict";
+var services_1 = require('../services');
+var uischema_1 = require('../../../uischema');
+var path_resolver_1 = require('../path-resolver/path-resolver');
+var RuleService = (function () {
+ function RuleService() {
+ this.map = {};
+ }
+ RuleService.prototype.getId = function () {
+ return services_1.ServiceId.RuleService;
+ };
+ RuleService.prototype.reevaluateRules = function (schemaPath) {
+ if (!(schemaPath in this.map)) {
+ return;
+ }
+ var renderDescriptionArray = this.map[schemaPath];
+ for (var i = 0; i < renderDescriptionArray.length; i++) {
+ var renderDescription = renderDescriptionArray[i];
+ var conditionValue = null;
+ try {
+ conditionValue = path_resolver_1.PathResolver.resolveInstance(renderDescription.instance, schemaPath);
+ }
+ catch (e) {
+ }
+ var valueMatch = (renderDescription.rule.condition.expectedValue === conditionValue);
+ var effect = renderDescription.rule.effect;
+ renderDescription.hide = (effect === uischema_1.RuleEffect.HIDE && valueMatch)
+ || (effect === uischema_1.RuleEffect.SHOW && !valueMatch);
+ }
+ };
+ ;
+ RuleService.prototype.addRuleTrack = function (renderDescription) {
+ if (renderDescription.rule === undefined) {
+ return;
+ }
+ var path = renderDescription.rule.condition['scope'].$ref;
+ if (!(path in this.map)) {
+ this.map[path] = [];
+ }
+ this.map[path].push(renderDescription);
+ this.reevaluateRules(path);
+ };
+ return RuleService;
+}());
+exports.RuleService = RuleService;
+//# sourceMappingURL=rule-service.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/services/rule/rule-service.js.map b/dist/ts-build/components/services/rule/rule-service.js.map
new file mode 100644
index 000000000..51ee2b79e
--- /dev/null
+++ b/dist/ts-build/components/services/rule/rule-service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"rule-service.js","sourceRoot":"","sources":["../../../../../src/components/services/rule/rule-service.ts"],"names":[],"mappings":";AAAA,yBAAwB,aAAa,CAAC,CAAA;AAEtC,yBAAgD,mBAAmB,CAAC,CAAA;AACpE,8BAA2B,gCAAgC,CAAC,CAAA;AAY5D;IAAA;QACY,QAAG,GAA8C,EAAE,CAAC;IA8ChE,CAAC;IA5CG,2BAAK,GAAL;QACI,MAAM,CAAC,oBAAS,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,qCAAe,GAAf,UAAgB,UAAkB;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC;QACX,CAAC;QACD,IAAI,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,IAAI,iBAAiB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,cAAc,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC;gBACD,cAAc,GAAG,4BAAY,CAAC,eAAe,CACzC,iBAAiB,CAAC,QAAQ,EAC1B,UAAU,CAAC,CAAC;YACpB,CAAE;YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEb,CAAC;YACD,IAAI,UAAU,GAAG,CACb,iBAAiB,CAAC,IAAI,CAAC,SAAU,CAAC,aAAa,KAAK,cAAc,CAAC,CAAC;YACxE,IAAI,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;YAE3C,iBAAiB,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,qBAAU,CAAC,IAAI,IAAI,UAAU,CAAC;mBAC5D,CAAC,MAAM,KAAK,qBAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAMvD,CAAC;IACL,CAAC;;IAED,kCAAY,GAAZ,UAAa,iBAAuC;QAChD,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC;QACX,CAAC;QACD,IAAI,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QAC1D,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACL,kBAAC;AAAD,CAAC,AA/CD,IA+CC;AA/CY,mBAAW,cA+CvB,CAAA"}
\ No newline at end of file
diff --git a/dist/ts-build/components/services/services.d.ts b/dist/ts-build/components/services/services.d.ts
new file mode 100644
index 000000000..3e87537bc
--- /dev/null
+++ b/dist/ts-build/components/services/services.d.ts
@@ -0,0 +1,59 @@
+import { SchemaElement } from '../../jsonschema';
+import { IUISchemaElement } from '../../uischema';
+export declare class Services {
+ private services;
+ add(service: IService): void;
+ get(serviceId: ServiceId): T;
+}
+export declare class ScopeProvider implements IScopeProvider {
+ private scope;
+ constructor(scope: ng.IScope);
+ getId(): ServiceId;
+ getScope(): ng.IScope;
+}
+export declare class SchemaProvider implements ISchemaProvider {
+ private schema;
+ constructor(schema: SchemaElement);
+ getId(): ServiceId;
+ getSchema(): SchemaElement;
+}
+export declare class UiSchemaProvider implements IUiSchemaProvider {
+ private schema;
+ constructor(schema: IUISchemaElement);
+ getId(): ServiceId;
+ getUiSchema(): IUISchemaElement;
+}
+export declare class ValidationService implements IValidationService {
+ private validationResults;
+ private checkObjects;
+ getId(): ServiceId;
+ getResult(instance: any, dataPath: string): any;
+ validate(instance: any, schema: SchemaElement): void;
+ private convertAllDates(instance);
+ private clear(instance);
+}
+export declare enum ServiceId {
+ Validation = 0,
+ DataProvider = 1,
+ SchemaProvider = 2,
+ UiSchemaProvider = 3,
+ ScopeProvider = 4,
+ RuleService = 5,
+ PathResolver = 6,
+}
+export interface IService {
+ getId(): ServiceId;
+}
+export interface IScopeProvider extends IService {
+ getScope(): ng.IScope;
+}
+export interface IUiSchemaProvider extends IService {
+ getUiSchema(): IUISchemaElement;
+}
+export interface ISchemaProvider extends IService {
+ getSchema(): SchemaElement;
+}
+export interface IValidationService extends IService {
+ getResult(instance: any, dataPath: string): any;
+ validate(instance: any, schema: SchemaElement): void;
+}
diff --git a/dist/ts-build/components/services/services.js b/dist/ts-build/components/services/services.js
new file mode 100644
index 000000000..cd5df5f56
--- /dev/null
+++ b/dist/ts-build/components/services/services.js
@@ -0,0 +1,136 @@
+"use strict";
+var Ajv = require('ajv');
+var ajv = new Ajv({ allErrors: true, jsonPointers: true });
+var HashTable = (function () {
+ function HashTable() {
+ this.hashes = {};
+ }
+ HashTable.prototype.put = function (key, value) {
+ this.hashes[JSON.stringify(key)] = value;
+ };
+ HashTable.prototype.get = function (key) {
+ return this.hashes[JSON.stringify(key)];
+ };
+ return HashTable;
+}());
+var Services = (function () {
+ function Services() {
+ this.services = {};
+ }
+ Services.prototype.add = function (service) {
+ this.services[service.getId()] = service;
+ };
+ Services.prototype.get = function (serviceId) {
+ return this.services[serviceId];
+ };
+ return Services;
+}());
+exports.Services = Services;
+var ScopeProvider = (function () {
+ function ScopeProvider(scope) {
+ this.scope = scope;
+ }
+ ScopeProvider.prototype.getId = function () {
+ return ServiceId.ScopeProvider;
+ };
+ ScopeProvider.prototype.getScope = function () {
+ return this.scope;
+ };
+ return ScopeProvider;
+}());
+exports.ScopeProvider = ScopeProvider;
+var SchemaProvider = (function () {
+ function SchemaProvider(schema) {
+ this.schema = schema;
+ }
+ SchemaProvider.prototype.getId = function () {
+ return ServiceId.SchemaProvider;
+ };
+ SchemaProvider.prototype.getSchema = function () {
+ return this.schema;
+ };
+ return SchemaProvider;
+}());
+exports.SchemaProvider = SchemaProvider;
+var UiSchemaProvider = (function () {
+ function UiSchemaProvider(schema) {
+ this.schema = schema;
+ }
+ UiSchemaProvider.prototype.getId = function () {
+ return ServiceId.UiSchemaProvider;
+ };
+ UiSchemaProvider.prototype.getUiSchema = function () {
+ return this.schema;
+ };
+ return UiSchemaProvider;
+}());
+exports.UiSchemaProvider = UiSchemaProvider;
+var ValidationService = (function () {
+ function ValidationService() {
+ this.validationResults = new HashTable();
+ this.checkObjects = [];
+ }
+ ValidationService.prototype.getId = function () {
+ return ServiceId.Validation;
+ };
+ ValidationService.prototype.getResult = function (instance, dataPath) {
+ if (this.validationResults.get(instance) === undefined) {
+ return undefined;
+ }
+ else {
+ return this.validationResults.get(instance)[dataPath];
+ }
+ };
+ ValidationService.prototype.validate = function (instance, schema) {
+ var _this = this;
+ if (ajv === undefined) {
+ return;
+ }
+ this.convertAllDates(instance);
+ this.checkObjects = [];
+ this.clear(instance);
+ var valid = ajv.validate(schema, instance);
+ if (valid) {
+ this.validationResults.put(instance, undefined);
+ return;
+ }
+ ajv['errors'].forEach(function (error) {
+ if (error['schemaPath'].indexOf('required') !== -1) {
+ var propName = error['dataPath'] + '/' + error['params']['missingProperty'];
+ _this.validationResults.get(instance)[propName] = error['message'];
+ }
+ else {
+ _this.validationResults.get(instance)[error['dataPath']] = error['message'];
+ }
+ });
+ };
+ ValidationService.prototype.convertAllDates = function (instance) {
+ var _this = this;
+ _.forOwn(instance, function (value, key) {
+ if (_.includes(_this.checkObjects, value)) {
+ return;
+ }
+ _this.checkObjects.push(value);
+ if (value instanceof Date) {
+ instance[key] = value.toString();
+ }
+ else if (value instanceof Object) {
+ _this.convertAllDates(value);
+ }
+ });
+ };
+ ValidationService.prototype.clear = function (instance) { this.validationResults.put(instance, {}); };
+ return ValidationService;
+}());
+exports.ValidationService = ValidationService;
+(function (ServiceId) {
+ ServiceId[ServiceId["Validation"] = 0] = "Validation";
+ ServiceId[ServiceId["DataProvider"] = 1] = "DataProvider";
+ ServiceId[ServiceId["SchemaProvider"] = 2] = "SchemaProvider";
+ ServiceId[ServiceId["UiSchemaProvider"] = 3] = "UiSchemaProvider";
+ ServiceId[ServiceId["ScopeProvider"] = 4] = "ScopeProvider";
+ ServiceId[ServiceId["RuleService"] = 5] = "RuleService";
+ ServiceId[ServiceId["PathResolver"] = 6] = "PathResolver";
+})(exports.ServiceId || (exports.ServiceId = {}));
+var ServiceId = exports.ServiceId;
+//# sourceMappingURL=services.js.map
\ No newline at end of file
diff --git a/dist/ts-build/components/services/services.js.map b/dist/ts-build/components/services/services.js.map
new file mode 100644
index 000000000..38928e234
--- /dev/null
+++ b/dist/ts-build/components/services/services.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../../src/components/services/services.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/array.data.d.ts b/dist/ts-build/examples/array.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/array.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/array.data.js b/dist/ts-build/examples/array.data.js
new file mode 100644
index 000000000..02fdebb01
--- /dev/null
+++ b/dist/ts-build/examples/array.data.js
@@ -0,0 +1,107 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.array', [])
+ .value('array.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'name': {
+ 'type': 'string'
+ },
+ 'vegetarian': {
+ 'type': 'boolean'
+ },
+ 'birthDate': {
+ 'type': 'string',
+ 'format': 'date-time'
+ },
+ 'nationality': {
+ 'type': 'string',
+ 'enum': ['DE', 'IT', 'JP', 'US', 'RU', 'Other']
+ },
+ 'occupation': {
+ 'type': 'string'
+ },
+ 'comments': {
+ 'type': 'array',
+ 'items': {
+ 'type': 'object',
+ 'properties': {
+ 'date': {
+ 'type': 'string',
+ 'format': 'date-time'
+ },
+ 'message': {
+ 'type': 'string'
+ }
+ }
+ }
+ }
+ },
+ 'required': ['occupation', 'nationality']
+})
+ .value('array.uischema', {
+ 'type': 'VerticalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/comments'
+ },
+ 'options': {
+ 'submit': true,
+ 'detail-uischema': {
+ 'type': 'Group',
+ 'label': 'MyGroup',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/date'
+ },
+ 'rule': {
+ 'effect': 'HIDE',
+ 'condition': {
+ 'type': 'LEAF',
+ 'scope': {
+ '$ref': '#/properties/message'
+ },
+ 'expectedValue': 'foo'
+ }
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/message'
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+})
+ .value('array.uischema-simple', {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/comments'
+ },
+ 'label': 'Some more comments',
+ 'options': {
+ 'simple': true
+ }
+})
+ .value('array.data', {
+ 'comments': [
+ {
+ 'date': new Date(),
+ 'message': 'This is an example message'
+ },
+ {
+ 'date': new Date(),
+ 'message': 'Get ready for booohay'
+ }
+ ]
+})
+ .name;
+//# sourceMappingURL=array.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/array.data.js.map b/dist/ts-build/examples/array.data.js.map
new file mode 100644
index 000000000..1842973a7
--- /dev/null
+++ b/dist/ts-build/examples/array.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"array.data.js","sourceRoot":"","sources":["../../../examples/data/array.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,EAAE,CAAC;KAC1D,KAAK,CAAC,cAAc,EACrB;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;SACjB;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,SAAS;SAClB;QACD,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,WAAW;SACtB;QACD,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;SAChD;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;SACjB;QACD,UAAU,EAAE;YACV,MAAM,EAAE,OAAO;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE;oBACZ,MAAM,EAAE;wBACN,MAAM,EAAE,QAAQ;wBAChB,QAAQ,EAAE,WAAW;qBACtB;oBACD,SAAS,EAAE;wBACT,MAAM,EAAE,QAAQ;qBACjB;iBACF;aACF;SACF;KACF;IACD,UAAU,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;CAC1C,CACA;KACA,KAAK,CAAC,gBAAgB,EACvB;IACE,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE;gBACP,MAAM,EAAE,uBAAuB;aAChC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,iBAAiB,EAAE;oBACjB,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,SAAS;oBAClB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE;gCACP,MAAM,EAAE,mBAAmB;6BAC5B;4BACD,MAAM,EAAE;gCACN,QAAQ,EAAE,MAAM;gCAChB,WAAW,EAAE;oCACX,MAAM,EAAE,MAAM;oCACd,OAAO,EAAE;wCACP,MAAM,EAAE,sBAAsB;qCAC/B;oCACD,eAAe,EAAE,KAAK;iCACvB;6BACF;yBACF;wBACD;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE;gCACP,MAAM,EAAE,sBAAsB;6BAC/B;yBACF;qBACF;iBACF;aACF;SACF;KACF;CACF,CACA;KACA,KAAK,CAAC,uBAAuB,EAC9B;IACE,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE;QACP,MAAM,EAAE,uBAAuB;KAChC;IACD,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI;KACf;CACF,CACA;KACA,KAAK,CAAC,YAAY,EACnB;IACE,UAAU,EAAE;QACV;YACE,MAAM,EAAE,IAAI,IAAI,EAAE;YAClB,SAAS,EAAE,4BAA4B;SACxC;QACD;YACE,MAAM,EAAE,IAAI,IAAI,EAAE;YAClB,SAAS,EAAE,uBAAuB;SACnC;KACF;CACF,CACA;KACA,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/async.data.d.ts b/dist/ts-build/examples/async.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/async.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/async.data.js b/dist/ts-build/examples/async.data.js
new file mode 100644
index 000000000..ece58bcfc
--- /dev/null
+++ b/dist/ts-build/examples/async.data.js
@@ -0,0 +1,41 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.async', [])
+ .value('async.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ },
+ 'nationality': {
+ 'type': 'string',
+ 'enum': ['DE', 'IT', 'JP', 'US', 'RU', 'Other']
+ }
+ }
+})
+ .value('async.uischema', {
+ 'type': 'HorizontalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Nationality',
+ 'scope': {
+ '$ref': '#/properties/nationality'
+ }
+ }
+ ]
+})
+ .value('async.data', {
+ name: 'John Doe',
+ nationality: 'US'
+})
+ .name;
+//# sourceMappingURL=async.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/async.data.js.map b/dist/ts-build/examples/async.data.js.map
new file mode 100644
index 000000000..9424a7166
--- /dev/null
+++ b/dist/ts-build/examples/async.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"async.data.js","sourceRoot":"","sources":["../../../examples/data/async.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,EAAE,CAAC;KAC1D,KAAK,CAAC,cAAc,EACnB;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;SACf;QACD,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;SAChD;KACF;CACF,CACF;KACA,KAAK,CAAC,gBAAgB,EACrB;IACE,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE;QACV;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;aAC5B;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE;gBACP,MAAM,EAAE,0BAA0B;aACnC;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,YAAY,EACjB;IACE,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,IAAI;CAClB,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/category.data.d.ts b/dist/ts-build/examples/category.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/category.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/category.data.js b/dist/ts-build/examples/category.data.js
new file mode 100644
index 000000000..850bb3add
--- /dev/null
+++ b/dist/ts-build/examples/category.data.js
@@ -0,0 +1,179 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.category', [])
+ .value('category.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'name': {
+ 'type': 'string'
+ },
+ 'vegetarian': {
+ 'type': 'boolean'
+ },
+ 'birthDate': {
+ 'type': 'string',
+ 'format': 'date'
+ },
+ 'nationality': {
+ 'type': 'string',
+ 'enum': ['DE', 'IT', 'JP', 'US', 'RU', 'Other']
+ }
+ }
+})
+ .value('category.uischema', {
+ 'type': 'Categorization',
+ 'elements': [
+ {
+ 'type': 'Categorization',
+ 'label': 'Sub',
+ 'elements': [
+ {
+ 'type': 'Category',
+ 'label': 'SubPrivate',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ }
+ ]
+ },
+ {
+ 'type': 'Category',
+ 'label': 'Additional',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/nationality'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/vegetarian'
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ 'type': 'Category',
+ 'label': 'Private',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+ },
+ {
+ 'type': 'Category',
+ 'label': 'Additional',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/vegetarian'
+ }
+ }
+ ]
+ }
+ ]
+})
+ .value('category.uischema-expandbar', {
+ 'type': 'Categorization',
+ 'options': {
+ 'expandbar': true
+ },
+ 'elements': [
+ {
+ 'type': 'Categorization',
+ 'label': 'A',
+ 'elements': [
+ {
+ 'type': 'Category',
+ 'label': 'Private A',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ }
+ ]
+ },
+ {
+ 'type': 'Category',
+ 'label': 'Additional A',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Height',
+ 'scope': {
+ '$ref': '#/properties/nationality'
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ 'type': 'Categorization',
+ 'label': 'B',
+ 'elements': [
+ {
+ 'type': 'Category',
+ 'label': 'Private B',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Age',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+ },
+ {
+ 'type': 'Category',
+ 'label': 'Additional B',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Vegetarian',
+ 'scope': {
+ '$ref': '#/properties/vegetarian'
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+})
+ .value('category.data', {
+ name: 'John Doe',
+ vegetarian: false,
+ birthDate: '1985-06-02',
+ nationality: 'DE'
+})
+ .name;
+//# sourceMappingURL=category.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/category.data.js.map b/dist/ts-build/examples/category.data.js.map
new file mode 100644
index 000000000..f4594c7a6
--- /dev/null
+++ b/dist/ts-build/examples/category.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"category.data.js","sourceRoot":"","sources":["../../../examples/data/category.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,EAAE,CAAC;KAC7D,KAAK,CAAC,iBAAiB,EACtB;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;SACjB;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,SAAS;SAClB;QACD,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,MAAM;SACjB;QACD,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;SAChD;KACF;CACF,CACF;KACA,KAAK,CAAC,mBAAmB,EACxB;IACE,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,KAAK;YACd,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,YAAY;oBACrB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE;gCACP,MAAM,EAAE,mBAAmB;6BAC5B;yBACF;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,YAAY;oBACrB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE;gCACP,MAAM,EAAE,0BAA0B;6BACnC;yBACF;wBACD;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE;gCACP,MAAM,EAAE,yBAAyB;6BAClC;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,mBAAmB;qBAC5B;iBACF;gBACD;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,wBAAwB;qBACjC;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,wBAAwB;qBACjC;iBACF;gBACD;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,yBAAyB;qBAClC;iBACF;aACF;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,6BAA6B,EAClC;IACE,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE;QACT,WAAW,EAAE,IAAI;KAClB;IACD,UAAU,EAAE;QACV;YACE,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,WAAW;oBACpB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,MAAM;4BACf,OAAO,EAAE;gCACP,MAAM,EAAE,mBAAmB;6BAC5B;yBACF;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,cAAc;oBACvB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,QAAQ;4BACjB,OAAO,EAAE;gCACP,MAAM,EAAE,0BAA0B;6BACnC;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,WAAW;oBACpB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE;gCACP,MAAM,EAAE,wBAAwB;6BACjC;yBACF;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,cAAc;oBACvB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,YAAY;4BACrB,OAAO,EAAE;gCACP,MAAM,EAAE,yBAAyB;6BAClC;yBACF;qBACF;iBACF;aACF;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,eAAe,EACpB;IACE,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,IAAI;CAClB,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/custom.data.d.ts b/dist/ts-build/examples/custom.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/custom.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/custom.data.js b/dist/ts-build/examples/custom.data.js
new file mode 100644
index 000000000..1a83f1c7d
--- /dev/null
+++ b/dist/ts-build/examples/custom.data.js
@@ -0,0 +1,77 @@
+"use strict";
+function customDirective() {
+ return {
+ restrict: 'E',
+ template: '' +
+ '' +
+ '',
+ controller: ['BaseController', '$scope', function (BaseController, $scope) {
+ return new BaseController($scope);
+ }],
+ controllerAs: 'vm'
+ };
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.custom', [])
+ .value('custom.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'firstName': {
+ 'type': 'string',
+ 'minLength': 3
+ },
+ 'lastName': { 'type': 'string' },
+ 'age': {
+ 'type': 'integer',
+ 'minimum': 20
+ },
+ 'address': {
+ 'type': 'object',
+ 'properties': {
+ 'street': {
+ 'type': 'string'
+ }
+ }
+ }
+ },
+ 'required': ['lastName', 'firstName']
+})
+ .value('custom.uischema', {
+ 'type': 'VerticalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'First name',
+ 'scope': { '$ref': '#/properties/firstName' },
+ 'options': {
+ 'useCustom': true
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Last name',
+ 'scope': { '$ref': '#/properties/lastName' }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Age',
+ 'scope': { '$ref': '#/properties/age' }
+ },
+ {
+ 'type': 'Control',
+ 'scope': { '$ref': '#/properties/address/properties/street' }
+ }
+ ]
+})
+ .value('custom.data', {
+ 'firstName': 'Gustav',
+ 'lastName': 'Gans'
+})
+ .directive('customControl', customDirective)
+ .run(['RendererService', 'JSONFormsTesters', function (RendererService, testers) {
+ RendererService.register('custom-control', testers.and(testers.uiTypeIs('Control'), testers.schemaPropertyName('firstName'), testers.optionIs('useCustom', true)), 3);
+ }])
+ .name;
+//# sourceMappingURL=custom.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/custom.data.js.map b/dist/ts-build/examples/custom.data.js.map
new file mode 100644
index 000000000..729495194
--- /dev/null
+++ b/dist/ts-build/examples/custom.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"custom.data.js","sourceRoot":"","sources":["../../../examples/data/custom.data.ts"],"names":[],"mappings":";AAAA;IACI,MAAM,CAAC;QACH,QAAQ,EAAG,GAAG;QACd,QAAQ,EAAG,qBAAqB;YAC9B,uEAAuE;YACrE,sDAAsD;YACtD,gFAAgF;YACpF,sBAAsB;QACtB,UAAU,EAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAS,cAAc,EAAE,MAAM;gBACrE,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC;QACF,YAAY,EAAG,IAAI;KACtB,CAAC;AACN,CAAC;AACD;kBAAe,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,CAAC;KAC3D,KAAK,CAAC,eAAe,EACpB;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;SACf;QACD,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAChC,KAAK,EAAE;YACL,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,EAAE;SACd;QACD,SAAS,EAAE;YACT,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE;gBACZ,QAAQ,EAAE;oBACR,MAAM,EAAE,QAAQ;iBACjB;aACF;SACF;KACF;IACD,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;CACtC,CACF;KACA,KAAK,CAAC,iBAAiB,EACtB;IACE,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE;QACR;YACI,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE;YAC7C,SAAS,EAAE;gBACP,WAAW,EAAE,IAAI;aACpB;SACJ;QACD;YACI,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE;SAC/C;QACD;YACI,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC1C;QACD;YACI,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,EAAE,MAAM,EAAE,wCAAwC,EAAE;SAChE;KACJ;CACF,CACF;KACA,KAAK,CAAC,aAAa,EAClB;IACI,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,MAAM;CACrB,CACF;KACA,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;KAC3C,GAAG,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,UAAS,eAAe,EAAE,OAAO;QAC1E,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EACrC,OAAO,CAAC,GAAG,CACP,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC3B,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,EACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CACtC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;KACR,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/generate-schema.data.d.ts b/dist/ts-build/examples/generate-schema.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/generate-schema.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/generate-schema.data.js b/dist/ts-build/examples/generate-schema.data.js
new file mode 100644
index 000000000..b2889395d
--- /dev/null
+++ b/dist/ts-build/examples/generate-schema.data.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.generate-schema', [])
+ .value('generate-schema.schema', undefined)
+ .value('generate-schema.uischema', undefined)
+ .value('generate-schema.data', {
+ name: 'John Doe',
+ age: 36
+})
+ .name;
+//# sourceMappingURL=generate-schema.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/generate-schema.data.js.map b/dist/ts-build/examples/generate-schema.data.js.map
new file mode 100644
index 000000000..8013304b0
--- /dev/null
+++ b/dist/ts-build/examples/generate-schema.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"generate-schema.data.js","sourceRoot":"","sources":["../../../examples/data/generate-schema.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,oCAAoC,EAAE,EAAE,CAAC;KACpE,KAAK,CAAC,wBAAwB,EAAE,SAAS,CAAC;KAC1C,KAAK,CAAC,0BAA0B,EAAE,SAAS,CAAC;KAC5C,KAAK,CAAC,sBAAsB,EAC3B;IACE,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,EAAE;CACR,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/generate-uischema.data.d.ts b/dist/ts-build/examples/generate-uischema.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/generate-uischema.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/generate-uischema.data.js b/dist/ts-build/examples/generate-uischema.data.js
new file mode 100644
index 000000000..6f4987bfe
--- /dev/null
+++ b/dist/ts-build/examples/generate-uischema.data.js
@@ -0,0 +1,21 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.generate-uischema', [])
+ .value('generate-uischema.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'name': {
+ 'type': 'string'
+ },
+ 'age': {
+ 'type': 'integer'
+ }
+ }
+})
+ .value('generate-uischema.uischema', undefined)
+ .value('generate-uischema.data', {
+ name: 'John Doe',
+ age: 36
+})
+ .name;
+//# sourceMappingURL=generate-uischema.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/generate-uischema.data.js.map b/dist/ts-build/examples/generate-uischema.data.js.map
new file mode 100644
index 000000000..212982f52
--- /dev/null
+++ b/dist/ts-build/examples/generate-uischema.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"generate-uischema.data.js","sourceRoot":"","sources":["../../../examples/data/generate-uischema.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,sCAAsC,EAAE,EAAE,CAAC;KACtE,KAAK,CAAC,0BAA0B,EAC/B;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;SACjB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,SAAS;SAClB;KACF;CACF,CACF;KACA,KAAK,CAAC,4BAA4B,EAAE,SAAS,CAAC;KAC9C,KAAK,CAAC,wBAAwB,EAC7B;IACE,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,EAAE;CACR,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/jsonforms-examples.d.ts b/dist/ts-build/examples/jsonforms-examples.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/jsonforms-examples.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/jsonforms-examples.js b/dist/ts-build/examples/jsonforms-examples.js
new file mode 100644
index 000000000..067e712df
--- /dev/null
+++ b/dist/ts-build/examples/jsonforms-examples.js
@@ -0,0 +1,28 @@
+"use strict";
+require('angular');
+var array_data_1 = require('./array.data');
+var async_data_1 = require('./async.data');
+var category_data_1 = require('./category.data');
+var custom_data_1 = require('./custom.data');
+var generate_schema_data_1 = require('./generate-schema.data');
+var generate_uischema_data_1 = require('./generate-uischema.data');
+var layouts_data_1 = require('./layouts.data');
+var masterdetail_data_1 = require('./masterdetail.data');
+var person_data_1 = require('./person.data');
+var resolve_data_1 = require('./resolve.data');
+var rule_data_1 = require('./rule.data');
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples', [
+ array_data_1.default,
+ async_data_1.default,
+ category_data_1.default,
+ custom_data_1.default,
+ generate_schema_data_1.default,
+ generate_uischema_data_1.default,
+ layouts_data_1.default,
+ masterdetail_data_1.default,
+ person_data_1.default,
+ resolve_data_1.default,
+ rule_data_1.default
+]).name;
+//# sourceMappingURL=jsonforms-examples.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/jsonforms-examples.js.map b/dist/ts-build/examples/jsonforms-examples.js.map
new file mode 100644
index 000000000..e5c7645d9
--- /dev/null
+++ b/dist/ts-build/examples/jsonforms-examples.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"jsonforms-examples.js","sourceRoot":"","sources":["../../../examples/data/jsonforms-examples.ts"],"names":[],"mappings":";AAAA,QAAO,SAAS,CAAC,CAAA;AACjB,2BAAkB,cAAc,CAAC,CAAA;AACjC,2BAAkB,cAAc,CAAC,CAAA;AACjC,8BAAqB,iBAAiB,CAAC,CAAA;AACvC,4BAAmB,eAAe,CAAC,CAAA;AACnC,qCAA2B,wBAAwB,CAAC,CAAA;AACpD,uCAA6B,0BAA0B,CAAC,CAAA;AACxD,6BAAoB,gBAAgB,CAAC,CAAA;AACrC,kCAAyB,qBAAqB,CAAC,CAAA;AAC/C,4BAAmB,eAAe,CAAC,CAAA;AACnC,6BAAoB,gBAAgB,CAAC,CAAA;AACrC,0BAAiB,aAAa,CAAC,CAAA;AAE/B;kBAAe,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE;IAClD,oBAAK;IACL,oBAAK;IACL,uBAAQ;IACR,qBAAM;IACN,8BAAc;IACd,gCAAgB;IAChB,sBAAO;IACP,2BAAY;IACZ,qBAAM;IACN,sBAAO;IACP,mBAAI;CACL,CAAC,CAAC,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/layouts.data.d.ts b/dist/ts-build/examples/layouts.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/layouts.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/layouts.data.js b/dist/ts-build/examples/layouts.data.js
new file mode 100644
index 000000000..4bbbdc2b3
--- /dev/null
+++ b/dist/ts-build/examples/layouts.data.js
@@ -0,0 +1,128 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.layouts', [])
+ .value('layouts.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'name': {
+ 'type': 'string'
+ },
+ 'birthDate': {
+ 'type': 'string',
+ 'format': 'date'
+ }
+ }
+})
+ .value('layouts.uischema-vertical', {
+ 'type': 'VerticalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Birth Date',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+})
+ .value('layouts.uischema-horizontal', {
+ 'type': 'HorizontalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Birth Date',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+})
+ .value('layouts.uischema-group', {
+ 'type': 'Group',
+ 'label': 'My Group',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Birth Date',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+})
+ .value('layouts.uischema-complex', {
+ 'type': 'Group',
+ 'label': 'My Group',
+ 'elements': [
+ {
+ 'type': 'HorizontalLayout',
+ 'elements': [
+ {
+ 'type': 'VerticalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Birth Date',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+ },
+ {
+ 'type': 'VerticalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Birth Date',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+})
+ .value('layouts.data', {
+ name: 'John Doe',
+ birthDate: '1985-06-02'
+})
+ .name;
+//# sourceMappingURL=layouts.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/layouts.data.js.map b/dist/ts-build/examples/layouts.data.js.map
new file mode 100644
index 000000000..fa77ab368
--- /dev/null
+++ b/dist/ts-build/examples/layouts.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"layouts.data.js","sourceRoot":"","sources":["../../../examples/data/layouts.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,EAAE,CAAC;KAC5D,KAAK,CAAC,gBAAgB,EACrB;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;SACjB;QACD,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,MAAM;SACjB;KACF;CACF,CACF;KACA,KAAK,CAAC,2BAA2B,EAChC;IACE,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;aAC5B;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,wBAAwB;aACjC;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,6BAA6B,EAClC;IACE,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE;QACV;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;aAC5B;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,wBAAwB;aACjC;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,wBAAwB,EAC7B;IACE,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;aAC5B;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,wBAAwB;aACjC;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,0BAA0B,EAC/B;IACE,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,kBAAkB;YAC1B,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,gBAAgB;oBACxB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,MAAM;4BACf,OAAO,EAAE;gCACP,MAAM,EAAE,mBAAmB;6BAC5B;yBACF;wBACD;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,YAAY;4BACrB,OAAO,EAAE;gCACP,MAAM,EAAE,wBAAwB;6BACjC;yBACF;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,gBAAgB;oBACxB,UAAU,EAAE;wBACV;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,MAAM;4BACf,OAAO,EAAE;gCACP,MAAM,EAAE,mBAAmB;6BAC5B;yBACF;wBACD;4BACE,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,YAAY;4BACrB,OAAO,EAAE;gCACP,MAAM,EAAE,wBAAwB;6BACjC;yBACF;qBACF;iBACF;aACF;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,cAAc,EACnB;IACE,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,YAAY;CACxB,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/masterdetail.data.d.ts b/dist/ts-build/examples/masterdetail.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/masterdetail.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/masterdetail.data.js b/dist/ts-build/examples/masterdetail.data.js
new file mode 100644
index 000000000..cf1b62b06
--- /dev/null
+++ b/dist/ts-build/examples/masterdetail.data.js
@@ -0,0 +1,237 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.masterdetail', [])
+ .value('masterdetail.schema-array', {
+ 'definitions': {
+ 'folder': {
+ 'type': 'object',
+ 'id': '#folder_array',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ },
+ 'folders': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/file'
+ }
+ },
+ 'files': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/file'
+ }
+ }
+ },
+ 'required': ['name']
+ },
+ 'file': {
+ 'type': 'object',
+ 'id': '#file_array',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ }
+ },
+ 'required': ['name']
+ },
+ 'drive': {
+ 'type': 'object',
+ 'id': '#drive_array',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ },
+ 'folders': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/folder'
+ }
+ },
+ 'files': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/file'
+ }
+ }
+ },
+ 'required': ['name']
+ }
+ },
+ 'type': 'array',
+ 'id': 'drives#',
+ 'items': {
+ '$ref': '#/definitions/drive'
+ }
+})
+ .value('masterdetail.schema-object', {
+ 'definitions': {
+ 'folder': {
+ 'type': 'object',
+ 'id': '#folder_object',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ },
+ 'folders': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/file'
+ }
+ },
+ 'files': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/file'
+ }
+ }
+ },
+ 'required': ['name']
+ },
+ 'file': {
+ 'type': 'object',
+ 'id': '#file_object',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ }
+ },
+ 'required': ['name']
+ }
+ },
+ 'type': 'object',
+ 'id': '#drive_object',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ },
+ 'folders': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/folder'
+ }
+ },
+ 'files': {
+ 'type': 'array',
+ 'items': {
+ '$ref': '#/definitions/file'
+ }
+ }
+ },
+ 'required': ['name']
+})
+ .value('masterdetail.uischema', {
+ 'type': 'MasterDetailLayout',
+ 'scope': {
+ '$ref': '#'
+ },
+ 'options': {
+ 'labelProvider': {
+ '#drive_array': 'name',
+ '#folder_array': 'name',
+ '#file_array': 'name',
+ '#drive_object': 'name',
+ '#folder_object': 'name',
+ '#file_object': 'name'
+ },
+ 'imageProvider': {
+ '#folder_array': 'assets/masterdetail-icons/folder.png',
+ '#file_array': 'assets/masterdetail-icons/page.png',
+ '#drive_array': 'assets/masterdetail-icons/drive.png',
+ '#folder_object': 'assets/masterdetail-icons/folder.png',
+ '#file_object': 'assets/masterdetail-icons/page.png',
+ '#drive_object': 'assets/masterdetail-icons/drive.png'
+ }
+ }
+})
+ .value('masterdetail.data-array', [
+ {
+ 'name': 'c',
+ 'folders': [
+ {
+ name: 'a',
+ folders: [
+ {
+ name: 'aa'
+ },
+ {
+ name: 'ab'
+ }
+ ]
+ },
+ {
+ name: 'b'
+ }
+ ],
+ 'files': [
+ {
+ name: 'x',
+ },
+ {
+ name: 'y',
+ }
+ ]
+ },
+ {
+ 'name': 'd',
+ 'folders': [
+ {
+ name: 'o',
+ folders: [
+ {
+ name: 'oo'
+ },
+ {
+ name: 'op'
+ }
+ ]
+ },
+ {
+ name: 'p'
+ }
+ ],
+ 'files': [
+ {
+ name: 'i',
+ },
+ {
+ name: 'k',
+ }
+ ]
+ }
+])
+ .value('masterdetail.data-object', {
+ 'name': 'c',
+ 'folders': [
+ {
+ name: 'a',
+ folders: [
+ {
+ name: 'aa'
+ },
+ {
+ name: 'ab'
+ }
+ ]
+ },
+ {
+ name: 'b'
+ }
+ ],
+ 'files': [
+ {
+ name: 'x',
+ },
+ {
+ name: 'y',
+ }
+ ]
+})
+ .name;
+//# sourceMappingURL=masterdetail.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/masterdetail.data.js.map b/dist/ts-build/examples/masterdetail.data.js.map
new file mode 100644
index 000000000..840d14d63
--- /dev/null
+++ b/dist/ts-build/examples/masterdetail.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"masterdetail.data.js","sourceRoot":"","sources":["../../../examples/data/masterdetail.data.ts"],"names":[],"mappings":"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AE,qCAAqC;SACvD;KACF;CACF,CACF;KACA,KAAK,CAAC,yBAAyB,EAC9B;IACE;QACE,MAAM,EAAE,GAAG;QACX,SAAS,EACT;YACE;gBACE,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,IAAI;qBACX;oBACD;wBACE,IAAI,EAAE,IAAI;qBACX;iBACF;aACF;YACD;gBACE,IAAI,EAAE,GAAG;aACV;SACF;QACD,OAAO,EACP;YACE;gBACI,IAAI,EAAE,GAAG;aACZ;YACD;gBACI,IAAI,EAAE,GAAG;aACZ;SACF;KACF;IACD;QACE,MAAM,EAAE,GAAG;QACX,SAAS,EACT;YACE;gBACE,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,IAAI;qBACX;oBACD;wBACE,IAAI,EAAE,IAAI;qBACX;iBACF;aACF;YACD;gBACE,IAAI,EAAE,GAAG;aACV;SACF;QACD,OAAO,EACP;YACE;gBACE,IAAI,EAAE,GAAG;aACV;YACD;gBACE,IAAI,EAAE,GAAG;aACV;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,0BAA0B,EAC/B;IACE,MAAM,EAAE,GAAG;IACX,SAAS,EACT;QACE;YACE,IAAI,EAAE,GAAG;YACT,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,IAAI;iBACX;aACF;SACF;QACD;YACE,IAAI,EAAE,GAAG;SACV;KACF;IACD,OAAO,EACP;QACE;YACE,IAAI,EAAE,GAAG;SACV;QACD;YACE,IAAI,EAAE,GAAG;SACV;KACF;CACF,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/person.data.d.ts b/dist/ts-build/examples/person.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/person.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/person.data.js b/dist/ts-build/examples/person.data.js
new file mode 100644
index 000000000..5ead22822
--- /dev/null
+++ b/dist/ts-build/examples/person.data.js
@@ -0,0 +1,110 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.person', [])
+ .value('person.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'name': {
+ 'type': 'string',
+ 'minLength': 3
+ },
+ 'personalData': {
+ 'type': 'object',
+ 'properties': {
+ 'age': {
+ 'type': 'integer'
+ },
+ 'height': {
+ 'type': 'number'
+ }
+ },
+ 'required': ['age', 'height']
+ },
+ 'vegetarian': {
+ 'type': 'boolean'
+ },
+ 'birthDate': {
+ 'type': 'string',
+ 'format': 'date'
+ },
+ 'nationality': {
+ 'type': 'string',
+ 'enum': ['DE', 'IT', 'JP', 'US', 'RU', 'Other']
+ },
+ 'occupation': {
+ 'type': 'string'
+ }
+ },
+ 'required': ['occupation', 'nationality']
+})
+ .value('person.uischema', {
+ 'type': 'VerticalLayout',
+ 'elements': [
+ {
+ 'type': 'HorizontalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': {
+ 'text': 'Name',
+ 'show': true
+ },
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': {
+ 'text': 'Age'
+ },
+ 'scope': {
+ '$ref': '#/properties/personalData/properties/age'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Height',
+ 'scope': {
+ '$ref': '#/properties/personalData/properties/height'
+ }
+ }
+ ]
+ },
+ {
+ 'type': 'HorizontalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Nationality',
+ 'scope': {
+ '$ref': '#/properties/nationality'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Occupation',
+ 'scope': {
+ '$ref': '#/properties/occupation'
+ },
+ 'suggestion': ['Accountant', 'Engineer', 'Freelancer',
+ 'Journalism', 'Physician', 'Student', 'Teacher', 'Other']
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Birthday',
+ 'scope': {
+ '$ref': '#/properties/birthDate'
+ }
+ }
+ ]
+ }
+ ]
+})
+ .value('person.data', {
+ name: 'John Doe',
+ vegetarian: false,
+ birthDate: '1985-06-02'
+})
+ .name;
+//# sourceMappingURL=person.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/person.data.js.map b/dist/ts-build/examples/person.data.js.map
new file mode 100644
index 000000000..98e18f5e5
--- /dev/null
+++ b/dist/ts-build/examples/person.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"person.data.js","sourceRoot":"","sources":["../../../examples/data/person.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,CAAC;KAC3D,KAAK,CAAC,eAAe,EACpB;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;SACf;QACD,cAAc,EAAE;YACd,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE;gBACV,KAAK,EAAE;oBACH,MAAM,EAAE,SAAS;iBACpB;gBACD,QAAQ,EAAE;oBACN,MAAM,EAAE,QAAQ;iBACnB;aACJ;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;SAC9B;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,SAAS;SAClB;QACD,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,MAAM;SACjB;QACD,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;SAChD;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;SACjB;KACF;IACD,UAAU,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;CAC1C,CACF;KACA,KAAK,CAAC,iBAAiB,EACtB;IACE,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,kBAAkB;YAC1B,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,IAAI;qBACb;oBACD,OAAO,EAAE;wBACP,MAAM,EAAE,mBAAmB;qBAC5B;iBACF;gBACD;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,KAAK;qBACd;oBACD,OAAO,EAAE;wBACP,MAAM,EAAE,0CAA0C;qBACnD;iBACF;gBACD;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,6CAA6C;qBACtD;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE;wBACP,MAAM,EAAE,0BAA0B;qBACnC;iBACF;gBACD;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,YAAY;oBACrB,OAAO,EAAE;wBACP,MAAM,EAAE,yBAAyB;qBAClC;oBACD,YAAY,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY;wBACnD,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;iBAC5D;gBACD;oBACE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE;wBACP,MAAM,EAAE,wBAAwB;qBACjC;iBACF;aACF;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,aAAa,EAClB;IACE,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,YAAY;CACxB,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/resolve.data.d.ts b/dist/ts-build/examples/resolve.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/resolve.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/resolve.data.js b/dist/ts-build/examples/resolve.data.js
new file mode 100644
index 000000000..8daf0a57c
--- /dev/null
+++ b/dist/ts-build/examples/resolve.data.js
@@ -0,0 +1,66 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.resolve', [])
+ .value('resolve.schema', {
+ 'definitions': {
+ 'address': {
+ 'type': 'object',
+ 'properties': {
+ 'street_address': { 'type': 'string' },
+ 'city': { 'type': 'string' },
+ 'state': { 'type': 'string' },
+ 'coord': { '$ref': '#/definitions/coord' },
+ },
+ 'required': ['street_address', 'city', 'state']
+ },
+ 'coord': { '$ref': 'http://json-schema.org/geo' }
+ },
+ 'type': 'object',
+ 'properties': {
+ 'address': { '$ref': '#/definitions/address' }
+ }
+})
+ .value('resolve.uischema', {
+ 'type': 'VerticalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/address/properties/street_address'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/address/properties/city'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/address/properties/state'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/address/properties/coord/properties/latitude'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'scope': {
+ '$ref': '#/properties/address/properties/coord/properties/longitude'
+ }
+ }
+ ]
+})
+ .value('resolve.data', {
+ 'address': {
+ 'street_address': 'Agnes-Pockels Bogen 1',
+ 'city': 'Munich',
+ 'state': 'Bavaria'
+ }
+})
+ .name;
+//# sourceMappingURL=resolve.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/resolve.data.js.map b/dist/ts-build/examples/resolve.data.js.map
new file mode 100644
index 000000000..d2a835975
--- /dev/null
+++ b/dist/ts-build/examples/resolve.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"resolve.data.js","sourceRoot":"","sources":["../../../examples/data/resolve.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,EAAE,CAAC;KAC5D,KAAK,CAAC,gBAAgB,EACrB;IACE,aAAa,EAAE;QACb,SAAS,EAAE;YACT,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE;gBACZ,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACtC,MAAM,EAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACtC,OAAO,EAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACtC,OAAO,EAAW,EAAE,MAAM,EAAE,qBAAqB,EAAE;aACpD;YACD,UAAU,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC;SAChD;QACD,OAAO,EAAE,EAAC,MAAM,EAAE,4BAA4B,EAAC;KAChD;IAED,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACV,SAAS,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE;KACjD;CACF,CACF;KACA,KAAK,CAAC,kBAAkB,EACvB;IACE,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE;gBACP,MAAM,EAAE,gDAAgD;aACzD;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE;gBACP,MAAM,EAAE,sCAAsC;aAC/C;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE;gBACP,MAAM,EAAE,uCAAuC;aAChD;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE;gBACP,MAAM,EAAE,2DAA2D;aACpE;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE;gBACP,MAAM,EAAE,4DAA4D;aACrE;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,cAAc,EACnB;IACE,SAAS,EAAE;QACT,gBAAgB,EAAE,uBAAuB;QACzC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;KACnB;CACF,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/examples/rule.data.d.ts b/dist/ts-build/examples/rule.data.d.ts
new file mode 100644
index 000000000..ebad4291f
--- /dev/null
+++ b/dist/ts-build/examples/rule.data.d.ts
@@ -0,0 +1,2 @@
+declare var _default: string;
+export default _default;
diff --git a/dist/ts-build/examples/rule.data.js b/dist/ts-build/examples/rule.data.js
new file mode 100644
index 000000000..3e98c8098
--- /dev/null
+++ b/dist/ts-build/examples/rule.data.js
@@ -0,0 +1,61 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms-examples.rule', [])
+ .value('rule.schema', {
+ 'type': 'object',
+ 'properties': {
+ 'name': {
+ 'type': 'string'
+ },
+ 'alive': {
+ 'type': 'boolean'
+ },
+ 'kindOfDead': {
+ 'type': 'string',
+ 'enum': ['Zombie', 'Vampire', 'Ghoul']
+ }
+ }
+})
+ .value('rule.uischema', {
+ 'type': 'HorizontalLayout',
+ 'elements': [
+ {
+ 'type': 'Control',
+ 'label': 'Name',
+ 'scope': {
+ '$ref': '#/properties/name'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Is Alive?',
+ 'scope': {
+ '$ref': '#/properties/alive'
+ }
+ },
+ {
+ 'type': 'Control',
+ 'label': 'Kind of dead',
+ 'scope': {
+ '$ref': '#/properties/kindOfDead'
+ },
+ 'rule': {
+ 'effect': 'SHOW',
+ 'condition': {
+ 'type': 'LEAF',
+ 'scope': {
+ '$ref': '#/properties/alive'
+ },
+ 'expectedValue': false
+ }
+ }
+ }
+ ]
+})
+ .value('rule.data', {
+ name: 'John Doe',
+ alive: true,
+ kindOfDead: 'Zombie'
+})
+ .name;
+//# sourceMappingURL=rule.data.js.map
\ No newline at end of file
diff --git a/dist/ts-build/examples/rule.data.js.map b/dist/ts-build/examples/rule.data.js.map
new file mode 100644
index 000000000..6c4ad5b55
--- /dev/null
+++ b/dist/ts-build/examples/rule.data.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"rule.data.js","sourceRoot":"","sources":["../../../examples/data/rule.data.ts"],"names":[],"mappings":";AAAA;kBAAe,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,CAAC;KACzD,KAAK,CAAC,aAAa,EAClB;IACE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;SACjB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,SAAS;SAClB;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;SACvC;KACF;CACF,CACF;KACA,KAAK,CAAC,eAAe,EACpB;IACE,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE;QACV;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;aAC5B;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE;gBACP,MAAM,EAAE,oBAAoB;aAC7B;SACF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE;gBACP,MAAM,EAAE,yBAAyB;aAClC;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,MAAM;gBAChB,WAAW,EAAE;oBACX,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,MAAM,EAAE,oBAAoB;qBAC7B;oBACD,eAAe,EAAE,KAAK;iBACvB;aACF;SACF;KACF;CACF,CACF;KACA,KAAK,CAAC,WAAW,EAChB;IACE,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,QAAQ;CACrB,CACF;KACF,IAAI,CAAC"}
\ No newline at end of file
diff --git a/dist/ts-build/index.d.ts b/dist/ts-build/index.d.ts
new file mode 100644
index 000000000..8411a42b0
--- /dev/null
+++ b/dist/ts-build/index.d.ts
@@ -0,0 +1,12 @@
+declare var _default: string;
+export default _default;
+export interface JsonFormsScope extends angular.IScope {
+ data: any;
+ schema: any;
+ uiSchema: any;
+}
+export * from './uischema';
+export * from './jsonschema';
+export { AbstractControl } from './components/renderers/controls/abstract-control';
+export { Testers, schemaTypeIs, schemaTypeMatches, schemaPropertyName, schemaPathEndsWith, uiTypeIs, optionIs, always } from './components/renderers/testers';
+export { PathResolver } from './components/services/path-resolver/path-resolver';
diff --git a/dist/ts-build/index.js b/dist/ts-build/index.js
new file mode 100644
index 000000000..6fd485f2d
--- /dev/null
+++ b/dist/ts-build/index.js
@@ -0,0 +1,29 @@
+"use strict";
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+require('angular');
+var form_1 = require('./components/form/form');
+var ng_services_1 = require('./components/ng-services/ng-services');
+require('angular-ui-validate');
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = angular.module('jsonforms', [
+ 'ui.validate',
+ form_1.default,
+ ng_services_1.default
+]).name;
+__export(require('./uischema'));
+var abstract_control_1 = require('./components/renderers/controls/abstract-control');
+exports.AbstractControl = abstract_control_1.AbstractControl;
+var testers_1 = require('./components/renderers/testers');
+exports.Testers = testers_1.Testers;
+exports.schemaTypeIs = testers_1.schemaTypeIs;
+exports.schemaTypeMatches = testers_1.schemaTypeMatches;
+exports.schemaPropertyName = testers_1.schemaPropertyName;
+exports.schemaPathEndsWith = testers_1.schemaPathEndsWith;
+exports.uiTypeIs = testers_1.uiTypeIs;
+exports.optionIs = testers_1.optionIs;
+exports.always = testers_1.always;
+var path_resolver_1 = require('./components/services/path-resolver/path-resolver');
+exports.PathResolver = path_resolver_1.PathResolver;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/ts-build/index.js.map b/dist/ts-build/index.js.map
new file mode 100644
index 000000000..d84e0cb3f
--- /dev/null
+++ b/dist/ts-build/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AACA,QAAO,SAAS,CAAC,CAAA;AACjB,qBAAiB,wBAAwB,CAAC,CAAA;AAC1C,4BAAuB,sCAAsC,CAAC,CAAA;AAE9D,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE/B;kBAAe,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;IACvC,aAAa;IACb,cAAI;IACJ,qBAAU;CACb,CAAC,CAAC,IAAI,CAAC;AAQR,iBAAc,YAAY,CAAC,EAAA;AAG3B,iCAA8B,kDAG9B,CAAC;AAHO,6DAAwE;AAGhF,wBASO,gCAAgC,CAAC;AARpC,oCAAO;AACP,8CAAY;AACZ,wDAAiB;AACjB,0DAAkB;AAClB,0DAAkB;AAClB,sCAAQ;AACR,sCAAQ;AACR,kCACoC;AAExC,8BACS,mDAAmD,CAAC;AADrD,oDACqD"}
\ No newline at end of file
diff --git a/dist/ts-build/jsonforms.css b/dist/ts-build/jsonforms.css
new file mode 100644
index 000000000..65b3d2ca5
--- /dev/null
+++ b/dist/ts-build/jsonforms.css
@@ -0,0 +1,256 @@
+.jsf-alert {
+ color: #a94442;
+}
+
+.jsf legend {
+ margin-bottom: 0.15em;
+ width: inherit;
+ padding: 0 0.5em;
+ border-bottom:none;
+}
+
+.jsf fieldset {
+ border: 1px solid #ccc !important;
+ border-radius: 4px;
+ /*padding: 0 1.4em 1.4em 1.4em !important;*/
+ padding: 0 1em;
+ margin: 0 0 1.5em 0 !important;
+}
+.jsf-control .form-control {
+ flex: 1;
+ height: 1.5em;
+ padding: 1px 0px;
+}
+.jsf-control select.form-control {
+ box-sizing: content-box;
+ padding: 2px 0px;
+}
+
+.jsf-control-array-container {
+ display: flex;
+ margin-left: -0.5em;
+ margin-right: -0.5em;
+}
+.jsf-control-array-element {
+ flex: 1 0 auto;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+.jsf-control-array-element-delete {
+ flex: 0 1 auto;
+ padding-top: 1.2em;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+
+.jsf-control-boolean {
+ align-self: center;
+ min-height: 1.5em;
+ min-width: 1.5em;
+ margin: 0;
+}
+array-control fieldset > div > div {
+ margin-bottom: 0.5em;
+}
+.jsf-categorization {
+ display: flex;
+ border: 1px solid;
+}
+.jsf-categorization>div {
+ margin:0.25em;
+ min-width: 2em;
+ border: 1px solid;
+ padding: 0.5em;
+}
+.jsf-categorization>.jsf-categorization-master{
+ flex:3 1 0.3vw;
+}
+.jsf-categorization>.jsf-categorization-detail{
+ flex:7 1 0.7vw;
+}
+.jsf-categorization .jsf-categorization-master ul {
+ list-style-type: none;
+ cursor: default;
+ padding: 0;
+ margin: 0;
+}
+.jsf-categorization .jsf-categorization-master li.closed,
+.jsf-categorization .jsf-categorization-master li.expanded {
+ border: 1px solid #ddd;
+}
+.jsf-categorization .jsf-categorization-master li > .jsf-category-entry {
+ display: flex;
+ flex-direction: row;
+}
+.jsf-categorization .jsf-categorization-master li.closed > .jsf-category-entry,
+.jsf-categorization .jsf-categorization-master li.expanded > .jsf-category-entry {
+ background-color: #f5f5f5;
+}
+.jsf-categorization .jsf-categorization-master li.expanded > .jsf-category-entry{
+ border-bottom: 1px solid #ddd;
+}
+.jsf-categorization .jsf-categorization-master li > .jsf-category-entry > .jsf-category-expand {
+ flex-basis: 1em;
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.jsf-categorization .jsf-categorization-master li.closed > .jsf-category-entry > .jsf-category-label::after{
+ content: "+"
+}
+.jsf-categorization .jsf-categorization-master li.expanded > .jsf-category-entry > .jsf-category-label::after{
+ content: "-"
+}
+.jsf-categorization .jsf-categorization-master li > .jsf-category-entry > .jsf-category-label{
+ flex:1;
+ padding-left: 0.5em;
+}
+.jsf-categorization .jsf-categorization-master li > .jsf-category-entry > .jsf-category-label:hover,
+.jsf-categorization .jsf-categorization-master li > .jsf-category-entry > .jsf-category-label.selected{
+ background-color: lightgrey;
+}
+.jsf-categorization .jsf-categorization-master li > .jsf-category-subcategories {
+ margin-left: 1em;
+}
+
+
+.jsf-vertical-layout-container>div{margin-top: 0.5em}
+.jsf-vertical-layout-container>div:first-child{margin-top: 0}
+.jsf-group { }
+.jsf-horizontal-layout > .jsf-horizontal-layout-container {
+ margin: 0;
+ display: flex;
+ justify-content: space-between;
+}
+.jsf-horizontal-layout > .jsf-horizontal-layout-container > div {
+ flex:1;
+ margin:0 0.5em;
+ min-width: 2em;
+}
+.jsf-horizontal-layout > .jsf-horizontal-layout-container > div:first-child {
+ margin-left: 0;
+}
+.jsf-horizontal-layout > .jsf-horizontal-layout-container > div:last-child {
+ margin-right: 0;
+}
+.jsf-masterdetail {
+ display: flex;
+}
+.jsf-masterdetail>div{
+ margin:0.25em;
+ min-width: 2em;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+.jsf-masterdetail>.jsf-masterdetail-master{
+ flex:3 1 0.3vw;
+}
+.jsf-masterdetail>.jsf-masterdetail-detail{
+ flex:7 1 0.7vw;
+ padding: 0.5em;
+}
+.jsf-masterdetail>.jsf-masterdetail-master jsonforms-masterdetail-collection {
+ flex: 1;
+}
+.jsf-masterdetail .jsf-masterdetail-master jsonforms-masterdetail-collection > div > ul {
+ margin-left: 0;
+}
+.jsf-masterdetail ul {
+ list-style-type: none;
+ cursor: default;
+ padding: 0;
+ margin: 0;
+ margin-left: 1em;
+ flex: 1;
+}
+.jsf-masterdetail .jsf-masterdetail-entries > li {
+ line-height: 1em;
+ padding-top:0.1em;
+}
+.jsf-masterdetail .jsf-masterdetail-entries > li > div{
+ display: flex;
+}
+.jsf-masterdetail .jsf-masterdetail-entries > li > div > i{
+ flex-basis: 1em;
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry-icon{
+ flex-basis: 1.25em;
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry{
+ display: inline-block;
+ padding: 0em;
+ flex: 1;
+ padding-left: 0.25em;
+}
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry .jsf-masterdetail-entry-add,
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry .jsf-masterdetail-entry-remove {
+ display: none;
+ width:1em;
+ text-align: center;
+}
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry:hover .jsf-masterdetail-entry-add,
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry:hover .jsf-masterdetail-entry-remove {
+ display: inline-block;
+}
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry:hover,
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry-selected{
+ background-color: lightgrey;
+}
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry:hover .jsf-masterdetail-entry-add:hover,
+.jsf-masterdetail .jsf-masterdetail-master .jsf-masterdetail-entry:hover .jsf-masterdetail-entry-remove:hover,
+.jsf-masterdetail .jsf-masterdetail-addRoot:hover {
+ background-color: grey;
+}
+.jsf-masterdetail .jsf-masterdetail-master .chevron-right:after{
+ content:"\25B6"
+}
+.jsf-masterdetail .jsf-masterdetail-master .chevron-down:after{
+ content:"\25BC"
+}
+.jsf-masterdetail .jsf-masterdetail-master .chevron-placeholder:after{
+ content:"\00A0"
+}
+.jsf-masterdetail .jsf-masterdetail-addRoot {
+ display: flex;
+ justify-content: center;
+ border-bottom: 1px solid;
+}
+.jsf-masterdetail .selectKeyForAdd {
+ position:fixed;
+ top:0;
+ left:0;
+ background:rgba(0,0,0,0.6);
+ z-index:5;
+}
+.jsf-masterdetail .selectKeyForAdd>div{
+ background-color: white;
+ color: black;
+ z-index:10;
+ position: absolute;
+ border : 1px solid;
+ padding: 0.25em;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ align-content: stretch;
+}
+.jsf-masterdetail .selectKeyForAdd ul {
+ margin: 0;
+}
+.jsf-masterdetail .selectKeyForAdd li:hover,
+.jsf-masterdetail .selectKeyForAdd >div>span:hover {
+ background-color: lightgray;
+}
+.jsf-masterdetail .jsf-masterdetail-addRoot:hover {
+ background-color: lightgray;
+}
+.jsf-masterdetail span {
+ cursor: pointer;
+}
+.jsf .array-empty {
+ font-style: italic;
+ margin-bottom: 0.5em;
+}
\ No newline at end of file
diff --git a/dist/ts-build/jsonschema.d.ts b/dist/ts-build/jsonschema.d.ts
new file mode 100644
index 000000000..f1c488b55
--- /dev/null
+++ b/dist/ts-build/jsonschema.d.ts
@@ -0,0 +1,18 @@
+export interface SchemaElement {
+ type?: string;
+ enum?: SchemaElement[];
+}
+export interface SchemaObject extends SchemaElement {
+ properties?: any;
+ additionalProperties?: any;
+ required?: StringArray;
+}
+export interface SchemaArray extends SchemaElement {
+ items?: any;
+}
+export interface SchemaString extends SchemaElement {
+ format?: string;
+}
+export interface StringArray {
+ [index: number]: string;
+}
diff --git a/dist/ts-build/jsonschema.js b/dist/ts-build/jsonschema.js
new file mode 100644
index 000000000..7fe1e876a
--- /dev/null
+++ b/dist/ts-build/jsonschema.js
@@ -0,0 +1,2 @@
+"use strict";
+//# sourceMappingURL=jsonschema.js.map
\ No newline at end of file
diff --git a/dist/ts-build/jsonschema.js.map b/dist/ts-build/jsonschema.js.map
new file mode 100644
index 000000000..66d8c388f
--- /dev/null
+++ b/dist/ts-build/jsonschema.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"jsonschema.js","sourceRoot":"","sources":["../../src/jsonschema.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/ts-build/uischema.d.ts b/dist/ts-build/uischema.d.ts
new file mode 100644
index 000000000..760697758
--- /dev/null
+++ b/dist/ts-build/uischema.d.ts
@@ -0,0 +1,52 @@
+export interface IRule {
+ effect: RuleEffect;
+ condition: ICondition;
+}
+export declare enum RuleEffect {
+ HIDE,
+ SHOW,
+ ENABLE,
+ DISABLE,
+}
+export interface ICondition {
+ type: string;
+}
+export interface ILeafCondition extends ICondition {
+ scope: {
+ $ref: string;
+ };
+ expectedValue: any;
+}
+export interface IWithLabel {
+ label?: string | boolean | ILabelObject;
+}
+export interface ILabelObject {
+ text?: string;
+ show?: boolean;
+}
+export interface IUISchemaElement extends IWithLabel {
+ type: string;
+ rule?: IRule;
+}
+export interface ILayout extends IUISchemaElement {
+ type: string;
+ elements: IUISchemaElement[];
+}
+export interface IVerticalLayout extends ILayout {
+}
+export interface IHorizontalLayout extends ILayout {
+}
+export interface IGroup extends ILayout {
+}
+export interface IControlObject extends IUISchemaElement {
+ scope: {
+ $ref: string;
+ };
+ readOnly?: boolean;
+}
+export interface IArrayControlObject extends IControlObject {
+ columns?: IColumnControlObject[];
+ options?: any;
+}
+export interface IColumnControlObject extends IControlObject {
+}
diff --git a/dist/ts-build/uischema.js b/dist/ts-build/uischema.js
new file mode 100644
index 000000000..49c1c6e5b
--- /dev/null
+++ b/dist/ts-build/uischema.js
@@ -0,0 +1,9 @@
+"use strict";
+(function (RuleEffect) {
+ RuleEffect[RuleEffect["HIDE"] = 'HIDE'] = "HIDE";
+ RuleEffect[RuleEffect["SHOW"] = 'SHOW'] = "SHOW";
+ RuleEffect[RuleEffect["ENABLE"] = 'ENABLE'] = "ENABLE";
+ RuleEffect[RuleEffect["DISABLE"] = 'DISABLE'] = "DISABLE";
+})(exports.RuleEffect || (exports.RuleEffect = {}));
+var RuleEffect = exports.RuleEffect;
+//# sourceMappingURL=uischema.js.map
\ No newline at end of file
diff --git a/dist/ts-build/uischema.js.map b/dist/ts-build/uischema.js.map
new file mode 100644
index 000000000..d91649fa2
--- /dev/null
+++ b/dist/ts-build/uischema.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"uischema.js","sourceRoot":"","sources":["../../src/uischema.ts"],"names":[],"mappings":";AAKA,WAAY,UAAU;IAClB,gCAAY,MAAM,UAAA,CAAA;IAClB,gCAAY,MAAM,UAAA,CAAA;IAClB,kCAAc,QAAQ,YAAA,CAAA;IACtB,mCAAe,SAAS,aAAA,CAAA;AAC5B,CAAC,EALW,kBAAU,KAAV,kBAAU,QAKrB;AALD,IAAY,UAAU,GAAV,kBAKX,CAAA"}
\ No newline at end of file