@genialis/resolwe
Version:
Resolwe frontend libraries
70 lines (68 loc) • 7.31 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = require("./base");
var stateful_1 = require("./stateful");
/**
* An abstract base class for components, which represent complete views. Extending
* this component will ensure that component contents will only be rendered when
* all the subscriptions are ready.
*
* Additionally, the component will render a "loading" view while subscriptions
* are not ready. The use of this loading view may be disabled by setting the
* `viewShowLoading` static variable to `false`. The loading template may be
* changed by setting the `viewLoadingTemplate` static variable to a template
* string.
*/
var ViewComponent = /** @class */ (function (_super) {
__extends(ViewComponent, _super);
function ViewComponent() {
return _super !== null && _super.apply(this, arguments) || this;
}
ViewComponent.onComponentCompile = function (element, attributes) {
// Wrap component content, so that it is shown only when views becomes ready.
element.wrapInner('<div ng-if="ctrl.viewReady()"></div>');
// Include a loading view when configured.
if (this.viewShowLoading) {
element.append('<div ng-if="!ctrl.viewReady()">' + this.viewLoadingTemplate + '</div>');
}
};
/**
* This method returns whether the view should be considered ready. Its default
* implementation simply checks if `subscriptionsReady()` returns true. Subclasses
* may override this method to implement some specific functionality.
*/
ViewComponent.prototype.viewReady = function () {
return this.subscriptionsReady();
};
/// Should a loading view be used while subscriptions are not ready.
ViewComponent.viewShowLoading = true;
/// Loading template.
ViewComponent.viewLoadingTemplate = "\n <div layout=\"row\">\n <span flex></span>\n <md-progress-circular md-diameter=\"25px\" md-mode=\"indeterminate\"></md-progress-circular>\n <span flex></span>\n </div>\n ";
ViewComponent = __decorate([
base_1.component({
abstract: true,
})
], ViewComponent);
return ViewComponent;
}(stateful_1.StatefulComponentBase));
exports.ViewComponent = ViewComponent;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2NvbXBvbmVudHMvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSwrQkFBaUM7QUFDakMsdUNBQWlEO0FBRWpEOzs7Ozs7Ozs7O0dBVUc7QUFJSDtJQUE0QyxpQ0FBcUI7SUFBakU7O0lBOEJBLENBQUM7SUFsQmlCLGdDQUFrQixHQUFoQyxVQUFpQyxPQUFpQyxFQUFFLFVBQStCO1FBQy9GLDZFQUE2RTtRQUM3RSxPQUFPLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFFMUQsMENBQTBDO1FBQzFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUNBQVMsR0FBaEI7UUFDSSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUE1QkQsb0VBQW9FO0lBQ25ELDZCQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2pELHFCQUFxQjtJQUNKLGlDQUFtQixHQUFXLGdPQU05QyxDQUFDO0lBVmdCLGFBQWE7UUFIbEMsZ0JBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7T0FDb0IsYUFBYSxDQThCbEM7SUFBRCxvQkFBQztDQTlCRCxBQThCQyxDQTlCMkMsZ0NBQXFCLEdBOEJoRTtBQTlCcUIsc0NBQWEiLCJmaWxlIjoiY29yZS9jb21wb25lbnRzL3ZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhbmd1bGFyIGZyb20gJ2FuZ3VsYXInO1xuXG5pbXBvcnQge2NvbXBvbmVudH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7U3RhdGVmdWxDb21wb25lbnRCYXNlfSBmcm9tICcuL3N0YXRlZnVsJztcblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb21wb25lbnRzLCB3aGljaCByZXByZXNlbnQgY29tcGxldGUgdmlld3MuIEV4dGVuZGluZ1xuICogdGhpcyBjb21wb25lbnQgd2lsbCBlbnN1cmUgdGhhdCBjb21wb25lbnQgY29udGVudHMgd2lsbCBvbmx5IGJlIHJlbmRlcmVkIHdoZW5cbiAqIGFsbCB0aGUgc3Vic2NyaXB0aW9ucyBhcmUgcmVhZHkuXG4gKlxuICogQWRkaXRpb25hbGx5LCB0aGUgY29tcG9uZW50IHdpbGwgcmVuZGVyIGEgXCJsb2FkaW5nXCIgdmlldyB3aGlsZSBzdWJzY3JpcHRpb25zXG4gKiBhcmUgbm90IHJlYWR5LiBUaGUgdXNlIG9mIHRoaXMgbG9hZGluZyB2aWV3IG1heSBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIHRoZVxuICogYHZpZXdTaG93TG9hZGluZ2Agc3RhdGljIHZhcmlhYmxlIHRvIGBmYWxzZWAuIFRoZSBsb2FkaW5nIHRlbXBsYXRlIG1heSBiZVxuICogY2hhbmdlZCBieSBzZXR0aW5nIHRoZSBgdmlld0xvYWRpbmdUZW1wbGF0ZWAgc3RhdGljIHZhcmlhYmxlIHRvIGEgdGVtcGxhdGVcbiAqIHN0cmluZy5cbiAqL1xuQGNvbXBvbmVudCh7XG4gICAgYWJzdHJhY3Q6IHRydWUsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZpZXdDb21wb25lbnQgZXh0ZW5kcyBTdGF0ZWZ1bENvbXBvbmVudEJhc2Uge1xuICAgIC8vLyBTaG91bGQgYSBsb2FkaW5nIHZpZXcgYmUgdXNlZCB3aGlsZSBzdWJzY3JpcHRpb25zIGFyZSBub3QgcmVhZHkuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyB2aWV3U2hvd0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8vLyBMb2FkaW5nIHRlbXBsYXRlLlxuICAgIHByb3RlY3RlZCBzdGF0aWMgdmlld0xvYWRpbmdUZW1wbGF0ZTogc3RyaW5nID0gYFxuICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gZmxleD48L3NwYW4+XG4gICAgICAgICAgICA8bWQtcHJvZ3Jlc3MtY2lyY3VsYXIgbWQtZGlhbWV0ZXI9XCIyNXB4XCIgbWQtbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21kLXByb2dyZXNzLWNpcmN1bGFyPlxuICAgICAgICAgICAgPHNwYW4gZmxleD48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIGA7XG5cbiAgICBwdWJsaWMgc3RhdGljIG9uQ29tcG9uZW50Q29tcGlsZShlbGVtZW50OiBhbmd1bGFyLklBdWdtZW50ZWRKUXVlcnksIGF0dHJpYnV0ZXM6IGFuZ3VsYXIuSUF0dHJpYnV0ZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gV3JhcCBjb21wb25lbnQgY29udGVudCwgc28gdGhhdCBpdCBpcyBzaG93biBvbmx5IHdoZW4gdmlld3MgYmVjb21lcyByZWFkeS5cbiAgICAgICAgZWxlbWVudC53cmFwSW5uZXIoJzxkaXYgbmctaWY9XCJjdHJsLnZpZXdSZWFkeSgpXCI+PC9kaXY+Jyk7XG5cbiAgICAgICAgLy8gSW5jbHVkZSBhIGxvYWRpbmcgdmlldyB3aGVuIGNvbmZpZ3VyZWQuXG4gICAgICAgIGlmICh0aGlzLnZpZXdTaG93TG9hZGluZykge1xuICAgICAgICAgICAgZWxlbWVudC5hcHBlbmQoJzxkaXYgbmctaWY9XCIhY3RybC52aWV3UmVhZHkoKVwiPicgKyB0aGlzLnZpZXdMb2FkaW5nVGVtcGxhdGUgKyAnPC9kaXY+Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVhZHkuIEl0cyBkZWZhdWx0XG4gICAgICogaW1wbGVtZW50YXRpb24gc2ltcGx5IGNoZWNrcyBpZiBgc3Vic2NyaXB0aW9uc1JlYWR5KClgIHJldHVybnMgdHJ1ZS4gU3ViY2xhc3Nlc1xuICAgICAqIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgc29tZSBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIHB1YmxpYyB2aWV3UmVhZHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbnNSZWFkeSgpO1xuICAgIH1cbn1cbiJdfQ==
;