@datarailsshared/datarailsshared 1.4.187 → 1.4.188

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +884 -0
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.4.188.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +1 -0
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +2 -1
  7. package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +210 -0
  8. package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +58 -0
  9. package/esm2015/lib/dr-treeview/dr-tree-view.module.js +38 -0
  10. package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +97 -0
  11. package/esm2015/lib/dr-treeview/helpers/treeview-helper.js +82 -0
  12. package/esm2015/lib/dr-treeview/models/treeview-config.js +22 -0
  13. package/esm2015/lib/dr-treeview/models/treeview-header-template-context.js +2 -0
  14. package/esm2015/lib/dr-treeview/models/treeview-i18n.js +42 -0
  15. package/esm2015/lib/dr-treeview/models/treeview-item-template-context.js +2 -0
  16. package/esm2015/lib/dr-treeview/models/treeview-item.js +155 -0
  17. package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +17 -0
  18. package/esm2015/public-api.js +10 -1
  19. package/fesm2015/datarailsshared-datarailsshared.js +695 -2
  20. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  21. package/lib/dr-treeview/components/treeview/treeview.component.d.ts +39 -0
  22. package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +15 -0
  23. package/lib/dr-treeview/dr-tree-view.module.d.ts +4 -0
  24. package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +21 -0
  25. package/lib/dr-treeview/helpers/treeview-helper.d.ts +16 -0
  26. package/lib/dr-treeview/models/treeview-config.d.ts +15 -0
  27. package/lib/dr-treeview/models/treeview-header-template-context.d.ts +9 -0
  28. package/lib/dr-treeview/models/treeview-i18n.d.ts +15 -0
  29. package/lib/dr-treeview/models/treeview-item-template-context.d.ts +6 -0
  30. package/lib/dr-treeview/models/treeview-item.d.ts +35 -0
  31. package/lib/dr-treeview/pipes/treeview.pipe.d.ts +5 -0
  32. package/package.json +1 -1
  33. package/public-api.d.ts +9 -0
  34. package/datarailsshared-datarailsshared-1.4.187.tgz +0 -0
@@ -4686,6 +4686,776 @@
4686
4686
  _chatSuggestions: [{ type: i0.ViewChild, args: [DrChatSuggestionsComponent,] }]
4687
4687
  };
4688
4688
 
