@ng-matero/extensions 12.3.0 → 12.5.1

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 (284) hide show
  1. package/README.md +1 -1
  2. package/_all-color.scss +47 -0
  3. package/_all-theme.scss +5 -3
  4. package/_index.scss +4 -2
  5. package/_theming.scss +4 -2
  6. package/alert/_alert-theme.import.scss +2 -2
  7. package/alert/_alert-theme.scss +38 -17
  8. package/alert/alert.component.d.ts +6 -6
  9. package/alert/alert.component.scss +2 -1
  10. package/alert/mtxAlert.metadata.json +1 -1
  11. package/bundles/extensions.umd.js +21 -10
  12. package/bundles/extensions.umd.js.map +1 -1
  13. package/bundles/mtxAlert.umd.js +32 -14
  14. package/bundles/mtxAlert.umd.js.map +1 -1
  15. package/bundles/mtxButton.umd.js +36 -5
  16. package/bundles/mtxButton.umd.js.map +1 -1
  17. package/bundles/mtxCheckboxGroup.umd.js +10 -1
  18. package/bundles/mtxCheckboxGroup.umd.js.map +1 -1
  19. package/bundles/mtxColorPicker.umd.js +10 -1
  20. package/bundles/mtxColorPicker.umd.js.map +1 -1
  21. package/bundles/mtxColumnResize.umd.js +55 -6
  22. package/bundles/mtxColumnResize.umd.js.map +1 -1
  23. package/bundles/mtxCore.umd.js +10 -1
  24. package/bundles/mtxCore.umd.js.map +1 -1
  25. package/bundles/mtxDatetimepicker.umd.js +139 -32
  26. package/bundles/mtxDatetimepicker.umd.js.map +1 -1
  27. package/bundles/mtxDialog.umd.js +17 -2
  28. package/bundles/mtxDialog.umd.js.map +1 -1
  29. package/bundles/mtxFormGroup.umd.js +10 -1
  30. package/bundles/mtxFormGroup.umd.js.map +1 -1
  31. package/bundles/mtxGrid.umd.js +92 -12
  32. package/bundles/mtxGrid.umd.js.map +1 -1
  33. package/bundles/mtxLoader.umd.js +37 -8
  34. package/bundles/mtxLoader.umd.js.map +1 -1
  35. package/bundles/mtxPipes.umd.js +2 -0
  36. package/bundles/mtxPipes.umd.js.map +1 -1
  37. package/bundles/mtxPopover.umd.js +27 -3
  38. package/bundles/mtxPopover.umd.js.map +1 -1
  39. package/bundles/mtxProgress.umd.js +31 -4
  40. package/bundles/mtxProgress.umd.js.map +1 -1
  41. package/bundles/mtxSelect.umd.js +107 -13
  42. package/bundles/mtxSelect.umd.js.map +1 -1
  43. package/bundles/mtxSlider.umd.js +1551 -0
  44. package/bundles/mtxSlider.umd.js.map +1 -0
  45. package/bundles/mtxSplit.umd.js +23 -6
  46. package/bundles/mtxSplit.umd.js.map +1 -1
  47. package/bundles/mtxText3d.umd.js +10 -1
  48. package/bundles/mtxText3d.umd.js.map +1 -1
  49. package/bundles/mtxTooltip.umd.js +18 -2
  50. package/bundles/mtxTooltip.umd.js.map +1 -1
  51. package/button/button-loading.directive.d.ts +9 -2
  52. package/button/mtxButton.metadata.json +1 -1
  53. package/datetimepicker/_datetimepicker-theme.import.scss +4 -2
  54. package/datetimepicker/_datetimepicker-theme.scss +101 -29
  55. package/datetimepicker/calendar-body.scss +0 -3
  56. package/datetimepicker/calendar.d.ts +10 -3
  57. package/datetimepicker/calendar.scss +5 -22
  58. package/datetimepicker/clock.scss +0 -2
  59. package/datetimepicker/datetimepicker-content.scss +2 -2
  60. package/datetimepicker/datetimepicker-input.d.ts +5 -3
  61. package/datetimepicker/datetimepicker-toggle.d.ts +2 -0
  62. package/datetimepicker/datetimepicker.d.ts +13 -3
  63. package/datetimepicker/mtxDatetimepicker.metadata.json +1 -1
  64. package/esm2015/alert/alert.component.js +25 -11
  65. package/esm2015/alert/alert.module.js +2 -1
  66. package/esm2015/button/button-loading.directive.js +31 -8
  67. package/esm2015/button/button.module.js +2 -1
  68. package/esm2015/checkbox-group/checkbox-group.component.js +10 -2
  69. package/esm2015/checkbox-group/checkbox-group.module.js +2 -1
  70. package/esm2015/color-picker/color-picker.component.js +10 -2
  71. package/esm2015/color-picker/color-picker.module.js +2 -1
  72. package/esm2015/column-resize/column-resize-directives/column-resize-flex.js +9 -2
  73. package/esm2015/column-resize/column-resize-directives/column-resize.js +9 -2
  74. package/esm2015/column-resize/column-resize-module.js +2 -1
  75. package/esm2015/column-resize/column-resize-notifier.js +10 -2
  76. package/esm2015/column-resize/column-resize.js +2 -1
  77. package/esm2015/column-resize/column-size-store.js +2 -1
  78. package/esm2015/column-resize/event-dispatcher.js +9 -2
  79. package/esm2015/column-resize/overlay-handle.js +2 -1
  80. package/esm2015/column-resize/resizable.js +2 -1
  81. package/esm2015/column-resize/resize-strategy.js +18 -3
  82. package/esm2015/core/datetime/datetime.module.js +3 -1
  83. package/esm2015/core/datetime/native-datetime-adapter.js +9 -2
  84. package/esm2015/datetimepicker/calendar-body.js +5 -3
  85. package/esm2015/datetimepicker/calendar.js +31 -12
  86. package/esm2015/datetimepicker/clock.js +11 -3
  87. package/esm2015/datetimepicker/datetimepicker-input.js +12 -4
  88. package/esm2015/datetimepicker/datetimepicker-toggle.js +11 -3
  89. package/esm2015/datetimepicker/datetimepicker.js +30 -8
  90. package/esm2015/datetimepicker/datetimepicker.module.js +2 -1
  91. package/esm2015/datetimepicker/month-view.js +11 -3
  92. package/esm2015/datetimepicker/multi-year-view.js +11 -3
  93. package/esm2015/datetimepicker/year-view.js +11 -3
  94. package/esm2015/dialog/dialog.component.js +9 -2
  95. package/esm2015/dialog/dialog.js +9 -2
  96. package/esm2015/dialog/dialog.module.js +2 -1
  97. package/esm2015/extensions-experimental.module.js +2 -1
  98. package/esm2015/extensions.module.js +6 -3
  99. package/esm2015/form-group/form-group.component.js +10 -2
  100. package/esm2015/form-group/form-group.module.js +2 -1
  101. package/esm2015/grid/cell-selection.directive.js +62 -0
  102. package/esm2015/{data-grid → grid}/cell.component.js +10 -2
  103. package/esm2015/{data-grid → grid}/column-menu.component.js +3 -1
  104. package/esm2015/grid/column-resize/column-resize-directives/column-resize-flex.js +47 -0
  105. package/esm2015/grid/column-resize/column-resize-directives/column-resize.js +47 -0
  106. package/esm2015/grid/column-resize/column-resize-directives/common.js +34 -0
  107. package/esm2015/grid/column-resize/column-resize-module.js +36 -0
  108. package/esm2015/grid/column-resize/overlay-handle.js +68 -0
  109. package/esm2015/grid/column-resize/resizable-directives/common.js +29 -0
  110. package/esm2015/grid/column-resize/resizable-directives/resizable.js +75 -0
  111. package/esm2015/grid/column-resize/resize-strategy.js +45 -0
  112. package/esm2015/grid/expansion-toggle.directive.js +62 -0
  113. package/esm2015/{data-grid → grid}/grid.component.js +10 -2
  114. package/esm2015/grid/grid.interface.js +2 -0
  115. package/esm2015/grid/grid.module.js +69 -0
  116. package/esm2015/grid/grid.service.js +50 -0
  117. package/esm2015/grid/mtxGrid.js +5 -0
  118. package/esm2015/grid/public-api.js +17 -0
  119. package/esm2015/loader/loader.component.js +26 -5
  120. package/esm2015/loader/loader.module.js +2 -1
  121. package/esm2015/pipes/pipes.module.js +2 -1
  122. package/esm2015/pipes/to-observable.pipe.js +2 -1
  123. package/esm2015/popover/popover-module.js +2 -1
  124. package/esm2015/popover/popover-target.js +9 -2
  125. package/esm2015/popover/popover-trigger.js +10 -2
  126. package/esm2015/popover/popover.js +10 -2
  127. package/esm2015/progress/progress.component.js +20 -1
  128. package/esm2015/progress/progress.module.js +2 -1
  129. package/esm2015/public-api.js +4 -3
  130. package/esm2015/select/option.component.js +10 -2
  131. package/esm2015/select/select.component.js +10 -2
  132. package/esm2015/select/select.module.js +2 -1
  133. package/esm2015/select/templates.directive.js +89 -12
  134. package/esm2015/slider/mtxSlider.js +5 -0
  135. package/esm2015/slider/public-api.js +3 -0
  136. package/esm2015/slider/slider-module.js +15 -0
  137. package/esm2015/slider/slider.js +1115 -0
  138. package/esm2015/split/interface.js +2 -0
  139. package/esm2015/split/mtxSplit.js +5 -0
  140. package/esm2015/split/public-api.js +6 -0
  141. package/esm2015/split/split-pane.directive.js +156 -0
  142. package/esm2015/split/split.component.js +620 -0
  143. package/esm2015/split/split.module.js +15 -0
  144. package/esm2015/split/utils.js +227 -0
  145. package/esm2015/text3d/text3d.component.js +10 -2
  146. package/esm2015/text3d/text3d.module.js +2 -1
  147. package/esm2015/tooltip/tooltip-module.js +2 -1
  148. package/esm2015/tooltip/tooltip.js +18 -3
  149. package/extensions.metadata.json +1 -1
  150. package/fesm2015/extensions.js +9 -4
  151. package/fesm2015/extensions.js.map +1 -1
  152. package/fesm2015/mtxAlert.js +25 -10
  153. package/fesm2015/mtxAlert.js.map +1 -1
  154. package/fesm2015/mtxButton.js +31 -7
  155. package/fesm2015/mtxButton.js.map +1 -1
  156. package/fesm2015/mtxCheckboxGroup.js +10 -1
  157. package/fesm2015/mtxCheckboxGroup.js.map +1 -1
  158. package/fesm2015/mtxColorPicker.js +10 -1
  159. package/fesm2015/mtxColorPicker.js.map +1 -1
  160. package/fesm2015/mtxColumnResize.js +55 -6
  161. package/fesm2015/mtxColumnResize.js.map +1 -1
  162. package/fesm2015/mtxCore.js +10 -1
  163. package/fesm2015/mtxCore.js.map +1 -1
  164. package/fesm2015/mtxDatetimepicker.js +120 -29
  165. package/fesm2015/mtxDatetimepicker.js.map +1 -1
  166. package/fesm2015/mtxDialog.js +17 -2
  167. package/fesm2015/mtxDialog.js.map +1 -1
  168. package/fesm2015/mtxFormGroup.js +10 -1
  169. package/fesm2015/mtxFormGroup.js.map +1 -1
  170. package/fesm2015/mtxGrid.js +90 -10
  171. package/fesm2015/mtxGrid.js.map +1 -1
  172. package/fesm2015/mtxLoader.js +26 -4
  173. package/fesm2015/mtxLoader.js.map +1 -1
  174. package/fesm2015/mtxPipes.js +2 -0
  175. package/fesm2015/mtxPipes.js.map +1 -1
  176. package/fesm2015/mtxPopover.js +27 -3
  177. package/fesm2015/mtxPopover.js.map +1 -1
  178. package/fesm2015/mtxProgress.js +20 -0
  179. package/fesm2015/mtxProgress.js.map +1 -1
  180. package/fesm2015/mtxSelect.js +107 -13
  181. package/fesm2015/mtxSelect.js.map +1 -1
  182. package/fesm2015/mtxSlider.js +1134 -0
  183. package/fesm2015/mtxSlider.js.map +1 -0
  184. package/fesm2015/mtxSplit.js +21 -4
  185. package/fesm2015/mtxSplit.js.map +1 -1
  186. package/fesm2015/mtxText3d.js +10 -1
  187. package/fesm2015/mtxText3d.js.map +1 -1
  188. package/fesm2015/mtxTooltip.js +18 -2
  189. package/fesm2015/mtxTooltip.js.map +1 -1
  190. package/form-group/_form-group-theme.import.scss +2 -2
  191. package/form-group/_form-group-theme.scss +46 -22
  192. package/form-group/form-group.component.d.ts +2 -0
  193. package/grid/_grid-theme.import.scss +2 -0
  194. package/grid/_grid-theme.scss +114 -0
  195. package/{data-grid → grid}/cell-selection.directive.d.ts +0 -0
  196. package/{data-grid → grid}/cell.component.d.ts +0 -0
  197. package/{data-grid → grid}/cell.component.scss +0 -0
  198. package/{data-grid → grid}/column-menu.component.d.ts +0 -0
  199. package/{data-grid → grid}/column-menu.component.scss +0 -0
  200. package/{data-grid → grid}/column-resize/_column-resize.scss +19 -13
  201. package/{data-grid → grid}/column-resize/column-resize-directives/column-resize-flex.d.ts +0 -0
  202. package/{data-grid → grid}/column-resize/column-resize-directives/column-resize.d.ts +0 -0
  203. package/{data-grid → grid}/column-resize/column-resize-directives/common.d.ts +0 -0
  204. package/{data-grid → grid}/column-resize/column-resize-module.d.ts +0 -0
  205. package/{data-grid → grid}/column-resize/overlay-handle.d.ts +0 -0
  206. package/{data-grid → grid}/column-resize/resizable-directives/common.d.ts +0 -0
  207. package/{data-grid → grid}/column-resize/resizable-directives/resizable.d.ts +0 -0
  208. package/{data-grid → grid}/column-resize/resize-strategy.d.ts +0 -0
  209. package/{data-grid → grid}/expansion-toggle.directive.d.ts +0 -0
  210. package/{data-grid → grid}/grid.component.d.ts +0 -0
  211. package/{data-grid → grid}/grid.component.scss +0 -0
  212. package/{data-grid → grid}/grid.interface.d.ts +0 -0
  213. package/{data-grid → grid}/grid.module.d.ts +0 -0
  214. package/{data-grid → grid}/grid.service.d.ts +0 -0
  215. package/{data-grid → grid}/mtxGrid.d.ts +0 -0
  216. package/{data-grid → grid}/mtxGrid.metadata.json +1 -1
  217. package/{data-grid → grid}/package.json +2 -2
  218. package/{data-grid → grid}/public-api.d.ts +0 -0
  219. package/loader/_loader-theme.import.scss +2 -2
  220. package/loader/_loader-theme.scss +30 -6
  221. package/loader/loader.component.d.ts +9 -2
  222. package/loader/mtxLoader.metadata.json +1 -1
  223. package/package.json +3 -3
  224. package/popover/_popover-theme.import.scss +2 -2
  225. package/popover/_popover-theme.scss +32 -8
  226. package/progress/_progress-theme.import.scss +2 -2
  227. package/progress/_progress-theme.scss +33 -8
  228. package/progress/mtxProgress.metadata.json +1 -1
  229. package/progress/progress.component.d.ts +9 -2
  230. package/public-api.d.ts +3 -2
  231. package/select/_select-theme.import.scss +2 -2
  232. package/select/_select-theme.scss +55 -31
  233. package/slider/_slider-theme.import.scss +2 -0
  234. package/slider/_slider-theme.scss +233 -0
  235. package/{split-pane/mtxSplit.d.ts → slider/mtxSlider.d.ts} +0 -0
  236. package/slider/mtxSlider.metadata.json +1 -0
  237. package/slider/package.json +11 -0
  238. package/slider/public-api.d.ts +2 -0
  239. package/slider/slider-module.d.ts +2 -0
  240. package/slider/slider.d.ts +274 -0
  241. package/slider/slider.scss +513 -0
  242. package/split/_split-theme.import.scss +2 -0
  243. package/split/_split-theme.scss +41 -0
  244. package/{split-pane → split}/interface.d.ts +0 -0
  245. package/split/mtxSplit.d.ts +4 -0
  246. package/split/mtxSplit.metadata.json +1 -0
  247. package/{split-pane → split}/package.json +2 -2
  248. package/{split-pane → split}/public-api.d.ts +0 -0
  249. package/{split-pane → split}/split-pane.directive.d.ts +0 -0
  250. package/{split-pane → split}/split.component.d.ts +0 -0
  251. package/{split-pane → split}/split.component.scss +3 -2
  252. package/{split-pane → split}/split.module.d.ts +0 -0
  253. package/{split-pane → split}/utils.d.ts +0 -0
  254. package/text3d/_text3d-theme.import.scss +2 -2
  255. package/text3d/_text3d-theme.scss +32 -7
  256. package/tooltip/_tooltip-theme.import.scss +2 -2
  257. package/tooltip/_tooltip-theme.scss +32 -15
  258. package/data-grid/_grid-theme.import.scss +0 -2
  259. package/data-grid/_grid-theme.scss +0 -90
  260. package/esm2015/data-grid/cell-selection.directive.js +0 -54
  261. package/esm2015/data-grid/column-resize/column-resize-directives/column-resize-flex.js +0 -40
  262. package/esm2015/data-grid/column-resize/column-resize-directives/column-resize.js +0 -40
  263. package/esm2015/data-grid/column-resize/column-resize-directives/common.js +0 -34
  264. package/esm2015/data-grid/column-resize/column-resize-module.js +0 -34
  265. package/esm2015/data-grid/column-resize/overlay-handle.js +0 -61
  266. package/esm2015/data-grid/column-resize/resizable-directives/common.js +0 -29
  267. package/esm2015/data-grid/column-resize/resizable-directives/resizable.js +0 -67
  268. package/esm2015/data-grid/column-resize/resize-strategy.js +0 -38
  269. package/esm2015/data-grid/expansion-toggle.directive.js +0 -54
  270. package/esm2015/data-grid/grid.interface.js +0 -2
  271. package/esm2015/data-grid/grid.module.js +0 -68
  272. package/esm2015/data-grid/grid.service.js +0 -43
  273. package/esm2015/data-grid/mtxGrid.js +0 -5
  274. package/esm2015/data-grid/public-api.js +0 -17
  275. package/esm2015/split-pane/interface.js +0 -2
  276. package/esm2015/split-pane/mtxSplit.js +0 -5
  277. package/esm2015/split-pane/public-api.js +0 -6
  278. package/esm2015/split-pane/split-pane.directive.js +0 -148
  279. package/esm2015/split-pane/split.component.js +0 -612
  280. package/esm2015/split-pane/split.module.js +0 -14
  281. package/esm2015/split-pane/utils.js +0 -227
  282. package/split-pane/_split-theme.import.scss +0 -2
  283. package/split-pane/_split-theme.scss +0 -17
  284. package/split-pane/mtxSplit.metadata.json +0 -1
