mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
213 lines
20 KiB
JavaScript
213 lines
20 KiB
JavaScript
/*
|
|
** NOTE: This file is generated by Gulp and should not be edited directly!
|
|
** Any changes made directly to this file will be overwritten next time its asset group is processed by Gulp.
|
|
*/
|
|
|
|
angular
|
|
.module("LayoutEditor")
|
|
.directive("orcLayoutFieldset", ["$compile", "scopeConfigurator", "environment",
|
|
function ($compile, scopeConfigurator, environment) {
|
|
return {
|
|
restrict: "E",
|
|
scope: { element: "=" },
|
|
controller: ["$scope", "$element",
|
|
function ($scope, $element) {
|
|
scopeConfigurator.configureForElement($scope, $element);
|
|
scopeConfigurator.configureForContainer($scope, $element);
|
|
$scope.sortableOptions["axis"] = "y";
|
|
$scope.edit = function () {
|
|
$scope.$root.editElement($scope.element).then(function (args) {
|
|
if (args.cancel)
|
|
return;
|
|
$scope.$apply(function() {
|
|
$scope.element.data = decodeURIComponent(args.element.data);
|
|
$scope.element.applyElementEditorModel(args.elementEditorModel);
|
|
});
|
|
});
|
|
};
|
|
}
|
|
],
|
|
templateUrl: environment.templateUrl("Fieldset"),
|
|
replace: true
|
|
};
|
|
}
|
|
]);
|
|
angular
|
|
.module("LayoutEditor")
|
|
.directive("orcLayoutForm", ["$compile", "scopeConfigurator", "environment",
|
|
function ($compile, scopeConfigurator, environment) {
|
|
return {
|
|
restrict: "E",
|
|
scope: { element: "=" },
|
|
controller: ["$scope", "$element",
|
|
function ($scope, $element) {
|
|
scopeConfigurator.configureForElement($scope, $element);
|
|
scopeConfigurator.configureForContainer($scope, $element);
|
|
$scope.sortableOptions["axis"] = "y";
|
|
$scope.edit = function () {
|
|
$scope.$root.editElement($scope.element).then(function (args) {
|
|
if (args.cancel)
|
|
return;
|
|
|
|
$scope.$apply(function() {
|
|
$scope.element.data = decodeURIComponent(args.element.data);
|
|
$scope.element.applyElementEditorModel(args.elementEditorModel);
|
|
});
|
|
});
|
|
};
|
|
}
|
|
],
|
|
templateUrl: environment.templateUrl("Form"),
|
|
replace: true
|
|
};
|
|
}
|
|
]);
|
|
var LayoutEditor;
|
|
(function ($, LayoutEditor) {
|
|
|
|
LayoutEditor.Fieldset = function (data, htmlId, htmlClass, htmlStyle, isTemplated, legend, contentType, contentTypeLabel, contentTypeClass, hasEditor, children) {
|
|
LayoutEditor.Element.call(this, "Fieldset", data, htmlId, htmlClass, htmlStyle, isTemplated);
|
|
LayoutEditor.Container.call(this, ["Grid", "Content"], children);
|
|
|
|
var self = this;
|
|
this.isContainable = true;
|
|
this.dropTargetClass = "layout-common-holder";
|
|
this.contentType = contentType;
|
|
this.contentTypeLabel = contentTypeLabel;
|
|
this.contentTypeClass = contentTypeClass;
|
|
this.legend = legend || "";
|
|
this.hasEditor = hasEditor;
|
|
|
|
this.toObject = function () {
|
|
var result = this.elementToObject();
|
|
result.legend = this.legend;
|
|
result.children = this.childrenToObject();
|
|
|
|
return result;
|
|
};
|
|
|
|
var getEditorObject = this.getEditorObject;
|
|
this.getEditorObject = function() {
|
|
var dto = getEditorObject();
|
|
return $.extend(dto, {
|
|
Legend: this.legend
|
|
});
|
|
}
|
|
|
|
this.setChildren = function (children) {
|
|
this.children = children;
|
|
_(this.children).each(function (child) {
|
|
child.parent = self;
|
|
});
|
|
};
|
|
|
|
this.applyElementEditorModel = function(model) {
|
|
this.legend = model.legend;
|
|
};
|
|
|
|
this.setChildren(children);
|
|
};
|
|
|
|
LayoutEditor.Fieldset.from = function (value) {
|
|
return new LayoutEditor.Fieldset(
|
|
value.data,
|
|
value.htmlId,
|
|
value.htmlClass,
|
|
value.htmlStyle,
|
|
value.isTemplated,
|
|
value.legend,
|
|
value.contentType,
|
|
value.contentTypeLabel,
|
|
value.contentTypeClass,
|
|
value.hasEditor,
|
|
LayoutEditor.childrenFrom(value.children));
|
|
};
|
|
|
|
LayoutEditor.registerFactory("Fieldset", function(value) {
|
|
return LayoutEditor.Fieldset.from(value);
|
|
});
|
|
|
|
})(jQuery, LayoutEditor || (LayoutEditor = {}));
|
|
|
|
var LayoutEditor;
|
|
(function ($, LayoutEditor) {
|
|
|
|
LayoutEditor.Form = function (data, htmlId, htmlClass, htmlStyle, isTemplated, name, formBindingContentType, contentType, contentTypeLabel, contentTypeClass, hasEditor, rule, children) {
|
|
LayoutEditor.Element.call(this, "Form", data, htmlId, htmlClass, htmlStyle, isTemplated, rule);
|
|
LayoutEditor.Container.call(this, ["Grid", "Content"], children);
|
|
|
|
var self = this;
|
|
this.isContainable = true;
|
|
this.dropTargetClass = "layout-common-holder";
|
|
this.contentType = contentType;
|
|
this.contentTypeLabel = contentTypeLabel;
|
|
this.contentTypeClass = contentTypeClass;
|
|
this.name = name || "Untitled";
|
|
this.formBindingContentType = formBindingContentType;
|
|
this.hasEditor = hasEditor;
|
|
|
|
this.toObject = function () {
|
|
var result = this.elementToObject();
|
|
result.name = this.name;
|
|
result.formBindingContentType = this.formBindingContentType;
|
|
result.children = this.childrenToObject();
|
|
|
|
return result;
|
|
};
|
|
|
|
var getEditorObject = this.getEditorObject;
|
|
this.getEditorObject = function() {
|
|
var dto = getEditorObject();
|
|
return $.extend(dto, {
|
|
FormName: this.name,
|
|
FormBindingContentType: this.formBindingContentType
|
|
});
|
|
}
|
|
|
|
this.setChildren = function (children) {
|
|
this.children = children;
|
|
_(this.children).each(function (child) {
|
|
child.setParent(self);
|
|
});
|
|
};
|
|
|
|
this.onDescendantAdded = function(element) {
|
|
var getEditorObject = element.getEditorObject;
|
|
element.getEditorObject = function () {
|
|
var dto = getEditorObject();
|
|
return $.extend(dto, {
|
|
FormBindingContentType: self.formBindingContentType
|
|
});
|
|
};
|
|
};
|
|
|
|
this.applyElementEditorModel = function(model) {
|
|
this.name = model.name;
|
|
this.formBindingContentType = model.formBindingContentType;
|
|
};
|
|
|
|
this.setChildren(children);
|
|
};
|
|
|
|
LayoutEditor.Form.from = function (value) {
|
|
return new LayoutEditor.Form(
|
|
value.data,
|
|
value.htmlId,
|
|
value.htmlClass,
|
|
value.htmlStyle,
|
|
value.isTemplated,
|
|
value.name,
|
|
value.formBindingContentType,
|
|
value.contentType,
|
|
value.contentTypeLabel,
|
|
value.contentTypeClass,
|
|
value.hasEditor,
|
|
value.rule,
|
|
LayoutEditor.childrenFrom(value.children));
|
|
};
|
|
|
|
LayoutEditor.registerFactory("Form", function(value) { return LayoutEditor.Form.from(value); });
|
|
|
|
})(jQuery, LayoutEditor || (LayoutEditor = {}));
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxheW91dEVkaXRvci5qcyIsIkRpcmVjdGl2ZXMvRmllbGRzZXQuanMiLCJEaXJlY3RpdmVzL0Zvcm0uanMiLCJNb2RlbHMvRmllbGRzZXQuanMiLCJNb2RlbHMvRm9ybS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2xFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IkxheW91dEVkaXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiYW5ndWxhclxuICAgIC5tb2R1bGUoXCJMYXlvdXRFZGl0b3JcIilcbiAgICAuZGlyZWN0aXZlKFwib3JjTGF5b3V0RmllbGRzZXRcIiwgW1wiJGNvbXBpbGVcIiwgXCJzY29wZUNvbmZpZ3VyYXRvclwiLCBcImVudmlyb25tZW50XCIsXG4gICAgICAgIGZ1bmN0aW9uICgkY29tcGlsZSwgc2NvcGVDb25maWd1cmF0b3IsIGVudmlyb25tZW50KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlc3RyaWN0OiBcIkVcIixcbiAgICAgICAgICAgICAgICBzY29wZTogeyBlbGVtZW50OiBcIj1cIiB9LFxuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXI6IFtcIiRzY29wZVwiLCBcIiRlbGVtZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgkc2NvcGUsICRlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZUNvbmZpZ3VyYXRvci5jb25maWd1cmVGb3JFbGVtZW50KCRzY29wZSwgJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGVDb25maWd1cmF0b3IuY29uZmlndXJlRm9yQ29udGFpbmVyKCRzY29wZSwgJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLnNvcnRhYmxlT3B0aW9uc1tcImF4aXNcIl0gPSBcInlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5lZGl0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS4kcm9vdC5lZGl0RWxlbWVudCgkc2NvcGUuZWxlbWVudCkudGhlbihmdW5jdGlvbiAoYXJncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJncy5jYW5jZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS4kYXBwbHkoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuZWxlbWVudC5kYXRhID0gZGVjb2RlVVJJQ29tcG9uZW50KGFyZ3MuZWxlbWVudC5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5lbGVtZW50LmFwcGx5RWxlbWVudEVkaXRvck1vZGVsKGFyZ3MuZWxlbWVudEVkaXRvck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVVybDogZW52aXJvbm1lbnQudGVtcGxhdGVVcmwoXCJGaWVsZHNldFwiKSxcbiAgICAgICAgICAgICAgICByZXBsYWNlOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgXSk7IiwiYW5ndWxhclxuICAgIC5tb2R1bGUoXCJMYXlvdXRFZGl0b3JcIilcbiAgICAuZGlyZWN0aXZlKFwib3JjTGF5b3V0Rm9ybVwiLCBbXCIkY29tcGlsZVwiLCBcInNjb3BlQ29uZmlndXJhdG9yXCIsIFwiZW52aXJvbm1lbnRcIixcbiAgICAgICAgZnVuY3Rpb24gKCRjb21waWxlLCBzY29wZUNvbmZpZ3VyYXRvciwgZW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVzdHJpY3Q6IFwiRVwiLFxuICAgICAgICAgICAgICAgIHNjb3BlOiB7IGVsZW1lbnQ6IFwiPVwiIH0sXG4gICAgICAgICAgICAgICAgY29udHJvbGxlcjogW1wiJHNjb3BlXCIsIFwiJGVsZW1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCRzY29wZSwgJGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlQ29uZmlndXJhdG9yLmNvbmZpZ3VyZUZvckVsZW1lbnQoJHNjb3BlLCAkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZUNvbmZpZ3VyYXRvci5jb25maWd1cmVGb3JDb250YWluZXIoJHNjb3BlLCAkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuc29ydGFibGVPcHRpb25zW1wiYXhpc1wiXSA9IFwieVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmVkaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLiRyb290LmVkaXRFbGVtZW50KCRzY29wZS5lbGVtZW50KS50aGVuKGZ1bmN0aW9uIChhcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdzLmNhbmNlbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuJGFwcGx5KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmVsZW1lbnQuZGF0YSA9IGRlY29kZVVSSUNvbXBvbmVudChhcmdzLmVsZW1lbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuZWxlbWVudC5hcHBseUVsZW1lbnRFZGl0b3JNb2RlbChhcmdzLmVsZW1lbnRFZGl0b3JNb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVVcmw6IGVudmlyb25tZW50LnRlbXBsYXRlVXJsKFwiRm9ybVwiKSxcbiAgICAgICAgICAgICAgICByZXBsYWNlOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgXSk7IiwidmFyIExheW91dEVkaXRvcjtcbihmdW5jdGlvbiAoJCwgTGF5b3V0RWRpdG9yKSB7XG5cbiAgICBMYXlvdXRFZGl0b3IuRmllbGRzZXQgPSBmdW5jdGlvbiAoZGF0YSwgaHRtbElkLCBodG1sQ2xhc3MsIGh0bWxTdHlsZSwgaXNUZW1wbGF0ZWQsIGxlZ2VuZCwgY29udGVudFR5cGUsIGNvbnRlbnRUeXBlTGFiZWwsIGNvbnRlbnRUeXBlQ2xhc3MsIGhhc0VkaXRvciwgY2hpbGRyZW4pIHtcbiAgICAgICAgTGF5b3V0RWRpdG9yLkVsZW1lbnQuY2FsbCh0aGlzLCBcIkZpZWxkc2V0XCIsIGRhdGEsIGh0bWxJZCwgaHRtbENsYXNzLCBodG1sU3R5bGUsIGlzVGVtcGxhdGVkKTtcbiAgICAgICAgTGF5b3V0RWRpdG9yLkNvbnRhaW5lci5jYWxsKHRoaXMsIFtcIkdyaWRcIiwgXCJDb250ZW50XCJdLCBjaGlsZHJlbik7XG5cbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLmlzQ29udGFpbmFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmRyb3BUYXJnZXRDbGFzcyA9IFwibGF5b3V0LWNvbW1vbi1ob2xkZXJcIjtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlTGFiZWwgPSBjb250ZW50VHlwZUxhYmVsO1xuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlQ2xhc3MgPSBjb250ZW50VHlwZUNsYXNzO1xuICAgICAgICB0aGlzLmxlZ2VuZCA9IGxlZ2VuZCB8fCBcIlwiO1xuICAgICAgICB0aGlzLmhhc0VkaXRvciA9IGhhc0VkaXRvcjtcblxuICAgICAgICB0aGlzLnRvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuZWxlbWVudFRvT2JqZWN0KCk7XG4gICAgICAgICAgICByZXN1bHQubGVnZW5kID0gdGhpcy5sZWdlbmQ7XG4gICAgICAgICAgICByZXN1bHQuY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuVG9PYmplY3QoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0RWRpdG9yT2JqZWN0ID0gdGhpcy5nZXRFZGl0b3JPYmplY3Q7XG4gICAgICAgIHRoaXMuZ2V0RWRpdG9yT2JqZWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgZHRvID0gZ2V0RWRpdG9yT2JqZWN0KCk7XG4gICAgICAgICAgICByZXR1cm4gJC5leHRlbmQoZHRvLCB7XG4gICAgICAgICAgICAgICAgTGVnZW5kOiB0aGlzLmxlZ2VuZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldENoaWxkcmVuID0gZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgICAgICBfKHRoaXMuY2hpbGRyZW4pLmVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQucGFyZW50ID0gc2VsZjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYXBwbHlFbGVtZW50RWRpdG9yTW9kZWwgPSBmdW5jdGlvbihtb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5sZWdlbmQgPSBtb2RlbC5sZWdlbmQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlbihjaGlsZHJlbik7XG4gICAgfTtcblxuICAgIExheW91dEVkaXRvci5GaWVsZHNldC5mcm9tID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgTGF5b3V0RWRpdG9yLkZpZWxkc2V0KFxuICAgICAgICAgICAgdmFsdWUuZGF0YSxcbiAgICAgICAgICAgIHZhbHVlLmh0bWxJZCxcbiAgICAgICAgICAgIHZhbHVlLmh0bWxDbGFzcyxcbiAgICAgICAgICAgIHZhbHVlLmh0bWxTdHlsZSxcbiAgICAgICAgICAgIHZhbHVlLmlzVGVtcGxhdGVkLFxuICAgICAgICAgICAgdmFsdWUubGVnZW5kLFxuICAgICAgICAgICAgdmFsdWUuY29udGVudFR5cGUsXG4gICAgICAgICAgICB2YWx1ZS5jb250ZW50VHlwZUxhYmVsLFxuICAgICAgICAgICAgdmFsdWUuY29udGVudFR5cGVDbGFzcyxcbiAgICAgICAgICAgIHZhbHVlLmhhc0VkaXRvcixcbiAgICAgICAgICAgIExheW91dEVkaXRvci5jaGlsZHJlbkZyb20odmFsdWUuY2hpbGRyZW4pKTtcbiAgICB9O1xuXG4gICAgTGF5b3V0RWRpdG9yLnJlZ2lzdGVyRmFjdG9yeShcIkZpZWxkc2V0XCIsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBMYXlvdXRFZGl0b3IuRmllbGRzZXQuZnJvbSh2YWx1ZSk7XG4gICAgfSk7XG5cbn0pKGpRdWVyeSwgTGF5b3V0RWRpdG9yIHx8IChMYXlvdXRFZGl0b3IgPSB7fSkpO1xuIiwidmFyIExheW91dEVkaXRvcjtcbihmdW5jdGlvbiAoJCwgTGF5b3V0RWRpdG9yKSB7XG5cbiAgICBMYXlvdXRFZGl0b3IuRm9ybSA9IGZ1bmN0aW9uIChkYXRhLCBodG1sSWQsIGh0bWxDbGFzcywgaHRtbFN0eWxlLCBpc1RlbXBsYXRlZCwgbmFtZSwgZm9ybUJpbmRpbmdDb250ZW50VHlwZSwgY29udGVudFR5cGUsIGNvbnRlbnRUeXBlTGFiZWwsIGNvbnRlbnRUeXBlQ2xhc3MsIGhhc0VkaXRvciwgcnVsZSwgY2hpbGRyZW4pIHtcbiAgICAgICAgTGF5b3V0RWRpdG9yLkVsZW1lbnQuY2FsbCh0aGlzLCBcIkZvcm1cIiwgZGF0YSwgaHRtbElkLCBodG1sQ2xhc3MsIGh0bWxTdHlsZSwgaXNUZW1wbGF0ZWQsIHJ1bGUpO1xuICAgICAgICBMYXlvdXRFZGl0b3IuQ29udGFpbmVyLmNhbGwodGhpcywgW1wiR3JpZFwiLCBcIkNvbnRlbnRcIl0sIGNoaWxkcmVuKTtcblxuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgIHRoaXMuaXNDb250YWluYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZHJvcFRhcmdldENsYXNzID0gXCJsYXlvdXQtY29tbW9uLWhvbGRlclwiO1xuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGU7XG4gICAgICAgIHRoaXMuY29udGVudFR5cGVMYWJlbCA9IGNvbnRlbnRUeXBlTGFiZWw7XG4gICAgICAgIHRoaXMuY29udGVudFR5cGVDbGFzcyA9IGNvbnRlbnRUeXBlQ2xhc3M7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWUgfHwgXCJVbnRpdGxlZFwiO1xuICAgICAgICB0aGlzLmZvcm1CaW5kaW5nQ29udGVudFR5cGUgPSBmb3JtQmluZGluZ0NvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLmhhc0VkaXRvciA9IGhhc0VkaXRvcjtcblxuICAgICAgICB0aGlzLnRvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuZWxlbWVudFRvT2JqZWN0KCk7XG4gICAgICAgICAgICByZXN1bHQubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgICAgIHJlc3VsdC5mb3JtQmluZGluZ0NvbnRlbnRUeXBlID0gdGhpcy5mb3JtQmluZGluZ0NvbnRlbnRUeXBlO1xuICAgICAgICAgICAgcmVzdWx0LmNoaWxkcmVuID0gdGhpcy5jaGlsZHJlblRvT2JqZWN0KCk7XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGdldEVkaXRvck9iamVjdCA9IHRoaXMuZ2V0RWRpdG9yT2JqZWN0O1xuICAgICAgICB0aGlzLmdldEVkaXRvck9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGR0byA9IGdldEVkaXRvck9iamVjdCgpO1xuICAgICAgICAgICAgcmV0dXJuICQuZXh0ZW5kKGR0bywge1xuICAgICAgICAgICAgICAgIEZvcm1OYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICAgICAgRm9ybUJpbmRpbmdDb250ZW50VHlwZTogdGhpcy5mb3JtQmluZGluZ0NvbnRlbnRUeXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4gPSBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgICAgICAgIF8odGhpcy5jaGlsZHJlbikuZWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5zZXRQYXJlbnQoc2VsZik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLm9uRGVzY2VuZGFudEFkZGVkID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgdmFyIGdldEVkaXRvck9iamVjdCA9IGVsZW1lbnQuZ2V0RWRpdG9yT2JqZWN0O1xuICAgICAgICAgICAgZWxlbWVudC5nZXRFZGl0b3JPYmplY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGR0byA9IGdldEVkaXRvck9iamVjdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiAkLmV4dGVuZChkdG8sIHtcbiAgICAgICAgICAgICAgICAgICAgRm9ybUJpbmRpbmdDb250ZW50VHlwZTogc2VsZi5mb3JtQmluZGluZ0NvbnRlbnRUeXBlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYXBwbHlFbGVtZW50RWRpdG9yTW9kZWwgPSBmdW5jdGlvbihtb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gbW9kZWwubmFtZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUJpbmRpbmdDb250ZW50VHlwZSA9IG1vZGVsLmZvcm1CaW5kaW5nQ29udGVudFR5cGU7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlbihjaGlsZHJlbik7XG4gICAgfTtcblxuICAgIExheW91dEVkaXRvci5Gb3JtLmZyb20gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMYXlvdXRFZGl0b3IuRm9ybShcbiAgICAgICAgICAgIHZhbHVlLmRhdGEsXG4gICAgICAgICAgICB2YWx1ZS5odG1sSWQsXG4gICAgICAgICAgICB2YWx1ZS5odG1sQ2xhc3MsXG4gICAgICAgICAgICB2YWx1ZS5odG1sU3R5bGUsXG4gICAgICAgICAgICB2YWx1ZS5pc1RlbXBsYXRlZCxcbiAgICAgICAgICAgIHZhbHVlLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZS5mb3JtQmluZGluZ0NvbnRlbnRUeXBlLFxuICAgICAgICAgICAgdmFsdWUuY29udGVudFR5cGUsXG4gICAgICAgICAgICB2YWx1ZS5jb250ZW50VHlwZUxhYmVsLFxuICAgICAgICAgICAgdmFsdWUuY29udGVudFR5cGVDbGFzcyxcbiAgICAgICAgICAgIHZhbHVlLmhhc0VkaXRvcixcbiAgICAgICAgICAgIHZhbHVlLnJ1bGUsXG4gICAgICAgICAgICBMYXlvdXRFZGl0b3IuY2hpbGRyZW5Gcm9tKHZhbHVlLmNoaWxkcmVuKSk7XG4gICAgfTtcblxuICAgIExheW91dEVkaXRvci5yZWdpc3RlckZhY3RvcnkoXCJGb3JtXCIsIGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiBMYXlvdXRFZGl0b3IuRm9ybS5mcm9tKHZhbHVlKTsgfSk7XG5cbn0pKGpRdWVyeSwgTGF5b3V0RWRpdG9yIHx8IChMYXlvdXRFZGl0b3IgPSB7fSkpOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
|