4689
+ var TreeviewI18n = /** @class */ (function () {
4690
+ function TreeviewI18n() {
4691
+ }
4692
+ return TreeviewI18n;
4693
+ }());
4694
+ TreeviewI18n.decorators = [
4695
+ { type: i0.Injectable }
4696
+ ];
4697
+ var DefaultTreeviewI18n = /** @class */ (function (_super) {
4698
+ __extends(DefaultTreeviewI18n, _super);
4699
+ function DefaultTreeviewI18n() {
4700
+ return _super !== null && _super.apply(this, arguments) || this;
4701
+ }
4702
+ DefaultTreeviewI18n.prototype.getText = function (selection) {
4703
+ if (selection.uncheckedItems.length === 0) {
4704
+ if (selection.checkedItems.length > 0) {
4705
+ return this.getAllCheckboxText();
4706
+ }
4707
+ else {
4708
+ return '';
4709
+ }
4710
+ }
4711
+ switch (selection.checkedItems.length) {
4712
+ case 0:
4713
+ return 'Select options';
4714
+ case 1:
4715
+ return selection.checkedItems[0].text;
4716
+ default:
4717
+ return selection.checkedItems.length + " options selected";
4718
+ }
4719
+ };
4720
+ DefaultTreeviewI18n.prototype.getAllCheckboxText = function () {
4721
+ return 'All';
4722
+ };
4723
+ DefaultTreeviewI18n.prototype.getFilterPlaceholder = function () {
4724
+ return 'Filter';
4725
+ };
4726
+ DefaultTreeviewI18n.prototype.getFilterNoItemsFoundText = function () {
4727
+ return 'No items found';
4728
+ };
4729
+ DefaultTreeviewI18n.prototype.getTooltipCollapseExpandText = function (isCollapse) {
4730
+ return isCollapse ? 'Expand' : 'Collapse';
4731
+ };
4732
+ return DefaultTreeviewI18n;
4733
+ }(TreeviewI18n));
4734
+ DefaultTreeviewI18n.decorators = [
4735
+ { type: i0.Injectable }
4736
+ ];
4737
+
4738
+ var TreeviewHelper = {
4739
+ findItem: findItem,
4740
+ findItemInList: findItemInList,
4741
+ findParent: findParent,
4742
+ removeItem: removeItem,
4743
+ concatSelection: concatSelection
4744
+ };
4745
+ function findItem(root, value) {
4746
+ var e_1, _a;
4747
+ if (_.isNil(root)) {
4748
+ return undefined;
4749
+ }
4750
+ if (root.value === value) {
4751
+ return root;
4752
+ }
4753
+ if (root.children) {
4754
+ try {
4755
+ for (var _b = __values(root.children), _c = _b.next(); !_c.done; _c = _b.next()) {
4756
+ var child = _c.value;
4757
+ var foundItem = findItem(child, value);
4758
+ if (foundItem) {
4759
+ return foundItem;
4760
+ }
4761
+ }
4762
+ }
4763
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
4764
+ finally {
4765
+ try {
4766
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
4767
+ }
4768
+ finally { if (e_1) throw e_1.error; }
4769
+ }
4770
+ }
4771
+ return undefined;
4772
+ }
4773
+ function findItemInList(list, value) {
4774
+ var e_2, _a;
4775
+ if (_.isNil(list)) {
4776
+ return undefined;
4777
+ }
4778
+ try {
4779
+ for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
4780
+ var item = list_1_1.value;
4781
+ var foundItem = findItem(item, value);
4782
+ if (foundItem) {
4783
+ return foundItem;
4784
+ }
4785
+ }
4786
+ }
4787
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
4788
+ finally {
4789
+ try {
4790
+ if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);
4791
+ }
4792
+ finally { if (e_2) throw e_2.error; }
4793
+ }
4794
+ return undefined;
4795
+ }
4796
+ function findParent(root, item) {
4797
+ var e_3, _a;
4798
+ if (_.isNil(root) || _.isNil(root.children)) {
4799
+ return undefined;
4800
+ }
4801
+ try {
4802
+ for (var _b = __values(root.children), _c = _b.next(); !_c.done; _c = _b.next()) {
4803
+ var child = _c.value;
4804
+ if (child === item) {
4805
+ return root;
4806
+ }
4807
+ else {
4808
+ var parent = findParent(child, item);
4809
+ if (parent) {
4810
+ return parent;
4811
+ }
4812
+ }
4813
+ }
4814
+ }
4815
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
4816
+ finally {
4817
+ try {
4818
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
4819
+ }
4820
+ finally { if (e_3) throw e_3.error; }
4821
+ }
4822
+ return undefined;
4823
+ }
4824
+ function removeItem(root, item) {
4825
+ var parent = findParent(root, item);
4826
+ if (parent) {
4827
+ _.pull(parent.children, item);
4828
+ if (parent.children.length === 0) {
4829
+ parent.children = undefined;
4830
+ }
4831
+ else {
4832
+ parent.correctChecked();
4833
+ }
4834
+ return true;
4835
+ }
4836
+ return false;
4837
+ }
4838
+ function concatSelection(items, checked, unchecked) {
4839
+ var e_4, _a;
4840
+ var checkedItems = __spreadArray([], __read(checked));
4841
+ var uncheckedItems = __spreadArray([], __read(unchecked));
4842
+ try {
4843
+ for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
4844
+ var item = items_1_1.value;
4845
+ var selection = item.getSelection();
4846
+ checkedItems = _.concat(checkedItems, selection.checkedItems);
4847
+ uncheckedItems = _.concat(uncheckedItems, selection.uncheckedItems);
4848
+ }
4849
+ }
4850
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
4851
+ finally {
4852
+ try {
4853
+ if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
4854
+ }
4855
+ finally { if (e_4) throw e_4.error; }
4856
+ }
4857
+ return {
4858
+ checked: checkedItems,
4859
+ unchecked: uncheckedItems
4860
+ };
4861
+ }
4862
+
4863
+ var TreeviewItem = /** @class */ (function () {
4864
+ function TreeviewItem(item, autoCorrectChecked) {
4865
+ var _this = this;
4866
+ if (autoCorrectChecked === void 0) { autoCorrectChecked = false; }
4867
+ this.internalDisabled = false;
4868
+ this.internalChecked = true;
4869
+ this.internalCollapsed = false;
4870
+ if (_.isNil(item)) {
4871
+ throw new Error('Item must be defined');
4872
+ }
4873
+ if (_.isString(item.text)) {
4874
+ this.text = item.text;
4875
+ }
4876
+ else {
4877
+ throw new Error('A text of item must be string object');
4878
+ }
4879
+ this.value = item.value;
4880
+ if (_.isBoolean(item.checked)) {
4881
+ this.checked = item.checked;
4882
+ }
4883
+ if (_.isBoolean(item.collapsed)) {
4884
+ this.collapsed = item.collapsed;
4885
+ }
4886
+ if (_.isBoolean(item.disabled)) {
4887
+ this.disabled = item.disabled;
4888
+ }
4889
+ if (!_.isNil(item.children) && item.children.length > 0) {
4890
+ this.children = item.children.map(function (child) {
4891
+ if (_this.disabled === true) {
4892
+ child.disabled = true;
4893
+ }
4894
+ return new TreeviewItem(child);
4895
+ });
4896
+ }
4897
+ if (autoCorrectChecked) {
4898
+ this.correctChecked();
4899
+ }
4900
+ }
4901
+ Object.defineProperty(TreeviewItem.prototype, "checked", {
4902
+ get: function () {
4903
+ return this.internalChecked;
4904
+ },
4905
+ set: function (value) {
4906
+ if (!this.internalDisabled) {
4907
+ if (this.internalChecked !== value) {
4908
+ this.internalChecked = value;
4909
+ }
4910
+ }
4911
+ },
4912
+ enumerable: false,
4913
+ configurable: true
4914
+ });
4915
+ Object.defineProperty(TreeviewItem.prototype, "indeterminate", {
4916
+ get: function () {
4917
+ return this.checked === undefined;
4918
+ },
4919
+ enumerable: false,
4920
+ configurable: true
4921
+ });
4922
+ TreeviewItem.prototype.setCheckedRecursive = function (value) {
4923
+ if (!this.internalDisabled) {
4924
+ this.internalChecked = value;
4925
+ if (!_.isNil(this.internalChildren)) {
4926
+ this.internalChildren.forEach(function (child) { return child.setCheckedRecursive(value); });
4927
+ }
4928
+ }
4929
+ };
4930
+ Object.defineProperty(TreeviewItem.prototype, "disabled", {
4931
+ get: function () {
4932
+ return this.internalDisabled;
4933
+ },
4934
+ set: function (value) {
4935
+ if (this.internalDisabled !== value) {
4936
+ this.internalDisabled = value;
4937
+ if (!_.isNil(this.internalChildren)) {
4938
+ this.internalChildren.forEach(function (child) { return child.disabled = value; });
4939
+ }
4940
+ }
4941
+ },
4942
+ enumerable: false,
4943
+ configurable: true
4944
+ });
4945
+ Object.defineProperty(TreeviewItem.prototype, "collapsed", {
4946
+ get: function () {
4947
+ return this.internalCollapsed;
4948
+ },
4949
+ set: function (value) {
4950
+ if (this.internalCollapsed !== value) {
4951
+ this.internalCollapsed = value;
4952
+ }
4953
+ },
4954
+ enumerable: false,
4955
+ configurable: true
4956
+ });
4957
+ TreeviewItem.prototype.setCollapsedRecursive = function (value) {
4958
+ this.internalCollapsed = value;
4959
+ if (!_.isNil(this.internalChildren)) {
4960
+ this.internalChildren.forEach(function (child) { return child.setCollapsedRecursive(value); });
4961
+ }
4962
+ };
4963
+ Object.defineProperty(TreeviewItem.prototype, "children", {
4964
+ get: function () {
4965
+ return this.internalChildren;
4966
+ },
4967
+ set: function (value) {
4968
+ if (this.internalChildren !== value) {
4969
+ if (!_.isNil(value) && value.length === 0) {
4970
+ throw new Error('Children must be not an empty array');
4971
+ }
4972
+ this.internalChildren = value;
4973
+ if (!_.isNil(this.internalChildren)) {
4974
+ var checked_1 = null;
4975
+ this.internalChildren.forEach(function (child) {
4976
+ if (checked_1 === null) {
4977
+ checked_1 = child.checked;
4978
+ }
4979
+ else {
4980
+ if (child.checked !== checked_1) {
4981
+ checked_1 = undefined;
4982
+ return;
4983
+ }
4984
+ }
4985
+ });
4986
+ this.internalChecked = checked_1;
4987
+ }
4988
+ }
4989
+ },
4990
+ enumerable: false,
4991
+ configurable: true
4992
+ });
4993
+ TreeviewItem.prototype.getSelection = function () {
4994
+ var checkedItems = [];
4995
+ var uncheckedItems = [];
4996
+ if (_.isNil(this.internalChildren)) {
4997
+ if (this.internalChecked) {
4998
+ checkedItems.push(this);
4999
+ }
5000
+ else {
5001
+ uncheckedItems.push(this);
5002
+ }
5003
+ }
5004
+ else {
5005
+ var selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);
5006
+ checkedItems = selection.checked;
5007
+ uncheckedItems = selection.unchecked;
5008
+ }
5009
+ return {
5010
+ checkedItems: checkedItems,
5011
+ uncheckedItems: uncheckedItems
5012
+ };
5013
+ };
5014
+ TreeviewItem.prototype.correctChecked = function () {
5015
+ this.internalChecked = this.getCorrectChecked();
5016
+ };
5017
+ TreeviewItem.prototype.getCorrectChecked = function () {
5018
+ var e_1, _a;
5019
+ var checked = null;
5020
+ if (!_.isNil(this.internalChildren)) {
5021
+ try {
5022
+ for (var _b = __values(this.internalChildren), _c = _b.next(); !_c.done; _c = _b.next()) {
5023
+ var child = _c.value;
5024
+ child.internalChecked = child.getCorrectChecked();
5025
+ if (checked === null) {
5026
+ checked = child.internalChecked;
5027
+ }
5028
+ else if (checked !== child.internalChecked) {
5029
+ checked = undefined;
5030
+ break;
5031
+ }
5032
+ }
5033
+ }
5034
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
5035
+ finally {
5036
+ try {
5037
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
5038
+ }
5039
+ finally { if (e_1) throw e_1.error; }
5040
+ }
5041
+ }
5042
+ else {
5043
+ checked = this.checked;
5044
+ }
5045
+ return checked;
5046
+ };
5047
+ return TreeviewItem;
5048
+ }());
5049
+
5050
+ var TreeviewConfig = /** @class */ (function () {
5051
+ function TreeviewConfig() {
5052
+ this.hasAllCheckBox = true;
5053
+ this.hasFilter = false;
5054
+ this.hasCollapseExpand = false;
5055
+ this.decoupleChildFromParent = false;
5056
+ this.maxHeight = 500;
5057
+ }
5058
+ Object.defineProperty(TreeviewConfig.prototype, "hasDivider", {
5059
+ get: function () {
5060
+ return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;
5061
+ },
5062
+ enumerable: false,
5063
+ configurable: true
5064
+ });
5065
+ TreeviewConfig.create = function (fields) {
5066
+ var config = new TreeviewConfig();
5067
+ Object.assign(config, fields);
5068
+ return config;
5069
+ };
5070
+ return TreeviewConfig;
5071
+ }());
5072
+ TreeviewConfig.decorators = [
5073
+ { type: i0.Injectable }
5074
+ ];
5075
+
5076
+ var TreeviewEventParser = /** @class */ (function () {
5077
+ function TreeviewEventParser() {
5078
+ }
5079
+ return TreeviewEventParser;
5080
+ }());
5081
+ TreeviewEventParser.decorators = [
5082
+ { type: i0.Injectable }
5083
+ ];
5084
+ var DefaultTreeviewEventParser = /** @class */ (function (_super) {
5085
+ __extends(DefaultTreeviewEventParser, _super);
5086
+ function DefaultTreeviewEventParser() {
5087
+ return _super !== null && _super.apply(this, arguments) || this;
5088
+ }
5089
+ DefaultTreeviewEventParser.prototype.getSelectedChange = function (component) {
5090
+ var checkedItems = component.selection.checkedItems;
5091
+ if (!_.isNil(checkedItems)) {
5092
+ return checkedItems.map(function (item) { return item.value; });
5093
+ }
5094
+ return [];
5095
+ };
5096
+ return DefaultTreeviewEventParser;
5097
+ }(TreeviewEventParser));
5098
+ DefaultTreeviewEventParser.decorators = [
5099
+ { type: i0.Injectable }
5100
+ ];
5101
+ var DownlineTreeviewEventParser = /** @class */ (function (_super) {
5102
+ __extends(DownlineTreeviewEventParser, _super);
5103
+ function DownlineTreeviewEventParser() {
5104
+ return _super !== null && _super.apply(this, arguments) || this;
5105
+ }
5106
+ DownlineTreeviewEventParser.prototype.getSelectedChange = function (component) {
5107
+ var _this = this;
5108
+ var items = component.items;
5109
+ if (!_.isNil(items)) {
5110
+ var result_1 = [];
5111
+ items.forEach(function (item) {
5112
+ var links = _this.getLinks(item, null);
5113
+ if (!_.isNil(links)) {
5114
+ result_1 = result_1.concat(links);
5115
+ }
5116
+ });
5117
+ return result_1;
5118
+ }
5119
+ return [];
5120
+ };
5121
+ DownlineTreeviewEventParser.prototype.getLinks = function (item, parent) {
5122
+ var _this = this;
5123
+ if (!_.isNil(item.children)) {
5124
+ var link_1 = {
5125
+ item: item,
5126
+ parent: parent
5127
+ };
5128
+ var result_2 = [];
5129
+ item.children.forEach(function (child) {
5130
+ var links = _this.getLinks(child, link_1);
5131
+ if (!_.isNil(links)) {
5132
+ result_2 = result_2.concat(links);
5133
+ }
5134
+ });
5135
+ return result_2;
5136
+ }
5137
+ if (item.checked) {
5138
+ return [{
5139
+ item: item,
5140
+ parent: parent
5141
+ }];
5142
+ }
5143
+ return null;
5144
+ };
5145
+ return DownlineTreeviewEventParser;
5146
+ }(TreeviewEventParser));
5147
+ DownlineTreeviewEventParser.decorators = [
5148
+ { type: i0.Injectable }
5149
+ ];
5150
+ var OrderDownlineTreeviewEventParser = /** @class */ (function (_super) {
5151
+ __extends(OrderDownlineTreeviewEventParser, _super);
5152
+ function OrderDownlineTreeviewEventParser() {
5153
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
5154
+ _this.currentDownlines = [];
5155
+ _this.parser = new DownlineTreeviewEventParser();
5156
+ return _this;
5157
+ }
5158
+ OrderDownlineTreeviewEventParser.prototype.getSelectedChange = function (component) {
5159
+ var newDownlines = this.parser.getSelectedChange(component);
5160
+ if (this.currentDownlines.length === 0) {
5161
+ this.currentDownlines = newDownlines;
5162
+ }
5163
+ else {
5164
+ var intersectDownlines_1 = [];
5165
+ this.currentDownlines.forEach(function (downline) {
5166
+ var foundIndex = -1;
5167
+ var length = newDownlines.length;
5168
+ for (var i = 0; i < length; i++) {
5169
+ if (downline.item.value === newDownlines[i].item.value) {
5170
+ foundIndex = i;
5171
+ break;
5172
+ }
5173
+ }
5174
+ if (foundIndex !== -1) {
5175
+ intersectDownlines_1.push(newDownlines[foundIndex]);
5176
+ newDownlines.splice(foundIndex, 1);
5177
+ }
5178
+ });
5179
+ this.currentDownlines = intersectDownlines_1.concat(newDownlines);
5180
+ }
5181
+ return this.currentDownlines;
5182
+ };
5183
+ return OrderDownlineTreeviewEventParser;
5184
+ }(TreeviewEventParser));
5185
+ OrderDownlineTreeviewEventParser.decorators = [
5186
+ { type: i0.Injectable }
5187
+ ];
5188
+
5189
+ var FilterTreeviewItem = /** @class */ (function (_super) {
5190
+ __extends(FilterTreeviewItem, _super);
5191
+ function FilterTreeviewItem(item) {
5192
+ var _this = _super.call(this, {
5193
+ text: item.text,
5194
+ value: item.value,
5195
+ disabled: item.disabled,
5196
+ checked: item.checked,
5197
+ collapsed: item.collapsed,
5198
+ children: item.children
5199
+ }) || this;
5200
+ _this.refItem = item;
5201
+ return _this;
5202
+ }
5203
+ FilterTreeviewItem.prototype.updateRefChecked = function () {
5204
+ var e_1, _a;
5205
+ this.children.forEach(function (child) {
5206
+ if (child instanceof FilterTreeviewItem) {
5207
+ child.updateRefChecked();
5208
+ }
5209
+ });
5210
+ var refChecked = this.checked;
5211
+ if (refChecked) {
5212
+ try {
5213
+ for (var _b = __values(this.refItem.children), _c = _b.next(); !_c.done; _c = _b.next()) {
5214
+ var refChild = _c.value;
5215
+ if (!refChild.checked) {
5216
+ refChecked = false;
5217
+ break;
5218
+ }
5219
+ }
5220
+ }
5221
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
5222
+ finally {
5223
+ try {
5224
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
5225
+ }
5226
+ finally { if (e_1) throw e_1.error; }
5227
+ }
5228
+ }
5229
+ this.refItem.checked = refChecked;
5230
+ };
5231
+ return FilterTreeviewItem;
5232
+ }(TreeviewItem));
5233
+ var TreeviewComponent = /** @class */ (function () {
5234
+ function TreeviewComponent(i18n, defaultConfig, eventParser) {
5235
+ this.i18n = i18n;
5236
+ this.defaultConfig = defaultConfig;
5237
+ this.eventParser = eventParser;
5238
+ this.selectedChange = new i0.EventEmitter();
5239
+ this.filterChange = new i0.EventEmitter();
5240
+ this.filterText = '';
5241
+ this.config = this.defaultConfig;
5242
+ this.allItem = new TreeviewItem({ text: 'All', value: undefined });
5243
+ }
5244
+ Object.defineProperty(TreeviewComponent.prototype, "hasFilterItems", {
5245
+ get: function () {
5246
+ return !_.isNil(this.filterItems) && this.filterItems.length > 0;
5247
+ },
5248
+ enumerable: false,
5249
+ configurable: true
5250
+ });
5251
+ Object.defineProperty(TreeviewComponent.prototype, "maxHeight", {
5252
+ get: function () {
5253
+ return "" + this.config.maxHeight;
5254
+ },
5255
+ enumerable: false,
5256
+ configurable: true
5257
+ });
5258
+ TreeviewComponent.prototype.ngOnInit = function () {
5259
+ this.createHeaderTemplateContext();
5260
+ this.generateSelection();
5261
+ };
5262
+ TreeviewComponent.prototype.ngOnChanges = function (changes) {
5263
+ var itemsSimpleChange = changes.items;
5264
+ if (!_.isNil(itemsSimpleChange) && !_.isNil(this.items)) {
5265
+ this.updateFilterItems();
5266
+ this.updateCollapsedOfAll();
5267
+ this.raiseSelectedChange();
5268
+ }
5269
+ };
5270
+ TreeviewComponent.prototype.onAllCollapseExpand = function () {
5271
+ var _this = this;
5272
+ this.allItem.collapsed = !this.allItem.collapsed;
5273
+ this.filterItems.forEach(function (item) { return item.setCollapsedRecursive(_this.allItem.collapsed); });
5274
+ };
5275
+ TreeviewComponent.prototype.onFilterTextChange = function (text) {
5276
+ this.filterText = text;
5277
+ this.filterChange.emit(text);
5278
+ this.updateFilterItems();
5279
+ };
5280
+ TreeviewComponent.prototype.onAllCheckedChange = function () {
5281
+ var checked = this.allItem.checked;
5282
+ this.filterItems.forEach(function (item) {
5283
+ item.setCheckedRecursive(checked);
5284
+ if (item instanceof FilterTreeviewItem) {
5285
+ item.updateRefChecked();
5286
+ }
5287
+ });
5288
+ this.raiseSelectedChange();
5289
+ };
5290
+ TreeviewComponent.prototype.onItemCheckedChange = function (item, checked) {
5291
+ if (item instanceof FilterTreeviewItem) {
5292
+ item.updateRefChecked();
5293
+ }
5294
+ this.updateCheckedOfAll();
5295
+ this.raiseSelectedChange();
5296
+ };
5297
+ TreeviewComponent.prototype.raiseSelectedChange = function () {
5298
+ var _this = this;
5299
+ this.generateSelection();
5300
+ var values = this.eventParser.getSelectedChange(this);
5301
+ setTimeout(function () {
5302
+ _this.selectedChange.emit(values);
5303
+ });
5304
+ };
5305
+ TreeviewComponent.prototype.createHeaderTemplateContext = function () {
5306
+ var _this = this;
5307
+ this.headerTemplateContext = {
5308
+ config: this.config,
5309
+ item: this.allItem,
5310
+ onCheckedChange: function () { return _this.onAllCheckedChange(); },
5311
+ onCollapseExpand: function () { return _this.onAllCollapseExpand(); },
5312
+ onFilterTextChange: function (text) { return _this.onFilterTextChange(text); }
5313
+ };
5314
+ };
5315
+ TreeviewComponent.prototype.generateSelection = function () {
5316
+ var checkedItems = [];
5317
+ var uncheckedItems = [];
5318
+ if (!_.isNil(this.items)) {
5319
+ var selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);
5320
+ checkedItems = selection.checked;
5321
+ uncheckedItems = selection.unchecked;
5322
+ }
5323
+ this.selection = {
5324
+ checkedItems: checkedItems,
5325
+ uncheckedItems: uncheckedItems
5326
+ };
5327
+ };
5328
+ TreeviewComponent.prototype.updateFilterItems = function () {
5329
+ var _this = this;
5330
+ if (this.filterText !== '') {
5331
+ var filterItems_1 = [];
5332
+ var filterText_1 = this.filterText.toLowerCase();
5333
+ this.items.forEach(function (item) {
5334
+ var newItem = _this.filterItem(item, filterText_1);
5335
+ if (!_.isNil(newItem)) {
5336
+ filterItems_1.push(newItem);
5337
+ }
5338
+ });
5339
+ this.filterItems = filterItems_1;
5340
+ }
5341
+ else {
5342
+ this.filterItems = this.items;
5343
+ }
5344
+ this.updateCheckedOfAll();
5345
+ };
5346
+ TreeviewComponent.prototype.filterItem = function (item, filterText) {
5347
+ var _this = this;
5348
+ var isMatch = _.includes(item.text.toLowerCase(), filterText);
5349
+ if (isMatch) {
5350
+ return item;
5351
+ }
5352
+ else {
5353
+ if (!_.isNil(item.children)) {
5354
+ var children_1 = [];
5355
+ item.children.forEach(function (child) {
5356
+ var newChild = _this.filterItem(child, filterText);
5357
+ if (!_.isNil(newChild)) {
5358
+ children_1.push(newChild);
5359
+ }
5360
+ });
5361
+ if (children_1.length > 0) {
5362
+ var newItem = new FilterTreeviewItem(item);
5363
+ newItem.collapsed = false;
5364
+ newItem.children = children_1;
5365
+ return newItem;
5366
+ }
5367
+ }
5368
+ }
5369
+ return undefined;
5370
+ };
5371
+ TreeviewComponent.prototype.updateCheckedOfAll = function () {
5372
+ var e_2, _a;
5373
+ var itemChecked = null;
5374
+ try {
5375
+ for (var _b = __values(this.filterItems), _c = _b.next(); !_c.done; _c = _b.next()) {
5376
+ var filterItem = _c.value;
5377
+ if (itemChecked === null) {
5378
+ itemChecked = filterItem.checked;
5379
+ }
5380
+ else if (itemChecked !== filterItem.checked) {
5381
+ itemChecked = undefined;
5382
+ break;
5383
+ }
5384
+ }
5385
+ }
5386
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
5387
+ finally {
5388
+ try {
5389
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
5390
+ }
5391
+ finally { if (e_2) throw e_2.error; }
5392
+ }
5393
+ if (itemChecked === null) {
5394
+ itemChecked = false;
5395
+ }
5396
+ this.allItem.checked = itemChecked;
5397
+ };
5398
+ TreeviewComponent.prototype.updateCollapsedOfAll = function () {
5399
+ var e_3, _a;
5400
+ var hasItemExpanded = false;
5401
+ try {
5402
+ for (var _b = __values(this.filterItems), _c = _b.next(); !_c.done; _c = _b.next()) {
5403
+ var filterItem = _c.value;
5404
+ if (!filterItem.collapsed) {
5405
+ hasItemExpanded = true;
5406
+ break;
5407
+ }
5408
+ }
5409
+ }
5410
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
5411
+ finally {
5412
+ try {
5413
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
5414
+ }
5415
+ finally { if (e_3) throw e_3.error; }
5416
+ }
5417
+ this.allItem.collapsed = !hasItemExpanded;
5418
+ };
5419
+ return TreeviewComponent;
5420
+ }());
5421
+ TreeviewComponent.decorators = [
5422
+ { type: i0.Component, args: [{
5423
+ selector: 'ngx-treeview',
5424
+ template: "<ng-template #defaultItemTemplate let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\">\n <div class=\"form-inline row-item\">\n <i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg *ngSwitchCase=\"true\" width=\"0.8rem\" height=\"0.8rem\" viewBox=\"0 0 16 16\" class=\"bi bi-caret-right-fill\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.14 8.753l-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\" />\n </svg>\n <svg *ngSwitchCase=\"false\" width=\"0.8rem\" height=\"0.8rem\" viewBox=\"0 0 16 16\" class=\"bi bi-caret-down-fill\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\" />\n </svg>\n </i>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"item.checked\" (ngModelChange)=\"onCheckedChange()\"\n [disabled]=\"item.disabled\" [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{item.text}}\n </label>\n </div>\n </div>\n</ng-template>\n<ng-template #defaultHeaderTemplate let-config=\"config\" let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\" let-onFilterTextChange=\"onFilterTextChange\">\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\n <div class=\"col-12\">\n <input class=\"form-control\" type=\"text\" [placeholder]=\"i18n.getFilterPlaceholder()\" [(ngModel)]=\"filterText\"\n (ngModelChange)=\"onFilterTextChange($event)\" />\n </div>\n </div>\n <div *ngIf=\"hasFilterItems\">\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row row-all\">\n <div class=\"col-12\">\n <div class=\"form-check form-check-inline\" *ngIf=\"config.hasAllCheckBox\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"item.checked\" (ngModelChange)=\"onCheckedChange()\"\n [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{i18n.getAllCheckboxText()}}\n </label>\n </div>\n <label *ngIf=\"config.hasCollapseExpand\" class=\"float-right form-check-label\" (click)=\"onCollapseExpand()\">\n <i [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg *ngSwitchCase=\"true\" width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-arrows-angle-expand\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\"\n d=\"M1.5 10.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path fill-rule=\"evenodd\"\n d=\"M6.354 9.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm8.5-8.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path fill-rule=\"evenodd\"\n d=\"M10.036 1.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 1 1-1 0V2h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n <svg *ngSwitchCase=\"false\" width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-arrows-angle-contract\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\"\n d=\"M9.5 2.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path fill-rule=\"evenodd\"\n d=\"M14.354 1.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 1 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm-7.5 7.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path fill-rule=\"evenodd\"\n d=\"M2.036 9.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V10h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n </i>\n </label>\n </div>\n </div>\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\"></div>\n </div>\n</ng-template>\n<div class=\"treeview-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate || defaultHeaderTemplate\"\n [ngTemplateOutletContext]=\"headerTemplateContext\">\n </ng-template>\n</div>\n<div [ngSwitch]=\"hasFilterItems\">\n <div *ngSwitchCase=\"true\" class=\"treeview-container\" [style.max-height.px]=\"maxHeight\">\n <ngx-treeview-item *ngFor=\"let item of filterItems\" [config]=\"config\" [item]=\"item\"\n [template]=\"itemTemplate || defaultItemTemplate\" (checkedChange)=\"onItemCheckedChange(item, $event)\">\n </ngx-treeview-item>\n </div>\n <div *ngSwitchCase=\"false\" class=\"treeview-text\">\n {{i18n.getFilterNoItemsFoundText()}}\n </div>\n</div>\n",
5425
+ styles: [":host .treeview-header .row-filter{margin-bottom:.5rem}:host .treeview-header .row-all .bi{cursor:pointer}:host .treeview-container .row-item{margin-bottom:.3rem;flex-wrap:nowrap}:host .treeview-container .row-item .bi{cursor:pointer;margin-right:.3rem}.treeview-container{overflow-y:auto;padding-right:.3rem}.treeview-text{padding:.3rem 0;white-space:nowrap}\n"]
5426
+ },] }
5427
+ ];
5428
+ TreeviewComponent.ctorParameters = function () { return [
5429
+ { type: TreeviewI18n },
5430
+ { type: TreeviewConfig },
5431
+ { type: TreeviewEventParser }
5432
+ ]; };
5433
+ TreeviewComponent.propDecorators = {
5434
+ headerTemplate: [{ type: i0.Input }],
5435
+ itemTemplate: [{ type: i0.Input }],
5436
+ items: [{ type: i0.Input }],
5437
+ config: [{ type: i0.Input }],
5438
+ selectedChange: [{ type: i0.Output }],
5439
+ filterChange: [{ type: i0.Output }]
5440
+ };
5441
+
5442
+ var TreeviewPipe = /** @class */ (function () {
5443
+ function TreeviewPipe() {
5444
+ }
5445
+ TreeviewPipe.prototype.transform = function (objects, textField) {
5446
+ if (_.isNil(objects)) {
5447
+ return undefined;
5448
+ }
5449
+ return objects.map(function (object) { return new TreeviewItem({ text: object[textField], value: object }); });
5450
+ };
5451
+ return TreeviewPipe;
5452
+ }());
5453
+ TreeviewPipe.decorators = [
5454
+ { type: i0.Pipe, args: [{
5455
+ name: 'ngxTreeview'
5456
+ },] }
5457
+ ];
5458
+
4689
5459
  exports.TooltipPosition = void 0;
