button-group.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. "use strict";
  2. var __extends = (this && this.__extends) || (function () {
  3. var extendStatics = Object.setPrototypeOf ||
  4. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  5. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  6. return function (d, b) {
  7. extendStatics(d, b);
  8. function __() { this.constructor = d; }
  9. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  10. };
  11. })();
  12. /*!
  13. * devextreme-angular
  14. * Version: 19.1.16
  15. * Build date: Tue Oct 18 2022
  16. *
  17. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  18. *
  19. * This software may be modified and distributed under the terms
  20. * of the MIT license. See the LICENSE file in the root of the project for details.
  21. *
  22. * https://github.com/DevExpress/devextreme-angular
  23. */
  24. Object.defineProperty(exports, "__esModule", { value: true });
  25. var platform_browser_1 = require("@angular/platform-browser");
  26. var platform_browser_2 = require("@angular/platform-browser");
  27. var core_1 = require("@angular/core");
  28. var button_group_1 = require("devextreme/ui/button_group");
  29. var component_1 = require("../core/component");
  30. var template_host_1 = require("../core/template-host");
  31. var integration_1 = require("../core/integration");
  32. var template_1 = require("../core/template");
  33. var nested_option_1 = require("../core/nested-option");
  34. var watcher_helper_1 = require("../core/watcher-helper");
  35. var iterable_differ_helper_1 = require("../core/iterable-differ-helper");
  36. var item_dxi_1 = require("./nested/item-dxi");
  37. var item_dxi_2 = require("./nested/item-dxi");
  38. /**
  39. * The ButtonGroup is a widget that contains a set of toggle buttons and can be used as a mode switcher.
  40. */
  41. var DxButtonGroupComponent = (function (_super) {
  42. __extends(DxButtonGroupComponent, _super);
  43. function DxButtonGroupComponent(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {
  44. var _this = _super.call(this, elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId) || this;
  45. _this._watcherHelper = _watcherHelper;
  46. _this._idh = _idh;
  47. _this._createEventEmitters([
  48. { subscribe: 'contentReady', emit: 'onContentReady' },
  49. { subscribe: 'disposing', emit: 'onDisposing' },
  50. { subscribe: 'initialized', emit: 'onInitialized' },
  51. { subscribe: 'itemClick', emit: 'onItemClick' },
  52. { subscribe: 'optionChanged', emit: 'onOptionChanged' },
  53. { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },
  54. { emit: 'accessKeyChange' },
  55. { emit: 'activeStateEnabledChange' },
  56. { emit: 'disabledChange' },
  57. { emit: 'elementAttrChange' },
  58. { emit: 'focusStateEnabledChange' },
  59. { emit: 'heightChange' },
  60. { emit: 'hintChange' },
  61. { emit: 'hoverStateEnabledChange' },
  62. { emit: 'itemsChange' },
  63. { emit: 'itemTemplateChange' },
  64. { emit: 'keyExprChange' },
  65. { emit: 'rtlEnabledChange' },
  66. { emit: 'selectedItemKeysChange' },
  67. { emit: 'selectedItemsChange' },
  68. { emit: 'selectionModeChange' },
  69. { emit: 'stylingModeChange' },
  70. { emit: 'tabIndexChange' },
  71. { emit: 'visibleChange' },
  72. { emit: 'widthChange' }
  73. ]);
  74. _this._idh.setHost(_this);
  75. optionHost.setHost(_this);
  76. return _this;
  77. }
  78. Object.defineProperty(DxButtonGroupComponent.prototype, "accessKey", {
  79. get: /**
  80. * Specifies the shortcut key that sets focus on the widget.
  81. */
  82. function () {
  83. return this._getOption('accessKey');
  84. },
  85. set: function (value) {
  86. this._setOption('accessKey', value);
  87. },
  88. enumerable: true,
  89. configurable: true
  90. });
  91. Object.defineProperty(DxButtonGroupComponent.prototype, "activeStateEnabled", {
  92. get: /**
  93. * Specifies whether or not the widget changes its state when interacting with a user.
  94. */
  95. function () {
  96. return this._getOption('activeStateEnabled');
  97. },
  98. set: function (value) {
  99. this._setOption('activeStateEnabled', value);
  100. },
  101. enumerable: true,
  102. configurable: true
  103. });
  104. Object.defineProperty(DxButtonGroupComponent.prototype, "disabled", {
  105. get: /**
  106. * Specifies whether the widget responds to user interaction.
  107. */
  108. function () {
  109. return this._getOption('disabled');
  110. },
  111. set: function (value) {
  112. this._setOption('disabled', value);
  113. },
  114. enumerable: true,
  115. configurable: true
  116. });
  117. Object.defineProperty(DxButtonGroupComponent.prototype, "elementAttr", {
  118. get: /**
  119. * Specifies the attributes to be attached to the widget's root element.
  120. */
  121. function () {
  122. return this._getOption('elementAttr');
  123. },
  124. set: function (value) {
  125. this._setOption('elementAttr', value);
  126. },
  127. enumerable: true,
  128. configurable: true
  129. });
  130. Object.defineProperty(DxButtonGroupComponent.prototype, "focusStateEnabled", {
  131. get: /**
  132. * Specifies whether the widget can be focused using keyboard navigation.
  133. */
  134. function () {
  135. return this._getOption('focusStateEnabled');
  136. },
  137. set: function (value) {
  138. this._setOption('focusStateEnabled', value);
  139. },
  140. enumerable: true,
  141. configurable: true
  142. });
  143. Object.defineProperty(DxButtonGroupComponent.prototype, "height", {
  144. get: /**
  145. * Specifies the widget's height.
  146. */
  147. function () {
  148. return this._getOption('height');
  149. },
  150. set: function (value) {
  151. this._setOption('height', value);
  152. },
  153. enumerable: true,
  154. configurable: true
  155. });
  156. Object.defineProperty(DxButtonGroupComponent.prototype, "hint", {
  157. get: /**
  158. * Specifies text for a hint that appears when a user pauses on the widget.
  159. */
  160. function () {
  161. return this._getOption('hint');
  162. },
  163. set: function (value) {
  164. this._setOption('hint', value);
  165. },
  166. enumerable: true,
  167. configurable: true
  168. });
  169. Object.defineProperty(DxButtonGroupComponent.prototype, "hoverStateEnabled", {
  170. get: /**
  171. * Specifies whether the widget changes its state when a user pauses on it.
  172. */
  173. function () {
  174. return this._getOption('hoverStateEnabled');
  175. },
  176. set: function (value) {
  177. this._setOption('hoverStateEnabled', value);
  178. },
  179. enumerable: true,
  180. configurable: true
  181. });
  182. Object.defineProperty(DxButtonGroupComponent.prototype, "items", {
  183. get: /**
  184. * Configures buttons in the group.
  185. */
  186. function () {
  187. return this._getOption('items');
  188. },
  189. set: function (value) {
  190. this._setOption('items', value);
  191. },
  192. enumerable: true,
  193. configurable: true
  194. });
  195. Object.defineProperty(DxButtonGroupComponent.prototype, "itemTemplate", {
  196. get: /**
  197. * Specifies a custom button template.
  198. */
  199. function () {
  200. return this._getOption('itemTemplate');
  201. },
  202. set: function (value) {
  203. this._setOption('itemTemplate', value);
  204. },
  205. enumerable: true,
  206. configurable: true
  207. });
  208. Object.defineProperty(DxButtonGroupComponent.prototype, "keyExpr", {
  209. get: /**
  210. * Specifies which data field provides keys used to distinguish between the selected buttons.
  211. */
  212. function () {
  213. return this._getOption('keyExpr');
  214. },
  215. set: function (value) {
  216. this._setOption('keyExpr', value);
  217. },
  218. enumerable: true,
  219. configurable: true
  220. });
  221. Object.defineProperty(DxButtonGroupComponent.prototype, "rtlEnabled", {
  222. get: /**
  223. * Switches the widget to a right-to-left representation.
  224. */
  225. function () {
  226. return this._getOption('rtlEnabled');
  227. },
  228. set: function (value) {
  229. this._setOption('rtlEnabled', value);
  230. },
  231. enumerable: true,
  232. configurable: true
  233. });
  234. Object.defineProperty(DxButtonGroupComponent.prototype, "selectedItemKeys", {
  235. get: /**
  236. * Contains the keys of the selected buttons and allows selecting buttons initially.
  237. */
  238. function () {
  239. return this._getOption('selectedItemKeys');
  240. },
  241. set: function (value) {
  242. this._setOption('selectedItemKeys', value);
  243. },
  244. enumerable: true,
  245. configurable: true
  246. });
  247. Object.defineProperty(DxButtonGroupComponent.prototype, "selectedItems", {
  248. get: /**
  249. * Contains the data objects that correspond to the selected buttons. The data objects are taken from the items array.
  250. */
  251. function () {
  252. return this._getOption('selectedItems');
  253. },
  254. set: function (value) {
  255. this._setOption('selectedItems', value);
  256. },
  257. enumerable: true,
  258. configurable: true
  259. });
  260. Object.defineProperty(DxButtonGroupComponent.prototype, "selectionMode", {
  261. get: /**
  262. * Specifies whether a single or multiple buttons can be in the selected state simultaneously.
  263. */
  264. function () {
  265. return this._getOption('selectionMode');
  266. },
  267. set: function (value) {
  268. this._setOption('selectionMode', value);
  269. },
  270. enumerable: true,
  271. configurable: true
  272. });
  273. Object.defineProperty(DxButtonGroupComponent.prototype, "stylingMode", {
  274. get: /**
  275. * Specifies how buttons in the group are styled.
  276. */
  277. function () {
  278. return this._getOption('stylingMode');
  279. },
  280. set: function (value) {
  281. this._setOption('stylingMode', value);
  282. },
  283. enumerable: true,
  284. configurable: true
  285. });
  286. Object.defineProperty(DxButtonGroupComponent.prototype, "tabIndex", {
  287. get: /**
  288. * Specifies the number of the element when the Tab key is used for navigating.
  289. */
  290. function () {
  291. return this._getOption('tabIndex');
  292. },
  293. set: function (value) {
  294. this._setOption('tabIndex', value);
  295. },
  296. enumerable: true,
  297. configurable: true
  298. });
  299. Object.defineProperty(DxButtonGroupComponent.prototype, "visible", {
  300. get: /**
  301. * Specifies whether the widget is visible.
  302. */
  303. function () {
  304. return this._getOption('visible');
  305. },
  306. set: function (value) {
  307. this._setOption('visible', value);
  308. },
  309. enumerable: true,
  310. configurable: true
  311. });
  312. Object.defineProperty(DxButtonGroupComponent.prototype, "width", {
  313. get: /**
  314. * Specifies the widget's width.
  315. */
  316. function () {
  317. return this._getOption('width');
  318. },
  319. set: function (value) {
  320. this._setOption('width', value);
  321. },
  322. enumerable: true,
  323. configurable: true
  324. });
  325. Object.defineProperty(DxButtonGroupComponent.prototype, "itemsChildren", {
  326. get: function () {
  327. return this._getOption('items');
  328. },
  329. set: function (value) {
  330. this.setChildren('items', value);
  331. },
  332. enumerable: true,
  333. configurable: true
  334. });
  335. DxButtonGroupComponent.prototype._createInstance = function (element, options) {
  336. return new button_group_1.default(element, options);
  337. };
  338. DxButtonGroupComponent.prototype.ngOnDestroy = function () {
  339. this._destroyWidget();
  340. };
  341. DxButtonGroupComponent.prototype.ngOnChanges = function (changes) {
  342. _super.prototype.ngOnChanges.call(this, changes);
  343. this.setupChanges('items', changes);
  344. this.setupChanges('selectedItemKeys', changes);
  345. this.setupChanges('selectedItems', changes);
  346. };
  347. DxButtonGroupComponent.prototype.setupChanges = function (prop, changes) {
  348. if (!(prop in this._optionsToUpdate)) {
  349. this._idh.setup(prop, changes);
  350. }
  351. };
  352. DxButtonGroupComponent.prototype.ngDoCheck = function () {
  353. this._idh.doCheck('items');
  354. this._idh.doCheck('selectedItemKeys');
  355. this._idh.doCheck('selectedItems');
  356. this._watcherHelper.checkWatchers();
  357. _super.prototype.ngDoCheck.call(this);
  358. _super.prototype.clearChangedOptions.call(this);
  359. };
  360. DxButtonGroupComponent.prototype._setOption = function (name, value) {
  361. var isSetup = this._idh.setupSingle(name, value);
  362. var isChanged = this._idh.getChanges(name, value) !== null;
  363. if (isSetup || isChanged) {
  364. _super.prototype._setOption.call(this, name, value);
  365. }
  366. };
  367. DxButtonGroupComponent.decorators = [
  368. { type: core_1.Component, args: [{
  369. selector: 'dx-button-group',
  370. template: '',
  371. providers: [
  372. template_host_1.DxTemplateHost,
  373. watcher_helper_1.WatcherHelper,
  374. nested_option_1.NestedOptionHost,
  375. iterable_differ_helper_1.IterableDifferHelper
  376. ]
  377. },] },
  378. ];
  379. /** @nocollapse */
  380. DxButtonGroupComponent.ctorParameters = function () { return [
  381. { type: core_1.ElementRef, },
  382. { type: core_1.NgZone, },
  383. { type: template_host_1.DxTemplateHost, },
  384. { type: watcher_helper_1.WatcherHelper, },
  385. { type: iterable_differ_helper_1.IterableDifferHelper, },
  386. { type: nested_option_1.NestedOptionHost, },
  387. { type: platform_browser_2.TransferState, },
  388. { type: undefined, decorators: [{ type: core_1.Inject, args: [core_1.PLATFORM_ID,] },] },
  389. ]; };
  390. DxButtonGroupComponent.propDecorators = {
  391. "accessKey": [{ type: core_1.Input },],
  392. "activeStateEnabled": [{ type: core_1.Input },],
  393. "disabled": [{ type: core_1.Input },],
  394. "elementAttr": [{ type: core_1.Input },],
  395. "focusStateEnabled": [{ type: core_1.Input },],
  396. "height": [{ type: core_1.Input },],
  397. "hint": [{ type: core_1.Input },],
  398. "hoverStateEnabled": [{ type: core_1.Input },],
  399. "items": [{ type: core_1.Input },],
  400. "itemTemplate": [{ type: core_1.Input },],
  401. "keyExpr": [{ type: core_1.Input },],
  402. "rtlEnabled": [{ type: core_1.Input },],
  403. "selectedItemKeys": [{ type: core_1.Input },],
  404. "selectedItems": [{ type: core_1.Input },],
  405. "selectionMode": [{ type: core_1.Input },],
  406. "stylingMode": [{ type: core_1.Input },],
  407. "tabIndex": [{ type: core_1.Input },],
  408. "visible": [{ type: core_1.Input },],
  409. "width": [{ type: core_1.Input },],
  410. "onContentReady": [{ type: core_1.Output },],
  411. "onDisposing": [{ type: core_1.Output },],
  412. "onInitialized": [{ type: core_1.Output },],
  413. "onItemClick": [{ type: core_1.Output },],
  414. "onOptionChanged": [{ type: core_1.Output },],
  415. "onSelectionChanged": [{ type: core_1.Output },],
  416. "accessKeyChange": [{ type: core_1.Output },],
  417. "activeStateEnabledChange": [{ type: core_1.Output },],
  418. "disabledChange": [{ type: core_1.Output },],
  419. "elementAttrChange": [{ type: core_1.Output },],
  420. "focusStateEnabledChange": [{ type: core_1.Output },],
  421. "heightChange": [{ type: core_1.Output },],
  422. "hintChange": [{ type: core_1.Output },],
  423. "hoverStateEnabledChange": [{ type: core_1.Output },],
  424. "itemsChange": [{ type: core_1.Output },],
  425. "itemTemplateChange": [{ type: core_1.Output },],
  426. "keyExprChange": [{ type: core_1.Output },],
  427. "rtlEnabledChange": [{ type: core_1.Output },],
  428. "selectedItemKeysChange": [{ type: core_1.Output },],
  429. "selectedItemsChange": [{ type: core_1.Output },],
  430. "selectionModeChange": [{ type: core_1.Output },],
  431. "stylingModeChange": [{ type: core_1.Output },],
  432. "tabIndexChange": [{ type: core_1.Output },],
  433. "visibleChange": [{ type: core_1.Output },],
  434. "widthChange": [{ type: core_1.Output },],
  435. "itemsChildren": [{ type: core_1.ContentChildren, args: [item_dxi_2.DxiItemComponent,] },],
  436. };
  437. return DxButtonGroupComponent;
  438. }(component_1.DxComponent));
  439. exports.DxButtonGroupComponent = DxButtonGroupComponent;
  440. var DxButtonGroupModule = (function () {
  441. function DxButtonGroupModule() {
  442. }
  443. DxButtonGroupModule.decorators = [
  444. { type: core_1.NgModule, args: [{
  445. imports: [
  446. item_dxi_1.DxiItemModule,
  447. integration_1.DxIntegrationModule,
  448. template_1.DxTemplateModule,
  449. platform_browser_1.BrowserTransferStateModule
  450. ],
  451. declarations: [
  452. DxButtonGroupComponent
  453. ],
  454. exports: [
  455. DxButtonGroupComponent,
  456. item_dxi_1.DxiItemModule,
  457. template_1.DxTemplateModule
  458. ]
  459. },] },
  460. ];
  461. return DxButtonGroupModule;
  462. }());
  463. exports.DxButtonGroupModule = DxButtonGroupModule;
  464. //# sourceMappingURL=button-group.js.map