@@ -1,14 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MtxSplitComponent } from './split.component';
4
- import { MtxSplitPaneDirective } from './split-pane.directive';
5
- export class MtxSplitModule {
6
- }
7
- MtxSplitModule.decorators = [
8
- { type: NgModule, args: [{
9
- imports: [CommonModule],
10
- declarations: [MtxSplitComponent, MtxSplitPaneDirective],
11
- exports: [MtxSplitComponent, MtxSplitPaneDirective],
12
- },] }
13
- ];
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcGxpdC1wYW5lL3NwbGl0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU8vRCxNQUFNLE9BQU8sY0FBYzs7O1lBTDFCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO2dCQUN4RCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQzthQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBNdHhTcGxpdENvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXR4U3BsaXRQYW5lRGlyZWN0aXZlIH0gZnJvbSAnLi9zcGxpdC1wYW5lLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW010eFNwbGl0Q29tcG9uZW50LCBNdHhTcGxpdFBhbmVEaXJlY3RpdmVdLFxyXG4gIGV4cG9ydHM6IFtNdHhTcGxpdENvbXBvbmVudCwgTXR4U3BsaXRQYW5lRGlyZWN0aXZlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE10eFNwbGl0TW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,227 +0,0 @@
1
- export function getPointFromEvent(event) {
2
- // TouchEvent
3
- if (event.changedTouches !== undefined &&
4
- event.changedTouches.length > 0) {
5
- return {
6
- x: event.changedTouches[0].clientX,
7
- y: event.changedTouches[0].clientY,
8
- };
9
- }
10
- // MouseEvent
11
- // tslint:disable-next-line: one-line
12
- else if (event.clientX !== undefined &&
13
- event.clientY !== undefined) {
14
- return {
15
- x: event.clientX,
16
- y: event.clientY,
17
- };
18
- }
19
- return null;
20
- }
21
- export function getElementPixelSize(elRef, direction) {
22
- const rect = elRef.nativeElement.getBoundingClientRect();
23
- return direction === 'horizontal' ? rect.width : rect.height;
24
- }
25
- export function getInputBoolean(v) {
26
- return typeof v === 'boolean' ? v : v === 'false' ? false : true;
27
- }
28
- export function getInputPositiveNumber(v, defaultValue) {
29
- if (v === null || v === undefined) {
30
- return defaultValue;
31
- }
32
- v = Number(v);
33
- return !isNaN(v) && v >= 0 ? v : defaultValue;
34
- }
35
- export function isUserSizesValid(unit, sizes) {
36
- // All sizes have to be not null and total should be 100
37
- if (unit === 'percent') {
38
- const total = sizes.reduce((_total, s) => (s !== null ? _total + s : _total), 0);
39
- return sizes.every(s => s !== null) && total && total > 99.9 && total < 100.1;
40
- }
41
- // A size at null is mandatory but only one.
42
- if (unit === 'pixel') {
43
- return sizes.filter(s => s === null).length === 1;
44
- }
45
- }
46
- export function getAreaMinSize(a) {
47
- if (a.size === null) {
48
- return null;
49
- }
50
- if (a.component.lockSize === true) {
51
- return a.size;
52
- }
53
- if (a.component.minSize === null) {
54
- return null;
55
- }
56
- if (a.component.minSize > a.size) {
57
- return a.size;
58
- }
59
- return a.component.minSize;
60
- }
61
- export function getAreaMaxSize(a) {
62
- if (a.size === null) {
63
- return null;
64
- }
65
- if (a.component.lockSize === true) {
66
- return a.size;
67
- }
68
- if (a.component.maxSize === null) {
69
- return null;
70
- }
71
- if (a.component.maxSize < a.size) {
72
- return a.size;
73
- }
74
- return a.component.maxSize;
75
- }
76
- export function getGutterSideAbsorptionCapacity(unit, sideAreas, pixels, allAreasSizePixel) {
77
- return sideAreas.reduce((acc, area) => {
78
- const res = getAreaAbsorptionCapacity(unit, area, acc.remain, allAreasSizePixel);
79
- acc.list.push(res);
80
- acc.remain = res && res.pixelRemain;
81
- return acc;
82
- }, { remain: pixels, list: [] });
83
- }
84
- function getAreaAbsorptionCapacity(unit, areaSnapshot, pixels, allAreasSizePixel) {
85
- // No pain no gain
86
- if (pixels === 0) {
87
- return {
88
- areaSnapshot,
89
- pixelAbsorb: 0,
90
- percentAfterAbsorption: areaSnapshot.sizePercentAtStart,
91
- pixelRemain: 0,
92
- };
93
- }
94
- // Area start at zero and need to be reduced, not possible
95
- if (areaSnapshot.sizePixelAtStart === 0 && pixels < 0) {
96
- return {
97
- areaSnapshot,
98
- pixelAbsorb: 0,
99
- percentAfterAbsorption: 0,
100
- pixelRemain: pixels,
101
- };
102
- }
103
- if (unit === 'percent') {
104
- return getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, allAreasSizePixel);
105
- }
106
- if (unit === 'pixel') {
107
- return getAreaAbsorptionCapacityPixel(areaSnapshot, pixels, allAreasSizePixel);
108
- }
109
- }
110
- function getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, allAreasSizePixel) {
111
- const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;
112
- const tempPercentSize = (tempPixelSize / allAreasSizePixel) * 100;
113
- // ENLARGE AREA
114
- if (pixels > 0) {
115
- // If maxSize & newSize bigger than it > absorb to max and return remaining pixels
116
- if (areaSnapshot.area.maxSize !== null && tempPercentSize > areaSnapshot.area.maxSize) {
117
- // Use area.area.maxSize as newPercentSize and return calculate pixels remaining
118
- const maxSizePixel = (areaSnapshot.area.maxSize / 100) * allAreasSizePixel;
119
- return {
120
- areaSnapshot,
121
- pixelAbsorb: maxSizePixel,
122
- percentAfterAbsorption: areaSnapshot.area.maxSize,
123
- pixelRemain: areaSnapshot.sizePixelAtStart + pixels - maxSizePixel,
124
- };
125
- }
126
- return {
127
- areaSnapshot,
128
- pixelAbsorb: pixels,
129
- percentAfterAbsorption: tempPercentSize > 100 ? 100 : tempPercentSize,
130
- pixelRemain: 0,
131
- };
132
- }
133
- // REDUCE AREA
134
- // tslint:disable-next-line: one-line
135
- else if (pixels < 0) {
136
- // If minSize & newSize smaller than it > absorb to min and return remaining pixels
137
- if (areaSnapshot.area.minSize !== null && tempPercentSize < areaSnapshot.area.minSize) {
138
- // Use area.area.minSize as newPercentSize and return calculate pixels remaining
139
- const minSizePixel = (areaSnapshot.area.minSize / 100) * allAreasSizePixel;
140
- return {
141
- areaSnapshot,
142
- pixelAbsorb: minSizePixel,
143
- percentAfterAbsorption: areaSnapshot.area.minSize,
144
- pixelRemain: areaSnapshot.sizePixelAtStart + pixels - minSizePixel,
145
- };
146
- }
147
- // If reduced under zero > return remaining pixels
148
- // tslint:disable-next-line: one-line
149
- else if (tempPercentSize < 0) {
150
- // Use 0 as newPercentSize and return calculate pixels remaining
151
- return {
152
- areaSnapshot,
153
- pixelAbsorb: -areaSnapshot.sizePixelAtStart,
154
- percentAfterAbsorption: 0,
155
- pixelRemain: pixels + areaSnapshot.sizePixelAtStart,
156
- };
157
- }
158
- return {
159
- areaSnapshot,
160
- pixelAbsorb: pixels,
161
- percentAfterAbsorption: tempPercentSize,
162
- pixelRemain: 0,
163
- };
164
- }
165
- }
166
- function getAreaAbsorptionCapacityPixel(areaSnapshot, pixels, containerSizePixel) {
167
- const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;
168
- // ENLARGE AREA
169
- if (pixels > 0) {
170
- // If maxSize & newSize bigger than it > absorb to max and return remaining pixels
171
- if (areaSnapshot.area.maxSize !== null && tempPixelSize > areaSnapshot.area.maxSize) {
172
- return {
173
- areaSnapshot,
174
- pixelAbsorb: areaSnapshot.area.maxSize - areaSnapshot.sizePixelAtStart,
175
- percentAfterAbsorption: -1,
176
- pixelRemain: tempPixelSize - areaSnapshot.area.maxSize,
177
- };
178
- }
179
- return {
180
- areaSnapshot,
181
- pixelAbsorb: pixels,
182
- percentAfterAbsorption: -1,
183
- pixelRemain: 0,
184
- };
185
- }
186
- // REDUCE AREA
187
- // tslint:disable-next-line: one-line
188
- else if (pixels < 0) {
189
- // If minSize & newSize smaller than it > absorb to min and return remaining pixels
190
- if (areaSnapshot.area.minSize !== null && tempPixelSize < areaSnapshot.area.minSize) {
191
- return {
192
- areaSnapshot,
193
- pixelAbsorb: areaSnapshot.area.minSize + pixels - tempPixelSize,
194
- percentAfterAbsorption: -1,
195
- pixelRemain: tempPixelSize - areaSnapshot.area.minSize,
196
- };
197
- }
198
- // If reduced under zero > return remaining pixels
199
- // tslint:disable-next-line: one-line
200
- else if (tempPixelSize < 0) {
201
- return {
202
- areaSnapshot,
203
- pixelAbsorb: -areaSnapshot.sizePixelAtStart,
204
- percentAfterAbsorption: -1,
205
- pixelRemain: pixels + areaSnapshot.sizePixelAtStart,
206
- };
207
- }
208
- return {
209
- areaSnapshot,
210
- pixelAbsorb: pixels,
211
- percentAfterAbsorption: -1,
212
- pixelRemain: 0,
213
- };
214
- }
215
- }
216
- export function updateAreaSize(unit, item) {
217
- if (unit === 'percent') {
218
- item.areaSnapshot.area.size = item.percentAfterAbsorption;
219
- }
220
- else if (unit === 'pixel') {
221
- // Update size except for the wildcard size area
222
- if (item.areaSnapshot.area.size !== null) {
223
- item.areaSnapshot.area.size = item.areaSnapshot.sizePixelAtStart + item.pixelAbsorb;
224
- }
225
- }
226
- }
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL3NwbGl0LXBhbmUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQThCO0lBQzlELGFBQWE7SUFDYixJQUNHLEtBQW9CLENBQUMsY0FBYyxLQUFLLFNBQVM7UUFDakQsS0FBb0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDL0M7UUFDQSxPQUFPO1lBQ0wsQ0FBQyxFQUFHLEtBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDbEQsQ0FBQyxFQUFHLEtBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87U0FDbkQsQ0FBQztLQUNIO0lBQ0QsYUFBYTtJQUNiLHFDQUFxQztTQUNoQyxJQUNGLEtBQW9CLENBQUMsT0FBTyxLQUFLLFNBQVM7UUFDMUMsS0FBb0IsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUMzQztRQUNBLE9BQU87WUFDTCxDQUFDLEVBQUcsS0FBb0IsQ0FBQyxPQUFPO1lBQ2hDLENBQUMsRUFBRyxLQUFvQixDQUFDLE9BQU87U0FDakMsQ0FBQztLQUNIO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFpQixFQUNqQixTQUFvQztJQUVwQyxNQUFNLElBQUksR0FBSSxLQUFLLENBQUMsYUFBNkIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRTFFLE9BQU8sU0FBUyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxDQUFNO0lBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FB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VSxjQUFjLENBQUMsSUFBeUIsRUFBRSxJQUFvQztJQUM1RixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztLQUMzRDtTQUFNLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtRQUMzQixnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDckY7S0FDRjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIE10eFNwbGl0QXJlYSxcclxuICBNdHhTcGxpdFBvaW50LFxyXG4gIE10eFNwbGl0QXJlYVNuYXBzaG90LFxyXG4gIE10eFNwbGl0U2lkZUFic29ycHRpb25DYXBhY2l0eSxcclxuICBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHksXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvaW50RnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IE10eFNwbGl0UG9pbnQgfCBudWxsIHtcclxuICAvLyBUb3VjaEV2ZW50XHJcbiAgaWYgKFxyXG4gICAgKGV2ZW50IGFzIFRvdWNoRXZlbnQpLmNoYW5nZWRUb3VjaGVzICE9PSB1bmRlZmluZWQgJiZcclxuICAgIChldmVudCBhcyBUb3VjaEV2ZW50KS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPiAwXHJcbiAgKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB4OiAoZXZlbnQgYXMgVG91Y2hFdmVudCkuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCxcclxuICAgICAgeTogKGV2ZW50IGFzIFRvdWNoRXZlbnQpLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFksXHJcbiAgICB9O1xyXG4gIH1cclxuICAvLyBNb3VzZUV2ZW50XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBvbmUtbGluZVxyXG4gIGVsc2UgaWYgKFxyXG4gICAgKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFggIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFkgIT09IHVuZGVmaW5lZFxyXG4gICkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgeDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFgsXHJcbiAgICAgIHk6IChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRZLFxyXG4gICAgfTtcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50UGl4ZWxTaXplKFxyXG4gIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xyXG4pOiBudW1iZXIge1xyXG4gIGNvbnN0IHJlY3QgPSAoZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gIHJldHVybiBkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHJlY3Qud2lkdGggOiByZWN0LmhlaWdodDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0Qm9vbGVhbih2OiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gdHlwZW9mIHYgPT09ICdib29sZWFuJyA/IHYgOiB2ID09PSAnZmFsc2UnID8gZmFsc2UgOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5wdXRQb3NpdGl2ZU51bWJlcjxUPih2OiBhbnksIGRlZmF1bHRWYWx1ZTogVCk6IG51bWJlciB8IFQge1xyXG4gIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHYgPSBOdW1iZXIodik7XHJcbiAgcmV0dXJuICFpc05hTih2KSAmJiB2ID49IDAgPyB2IDogZGVmYXVsdFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNVc2VyU2l6ZXNWYWxpZChcclxuICB1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLFxyXG4gIHNpemVzOiBBcnJheTxudW1iZXI+XHJcbik6IGJvb2xlYW4gfCBudW1iZXIgfCB2b2lkIHtcclxuICAvLyBBbGwgc2l6ZXMgaGF2ZSB0byBiZSBub3QgbnVsbCBhbmQgdG90YWwgc2hvdWxkIGJlIDEwMFxyXG4gIGlmICh1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgIGNvbnN0IHRvdGFsID0gc2l6ZXMucmVkdWNlKChfdG90YWwsIHMpID0+IChzICE9PSBudWxsID8gX3RvdGFsICsgcyA6IF90b3RhbCksIDApO1xyXG4gICAgcmV0dXJuIHNpemVzLmV2ZXJ5KHMgPT4gcyAhPT0gbnVsbCkgJiYgdG90YWwgJiYgdG90YWwgPiA5OS45ICYmIHRvdGFsIDwgMTAwLjE7XHJcbiAgfVxyXG5cclxuICAvLyBBIHNpemUgYXQgbnVsbCBpcyBtYW5kYXRvcnkgYnV0IG9ubHkgb25lLlxyXG4gIGlmICh1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICByZXR1cm4gc2l6ZXMuZmlsdGVyKHMgPT4gcyA9PT0gbnVsbCkubGVuZ3RoID09PSAxO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNaW5TaXplKGE6IE10eFNwbGl0QXJlYSk6IG51bGwgfCBudW1iZXIge1xyXG4gIGlmIChhLnNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50LmxvY2tTaXplID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm4gYS5zaXplO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1pblNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1pblNpemUgPiBhLnNpemUpIHtcclxuICAgIHJldHVybiBhLnNpemU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYS5jb21wb25lbnQubWluU2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNYXhTaXplKGE6IE10eFNwbGl0QXJlYSk6IG51bGwgfCBudW1iZXIge1xyXG4gIGlmIChhLnNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50LmxvY2tTaXplID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm4gYS5zaXplO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1heFNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1heFNpemUgPCBhLnNpemUpIHtcclxuICAgIHJldHVybiBhLnNpemU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYS5jb21wb25lbnQubWF4U2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEd1dHRlclNpZGVBYnNvcnB0aW9uQ2FwYWNpdHkoXHJcbiAgdW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJyxcclxuICBzaWRlQXJlYXM6IEFycmF5PE10eFNwbGl0QXJlYVNuYXBzaG90PixcclxuICBwaXhlbHM6IG51bWJlcixcclxuICBhbGxBcmVhc1NpemVQaXhlbDogbnVtYmVyXHJcbik6IE10eFNwbGl0U2lkZUFic29ycHRpb25DYXBhY2l0eSB7XHJcbiAgcmV0dXJuIHNpZGVBcmVhcy5yZWR1Y2UoXHJcbiAgICAoYWNjOiBhbnksIGFyZWEpID0+IHtcclxuICAgICAgY29uc3QgcmVzID0gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eSh1bml0LCBhcmVhLCBhY2MucmVtYWluLCBhbGxBcmVhc1NpemVQaXhlbCk7XHJcbiAgICAgIGFjYy5saXN0LnB1c2gocmVzKTtcclxuICAgICAgYWNjLnJlbWFpbiA9IHJlcyAmJiByZXMucGl4ZWxSZW1haW47XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LFxyXG4gICAgeyByZW1haW46IHBpeGVscywgbGlzdDogW10gfVxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkoXHJcbiAgdW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJyxcclxuICBhcmVhU25hcHNob3Q6IE10eFNwbGl0QXJlYVNuYXBzaG90LFxyXG4gIHBpeGVsczogbnVtYmVyLFxyXG4gIGFsbEFyZWFzU2l6ZVBpeGVsOiBudW1iZXJcclxuKTogTXR4U3BsaXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5IHwgdm9pZCB7XHJcbiAgLy8gTm8gcGFpbiBubyBnYWluXHJcbiAgaWYgKHBpeGVscyA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICBwaXhlbEFic29yYjogMCxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogYXJlYVNuYXBzaG90LnNpemVQZXJjZW50QXRTdGFydCxcclxuICAgICAgcGl4ZWxSZW1haW46IDAsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gQXJlYSBzdGFydCBhdCB6ZXJvIGFuZCBuZWVkIHRvIGJlIHJlZHVjZWQsIG5vdCBwb3NzaWJsZVxyXG4gIGlmIChhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCA9PT0gMCAmJiBwaXhlbHMgPCAwKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgIHBpeGVsQWJzb3JiOiAwLFxyXG4gICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAwLFxyXG4gICAgICBwaXhlbFJlbWFpbjogcGl4ZWxzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGlmICh1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgIHJldHVybiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGVyY2VudChhcmVhU25hcHNob3QsIHBpeGVscywgYWxsQXJlYXNTaXplUGl4ZWwpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHVuaXQgPT09ICdwaXhlbCcpIHtcclxuICAgIHJldHVybiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGl4ZWwoYXJlYVNuYXBzaG90LCBwaXhlbHMsIGFsbEFyZWFzU2l6ZVBpeGVsKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHlQZXJjZW50KFxyXG4gIGFyZWFTbmFwc2hvdDogTXR4U3BsaXRBcmVhU25hcHNob3QsXHJcbiAgcGl4ZWxzOiBudW1iZXIsXHJcbiAgYWxsQXJlYXNTaXplUGl4ZWw6IG51bWJlclxyXG4pOiBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkgfCB2b2lkIHtcclxuICBjb25zdCB0ZW1wUGl4ZWxTaXplID0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHM7XHJcbiAgY29uc3QgdGVtcFBlcmNlbnRTaXplID0gKHRlbXBQaXhlbFNpemUgLyBhbGxBcmVhc1NpemVQaXhlbCkgKiAxMDA7XHJcblxyXG4gIC8vIEVOTEFSR0UgQVJFQVxyXG5cclxuICBpZiAocGl4ZWxzID4gMCkge1xyXG4gICAgLy8gSWYgbWF4U2l6ZSAmIG5ld1NpemUgYmlnZ2VyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWF4IGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgIT09IG51bGwgJiYgdGVtcFBlcmNlbnRTaXplID4gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSkge1xyXG4gICAgICAvLyBVc2UgYXJlYS5hcmVhLm1heFNpemUgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICBjb25zdCBtYXhTaXplUGl4ZWwgPSAoYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSAvIDEwMCkgKiBhbGxBcmVhc1NpemVQaXhlbDtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IG1heFNpemVQaXhlbCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscyAtIG1heFNpemVQaXhlbCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogdGVtcFBlcmNlbnRTaXplID4gMTAwID8gMTAwIDogdGVtcFBlcmNlbnRTaXplLFxyXG4gICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBSRURVQ0UgQVJFQVxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25lLWxpbmVcclxuICBlbHNlIGlmIChwaXhlbHMgPCAwKSB7XHJcbiAgICAvLyBJZiBtaW5TaXplICYgbmV3U2l6ZSBzbWFsbGVyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWluIGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgIT09IG51bGwgJiYgdGVtcFBlcmNlbnRTaXplIDwgYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSkge1xyXG4gICAgICAvLyBVc2UgYXJlYS5hcmVhLm1pblNpemUgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICBjb25zdCBtaW5TaXplUGl4ZWwgPSAoYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSAvIDEwMCkgKiBhbGxBcmVhc1NpemVQaXhlbDtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IG1pblNpemVQaXhlbCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscyAtIG1pblNpemVQaXhlbCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIElmIHJlZHVjZWQgdW5kZXIgemVybyA+IHJldHVybiByZW1haW5pbmcgcGl4ZWxzXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9uZS1saW5lXHJcbiAgICBlbHNlIGlmICh0ZW1wUGVyY2VudFNpemUgPCAwKSB7XHJcbiAgICAgIC8vIFVzZSAwIGFzIG5ld1BlcmNlbnRTaXplIGFuZCByZXR1cm4gY2FsY3VsYXRlIHBpeGVscyByZW1haW5pbmdcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IC1hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAwLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBwaXhlbHMgKyBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogdGVtcFBlcmNlbnRTaXplLFxyXG4gICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGl4ZWwoXHJcbiAgYXJlYVNuYXBzaG90OiBNdHhTcGxpdEFyZWFTbmFwc2hvdCxcclxuICBwaXhlbHM6IG51bWJlcixcclxuICBjb250YWluZXJTaXplUGl4ZWw6IG51bWJlclxyXG4pOiBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkgfCB2b2lkIHtcclxuICBjb25zdCB0ZW1wUGl4ZWxTaXplID0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHM7XHJcblxyXG4gIC8vIEVOTEFSR0UgQVJFQVxyXG5cclxuICBpZiAocGl4ZWxzID4gMCkge1xyXG4gICAgLy8gSWYgbWF4U2l6ZSAmIG5ld1NpemUgYmlnZ2VyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWF4IGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgIT09IG51bGwgJiYgdGVtcFBpeGVsU2l6ZSA+IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgLSBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICBwaXhlbFJlbWFpbjogdGVtcFBpeGVsU2l6ZSAtIGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgIHBpeGVsQWJzb3JiOiBwaXhlbHMsXHJcbiAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBSRURVQ0UgQVJFQVxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25lLWxpbmVcclxuICBlbHNlIGlmIChwaXhlbHMgPCAwKSB7XHJcbiAgICAvLyBJZiBtaW5TaXplICYgbmV3U2l6ZSBzbWFsbGVyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWluIGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgIT09IG51bGwgJiYgdGVtcFBpeGVsU2l6ZSA8IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgKyBwaXhlbHMgLSB0ZW1wUGl4ZWxTaXplLFxyXG4gICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiB0ZW1wUGl4ZWxTaXplIC0gYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIElmIHJlZHVjZWQgdW5kZXIgemVybyA+IHJldHVybiByZW1haW5pbmcgcGl4ZWxzXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9uZS1saW5lXHJcbiAgICBlbHNlIGlmICh0ZW1wUGl4ZWxTaXplIDwgMCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICBwaXhlbEFic29yYjogLWFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0LFxyXG4gICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBwaXhlbHMgKyBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgIHBpeGVsUmVtYWluOiAwLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVBcmVhU2l6ZSh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBpdGVtOiBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkpIHtcclxuICBpZiAodW5pdCA9PT0gJ3BlcmNlbnQnKSB7XHJcbiAgICBpdGVtLmFyZWFTbmFwc2hvdC5hcmVhLnNpemUgPSBpdGVtLnBlcmNlbnRBZnRlckFic29ycHRpb247XHJcbiAgfSBlbHNlIGlmICh1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICAvLyBVcGRhdGUgc2l6ZSBleGNlcHQgZm9yIHRoZSB3aWxkY2FyZCBzaXplIGFyZWFcclxuICAgIGlmIChpdGVtLmFyZWFTbmFwc2hvdC5hcmVhLnNpemUgIT09IG51bGwpIHtcclxuICAgICAgaXRlbS5hcmVhU25hcHNob3QuYXJlYS5zaXplID0gaXRlbS5hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIGl0ZW0ucGl4ZWxBYnNvcmI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- @forward 'split-theme' hide theme;
2
- @forward 'split-theme' as mtx-split-*;
@@ -1,17 +0,0 @@
1
- @use 'sass:map';
2
- @use '~@angular/material' as mat;
3
-
4
- @mixin theme($theme) {
5
- $accent: map.get($theme, accent);
6
- $foreground: map.get($theme, foreground);
7
-
8
- .mtx-split {
9
- > .mtx-split-gutter {
10
- background-color: rgba(mat.get-color-from-palette($foreground, divider), .24);
11
-
12
- &:hover {
13
- background-color: mat.get-color-from-palette($accent);
14
- }
15
- }
16
- }
17
- }
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"MtxSplitPoint":{"__symbolic":"interface"},"MtxSplitArea":{"__symbolic":"interface"},"MtxSplitSnapshot":{"__symbolic":"interface"},"MtxSplitAreaSnapshot":{"__symbolic":"interface"},"MtxSplitSideAbsorptionCapacity":{"__symbolic":"interface"},"MtxSplitAreaAbsorptionCapacity":{"__symbolic":"interface"},"MtxSplitOutputData":{"__symbolic":"interface"},"MtxSplitOutputAreaSizes":{"__symbolic":"interface"},"getPointFromEvent":{"__symbolic":"function"},"getElementPixelSize":{"__symbolic":"function"},"getInputBoolean":{"__symbolic":"function","parameters":["v"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":45,"character":9,"module":"./utils"},"right":"boolean"},"thenExpression":{"__symbolic":"reference","name":"v"},"elseExpression":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"v"},"right":"false"},"thenExpression":false,"elseExpression":true}}},"getInputPositiveNumber":{"__symbolic":"function"},"isUserSizesValid":{"__symbolic":"function"},"getAreaMinSize":{"__symbolic":"function"},"getAreaMaxSize":{"__symbolic":"function"},"getGutterSideAbsorptionCapacity":{"__symbolic":"function","parameters":["unit","sideAreas","pixels","allAreasSizePixel"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"sideAreas"},"member":"reduce"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":120,"character":4,"module":"./utils"},{"remain":{"__symbolic":"reference","name":"pixels"},"list":[]}]}},"updateAreaSize":{"__symbolic":"function"},"MtxSplitModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":12}],"declarations":[{"__symbolic":"reference","name":"MtxSplitComponent"},{"__symbolic":"reference","name":"MtxSplitPaneDirective"}],"exports":[{"__symbolic":"reference","name":"MtxSplitComponent"},{"__symbolic":"reference","name":"MtxSplitPaneDirective"}]}]}],"members":{}},"MtxSplitComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":70,"character":1},"arguments":[{"selector":"mtx-split","exportAs":"mtxSplit","host":{"class":"mtx-split"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":76,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":77,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\r\n<ng-template ngFor [ngForOf]=\"displayedAreas\" let-index=\"index\" let-last=\"last\">\r\n <div #gutterEls class=\"mtx-split-gutter\"\r\n *ngIf=\"last === false\"\r\n [style.flex-basis.px]=\"gutterSize\"\r\n [style.order]=\"index * 2 + 1\"\r\n (mousedown)=\"startDragging($event, index * 2 + 1, index + 1)\"\r\n (touchstart)=\"startDragging($event, index * 2 + 1, index + 1)\"\r\n (mouseup)=\"clickGutter($event, index + 1)\"\r\n (touchend)=\"clickGutter($event, index + 1)\">\r\n <div class=\"mtx-split-gutter-handle\"></div>\r\n </div>\r\n</ng-template>\r\n","styles":[".mtx-split{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;overflow:hidden;width:100%;height:100%}.mtx-split>.mtx-split-gutter{position:relative;display:flex;flex-grow:0;flex-shrink:0;align-items:center;justify-content:center}.mtx-split>.mtx-split-gutter>.mtx-split-gutter-handle{position:absolute;opacity:0}.mtx-split>.mtx-split-pane{flex-grow:0;flex-shrink:0;overflow-x:hidden;overflow-y:auto}.mtx-split>.mtx-split-pane.mtx-split-pane-hidden{flex:0 1 0!important;overflow-x:hidden;overflow-y:hidden}.mtx-split.mtx-split-horizontal{flex-direction:row}.mtx-split.mtx-split-horizontal>.mtx-split-gutter{flex-direction:row;height:100%;cursor:col-resize}.mtx-split.mtx-split-horizontal>.mtx-split-gutter>.mtx-split-gutter-handle{width:11px;height:100%;left:-5px;right:5px}.mtx-split.mtx-split-horizontal>.mtx-split-pane{height:100%}.mtx-split.mtx-split-vertical{flex-direction:column}.mtx-split.mtx-split-vertical>.mtx-split-gutter{flex-direction:column;width:100%;cursor:row-resize}.mtx-split.mtx-split-vertical>.mtx-split-gutter>.mtx-split-gutter-handle{width:100%;height:11px;top:-5px;bottom:5px}.mtx-split.mtx-split-vertical>.mtx-split-pane{width:100%}.mtx-split.mtx-split-vertical>.mtx-split-pane.mtx-split-pane-hidden{max-width:0}.mtx-split.mtx-split-disabled>.mtx-split-gutter{cursor:default}.mtx-split.mtx-split-disabled>.mtx-split-gutter .mtx-split-gutter-handle{background-image:none}.mtx-split.mtx-split-transition.mtx-split-init:not(.mtx-dragging)>.mtx-split-gutter,.mtx-split.mtx-split-transition.mtx-split-init:not(.mtx-dragging)>.mtx-split-pane{transition:flex-basis .3s}\n"]}]}],"members":{"direction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"unit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"gutterSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":124,"character":3}}]}],"gutterStep":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":138,"character":3}}]}],"restrictMove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":3}}]}],"useTransition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":162,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":180,"character":3}}]}],"dir":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":198,"character":3}}]}],"gutterDblClickDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"dragStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":222,"character":3}}]}],"dragEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":223,"character":3}}]}],"gutterClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":224,"character":3}}]}],"gutterDblClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":225,"character":3}}]}],"transitionEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":228,"character":3}}]}],"gutterEls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":248,"character":3},"arguments":["gutterEls"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":251,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":252,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":253,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":254,"character":22}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"getNbGutters":[{"__symbolic":"method"}],"addArea":[{"__symbolic":"method"}],"removeArea":[{"__symbolic":"method"}],"updateArea":[{"__symbolic":"method"}],"showArea":[{"__symbolic":"method"}],"hideArea":[{"__symbolic":"method"}],"getVisibleAreaSizes":[{"__symbolic":"method"}],"setVisibleAreaSizes":[{"__symbolic":"method"}],"build":[{"__symbolic":"method"}],"refreshStyleSizes":[{"__symbolic":"method"}],"clickGutter":[{"__symbolic":"method"}],"startDragging":[{"__symbolic":"method"}],"dragEvent":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"MtxSplitPaneDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"mtx-split-pane, [mtx-split-pane]","exportAs":"mtxSplitPane"}]}],"members":{"order":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"minSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"maxSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"lockSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":104,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":105,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":106,"character":22},{"__symbolic":"reference","name":"MtxSplitComponent"}]}],"ngOnInit":[{"__symbolic":"method"}],"setStyleOrder":[{"__symbolic":"method"}],"setStyleFlex":[{"__symbolic":"method"}],"lockEvents":[{"__symbolic":"method"}],"unlockEvents":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}},"origins":{"MtxSplitPoint":"./interface","MtxSplitArea":"./interface","MtxSplitSnapshot":"./interface","MtxSplitAreaSnapshot":"./interface","MtxSplitSideAbsorptionCapacity":"./interface","MtxSplitAreaAbsorptionCapacity":"./interface","MtxSplitOutputData":"./interface","MtxSplitOutputAreaSizes":"./interface","getPointFromEvent":"./utils","getElementPixelSize":"./utils","getInputBoolean":"./utils","getInputPositiveNumber":"./utils","isUserSizesValid":"./utils","getAreaMinSize":"./utils","getAreaMaxSize":"./utils","getGutterSideAbsorptionCapacity":"./utils","updateAreaSize":"./utils","MtxSplitModule":"./split.module","MtxSplitComponent":"./split.component","MtxSplitPaneDirective":"./split-pane.directive"},"importAs":"@ng-matero/extensions/split-pane"}