4690
5460
  (function (TooltipPosition) {
4691
5461
  TooltipPosition["TOP"] = "top";
@@ -7044,6 +7814,107 @@
7044
7814
  },] }
7045
7815
  ];
7046
7816
 
7817
+ var TreeviewItemComponent = /** @class */ (function () {
7818
+ function TreeviewItemComponent(defaultConfig) {
7819
+ var _this = this;
7820
+ this.defaultConfig = defaultConfig;
7821
+ this.checkedChange = new i0.EventEmitter();
7822
+ this.onCollapseExpand = function () {
7823
+ _this.item.collapsed = !_this.item.collapsed;
7824
+ };
7825
+ this.onCheckedChange = function () {
7826
+ var checked = _this.item.checked;
7827
+ if (!_.isNil(_this.item.children) && !_this.config.decoupleChildFromParent) {
7828
+ _this.item.children.forEach(function (child) { return child.setCheckedRecursive(checked); });
7829
+ }
7830
+ _this.checkedChange.emit(checked);
7831
+ };
7832
+ this.config = this.defaultConfig;
7833
+ }
7834
+ TreeviewItemComponent.prototype.onChildCheckedChange = function (child, checked) {
7835
+ var e_1, _a;
7836
+ if (!this.config.decoupleChildFromParent) {
7837
+ var itemChecked = null;
7838
+ try {
7839
+ for (var _b = __values(this.item.children), _c = _b.next(); !_c.done; _c = _b.next()) {
7840
+ var childItem = _c.value;
7841
+ if (itemChecked === null) {
7842
+ itemChecked = childItem.checked;
7843
+ }
7844
+ else if (itemChecked !== childItem.checked) {
7845
+ itemChecked = undefined;
7846
+ break;
7847
+ }
7848
+ }
7849
+ }
7850
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
7851
+ finally {
7852
+ try {
7853
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
7854
+ }
7855
+ finally { if (e_1) throw e_1.error; }
7856
+ }
7857
+ if (itemChecked === null) {
7858
+ itemChecked = false;
7859
+ }
7860
+ if (this.item.checked !== itemChecked) {
7861
+ this.item.checked = itemChecked;
7862
+ }
7863
+ }
7864
+ this.checkedChange.emit(checked);
7865
+ };
7866
+ return TreeviewItemComponent;
7867
+ }());
7868
+ TreeviewItemComponent.decorators = [
7869
+ { type: i0.Component, args: [{
7870
+ selector: 'ngx-treeview-item',
7871
+ template: "<div *ngIf=\"item\" class=\"treeview-item\">\n <ng-template [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{item: item, onCollapseExpand: onCollapseExpand, onCheckedChange: onCheckedChange}\">\n </ng-template>\n <div *ngIf=\"!item.collapsed\">\n <ngx-treeview-item [config]=\"config\" *ngFor=\"let child of item.children\" [item]=\"child\" [template]=\"template\"\n (checkedChange)=\"onChildCheckedChange(child, $event)\">\n </ngx-treeview-item>\n </div>\n</div>\n",
7872
+ styles: [":host{display:block}:host .treeview-item{white-space:nowrap}:host .treeview-item .treeview-item{margin-left:2rem}\n"]
7873
+ },] }
7874
+ ];
7875
+ TreeviewItemComponent.ctorParameters = function () { return [
7876
+ { type: TreeviewConfig }
7877
+ ]; };
7878
+ TreeviewItemComponent.propDecorators = {
7879
+ config: [{ type: i0.Input }],
7880
+ template: [{ type: i0.Input }],
7881
+ item: [{ type: i0.Input }],
7882
+ checkedChange: [{ type: i0.Output }]
7883
+ };
7884
+
7885
+ var TreeviewModule = /** @class */ (function () {
7886
+ function TreeviewModule() {
7887
+ }
7888
+ TreeviewModule.forRoot = function () {
7889
+ return {
7890
+ ngModule: TreeviewModule,
7891
+ providers: [
7892
+ TreeviewConfig,
7893
+ { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }
7894
+ ]
7895
+ };
7896
+ };
7897
+ return TreeviewModule;
7898
+ }());
7899
+ TreeviewModule.decorators = [
7900
+ { type: i0.NgModule, args: [{
7901
+ imports: [
7902
+ forms.FormsModule,
7903
+ common.CommonModule
7904
+ ],
7905
+ declarations: [
7906
+ TreeviewComponent,
7907
+ TreeviewItemComponent,
7908
+ TreeviewPipe
7909
+ ],
7910
+ exports: [
7911
+ TreeviewComponent,
7912
+ TreeviewPipe,
7913
+ ],
7914
+ providers: [],
7915
+ },] }
7916
+ ];
7917
+
7047
7918
  /* components */
