UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

52 lines (51 loc) 1.6 kB
/** * DevExtreme (esm/ui/collection/ui.collection_widget.async.js) * Version: 22.1.9 * Build date: Tue Apr 18 2023 * * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import CollectionWidgetEdit from "./ui.collection_widget.edit"; import { Deferred, when } from "../../core/utils/deferred"; import { noop } from "../../core/utils/common"; var AsyncCollectionWidget = CollectionWidgetEdit.inherit({ _initMarkup() { this._deferredItems = []; this.callBase() }, _renderItemContent(args) { var renderContentDeferred = new Deferred; var itemDeferred = new Deferred; this._deferredItems[args.index] = itemDeferred; var $itemContent = this.callBase.call(this, args); itemDeferred.done(() => { renderContentDeferred.resolve($itemContent) }); return renderContentDeferred.promise() }, _onItemTemplateRendered: function(itemTemplate, renderArgs) { return () => { this._deferredItems[renderArgs.index].resolve() } }, _postProcessRenderItems: noop, _renderItemsAsync() { var d = new Deferred; when.apply(this, this._deferredItems).done(() => { this._postProcessRenderItems(); d.resolve() }); return d.promise() }, _clean() { this.callBase(); this._deferredItems = [] } }); export default AsyncCollectionWidget;