7048
7919
 
7049
7920
  /**
@@ -7057,7 +7928,10 @@
7057
7928
  exports.DateTagComponent = DateTagComponent;
7058
7929
  exports.DateTagModule = DateTagModule;
7059
7930
  exports.DayTagComponent = DayTagComponent;
7931
+ exports.DefaultTreeviewEventParser = DefaultTreeviewEventParser;
7932
+ exports.DefaultTreeviewI18n = DefaultTreeviewI18n;
7060
7933
  exports.DialogService = DialogService;
7934
+ exports.DownlineTreeviewEventParser = DownlineTreeviewEventParser;
7061
7935
  exports.DrAccordionComponent = DrAccordionComponent;
7062
7936
  exports.DrAccordionItemBodyComponent = DrAccordionItemBodyComponent;
7063
7937
  exports.DrAccordionItemComponent = DrAccordionItemComponent;
@@ -7114,11 +7988,20 @@
7114
7988
  exports.ListTagComponent = ListTagComponent;
7115
7989
  exports.ListTagModule = ListTagModule;
7116
7990
  exports.MonthTagComponent = MonthTagComponent;
7991
+ exports.OrderDownlineTreeviewEventParser = OrderDownlineTreeviewEventParser;
7117
7992
  exports.QuarterTagComponent = QuarterTagComponent;
7118
7993
  exports.RadioButtonComponent = RadioButtonComponent;
7119
7994
  exports.RadioGroupComponent = RadioGroupComponent;
7120
7995
  exports.ScenarioService = ScenarioService;
7121
7996
  exports.TooltipComponent = TooltipComponent;
7997
+ exports.TreeviewComponent = TreeviewComponent;
7998
+ exports.TreeviewConfig = TreeviewConfig;
7999
+ exports.TreeviewEventParser = TreeviewEventParser;
8000
+ exports.TreeviewHelper = TreeviewHelper;
8001
+ exports.TreeviewI18n = TreeviewI18n;
8002
+ exports.TreeviewItem = TreeviewItem;
8003
+ exports.TreeviewModule = TreeviewModule;
8004
+ exports.TreeviewPipe = TreeviewPipe;
7122
8005
  exports.WeekTagComponent = WeekTagComponent;
7123
8006
  exports.YearTagComponent = YearTagComponent;
7124
8007
  exports["ɵa"] = components$2;
@@ -7126,6 +8009,7 @@
7126
8009
  exports["ɵba"] = DrScenarioConfigurationComponent;
7127
8010
  exports["ɵbb"] = DrScenarioTagConfigurationComponent;
7128
8011
  exports["ɵbc"] = DrBadgeStatusComponent;
8012
+ exports["ɵbd"] = TreeviewItemComponent;
7129
8013
  exports["ɵc"] = DrChatCustomMessageService;
7130
8014
  exports["ɵd"] = DrChatMessageComponent;
7131
8015
  exports["ɵe"] = DrChatFormComponent;