@spartan-ng/brain 0.0.1-alpha.573 → 0.0.1-alpha.575

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 (33) hide show
  1. package/alert-dialog/index.d.ts +9 -9
  2. package/dialog/index.d.ts +12 -10
  3. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +20 -32
  4. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/spartan-ng-brain-autocomplete.mjs.map +1 -1
  6. package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -1
  7. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
  8. package/fesm2022/spartan-ng-brain-dialog.mjs +21 -23
  9. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  10. package/fesm2022/spartan-ng-brain-hover-card.mjs +9 -15
  11. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
  12. package/fesm2022/spartan-ng-brain-popover.mjs +11 -27
  13. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  14. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
  15. package/fesm2022/spartan-ng-brain-resizable.mjs.map +1 -1
  16. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  17. package/fesm2022/spartan-ng-brain-sheet.mjs +19 -30
  18. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  19. package/fesm2022/spartan-ng-brain-switch.mjs +2 -2
  20. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -1
  21. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  22. package/fesm2022/spartan-ng-brain-toggle-group.mjs.map +1 -1
  23. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
  24. package/fesm2022/spartan-ng-brain-tooltip.mjs +6 -2
  25. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  26. package/hover-card/index.d.ts +6 -5
  27. package/package.json +1 -1
  28. package/popover/index.d.ts +7 -11
  29. package/resizable/index.d.ts +7 -6
  30. package/sheet/index.d.ts +8 -7
  31. package/switch/index.d.ts +2 -2
  32. package/tabs/index.d.ts +1 -1
  33. package/tooltip/index.d.ts +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-resizable.mjs","sources":["../tmp-esm2022/resizable/lib/brn-resizable-panel.js","../tmp-esm2022/resizable/lib/brn-resizable-group.js","../tmp-esm2022/resizable/lib/brn-resizable-handle.js","../tmp-esm2022/resizable/spartan-ng-brain-resizable.js"],"sourcesContent":["import { booleanAttribute, computed, Directive, ElementRef, inject, input, numberAttribute, signal, } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\nimport * as i0 from \"@angular/core\";\nlet nextId = 0;\nexport class BrnResizablePanel {\n /** Unique ID for the panel. */\n id = input(`brn-resizable-panel-${++nextId}`);\n /** Reference to the parent {@link BrnResizableGroup}. */\n _panelGroup = inject(BrnResizableGroup);\n /** Host DOM element reference. */\n el = inject((ElementRef));\n /**\n * The default size of the panel (percentage of container space).\n * - `undefined` → group decides initial size.\n * - Number → interpreted as percentage (0–100).\n */\n defaultSize = input(undefined, { transform: numberAttribute });\n /** The minimum size this panel can shrink to (percentage). */\n minSize = input(0, { transform: numberAttribute });\n /**\t The maximum size this panel can grow to (percentage). */\n maxSize = input(100, { transform: numberAttribute });\n /** Whether this panel can be collapsed entirely. */\n collapsible = input(true, { transform: booleanAttribute });\n /** Reactive signal holding the current size of the panel. */\n _panelSize = signal(100);\n /**\n * CSS flex style for this panel, derived from its current size.\n * Format: `\"flex-grow flex-shrink flex-basis\"`.\n *\n * Example: `\"25 1 0\"` means 25% width (or height in vertical layout).\n */\n _flex = computed(() => `${this._panelSize()} 1 0`);\n /**\n * Sets the size of the panel.\n * @param size New size (percentage of container space).\n */\n setSize(size) {\n this._panelSize.set(size);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizablePanel, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnResizablePanel, isStandalone: true, selector: \"brn-resizable-panel, [brnResizablePanel]\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, defaultSize: { classPropertyName: \"defaultSize\", publicName: \"defaultSize\", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: \"minSize\", publicName: \"minSize\", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: \"maxSize\", publicName: \"maxSize\", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: \"collapsible\", publicName: \"collapsible\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"data-panel\": \"\", \"data-slot\": \"resizable-panel\" }, properties: { \"attr.data-panel-group-id\": \"_panelGroup.id()\", \"attr.data-panel-id\": \"id()\", \"attr.data-panel-size\": \"_panelSize()\", \"id\": \"id()\", \"style.flex\": \"_flex()\", \"style.overflow\": \"\\\"hidden\\\"\" } }, exportAs: [\"brnResizablePanel\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizablePanel, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-panel, [brnResizablePanel]',\n exportAs: 'brnResizablePanel',\n host: {\n '[attr.data-panel-group-id]': '_panelGroup.id()',\n '[attr.data-panel-id]': 'id()',\n '[attr.data-panel-size]': '_panelSize()',\n '[id]': 'id()',\n '[style.flex]': '_flex()',\n '[style.overflow]': '\"hidden\"',\n 'data-panel': '',\n 'data-slot': 'resizable-panel',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmVzaXphYmxlL3NyYy9saWIvYnJuLXJlc2l6YWJsZS1wYW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBZ0JmLE1BQU0sT0FBTyxpQkFBaUI7SUFDN0IsaUNBQWlDO0lBQ2pCLEVBQUUsR0FBRyxLQUFLLENBQVMsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUV0RSx5REFBeUQ7SUFDdEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELGtDQUFrQztJQUNsQixFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNhLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFL0UsOERBQThEO0lBRTlDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFbkUsK0RBQStEO0lBQy9DLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFckUsb0RBQW9EO0lBQ3BDLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUUzRSw2REFBNkQ7SUFDMUMsVUFBVSxHQUFHLE1BQU0sQ0FBUyxHQUFHLENBQUMsQ0FBQztJQUVwRDs7Ozs7T0FLRztJQUNnQixLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0RTs7O09BR0c7SUFDSSxPQUFPLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzBIQTVDVyxpQkFBaUI7OEdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFkN0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixJQUFJLEVBQUU7d0JBQ0wsNEJBQTRCLEVBQUUsa0JBQWtCO3dCQUNoRCxzQkFBc0IsRUFBRSxNQUFNO3dCQUM5Qix3QkFBd0IsRUFBRSxjQUFjO3dCQUN4QyxNQUFNLEVBQUUsTUFBTTt3QkFDZCxjQUFjLEVBQUUsU0FBUzt3QkFDekIsa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsWUFBWSxFQUFFLEVBQUU7d0JBQ2hCLFdBQVcsRUFBRSxpQkFBaUI7cUJBQzlCO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Y29tcHV0ZWQsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0bnVtYmVyQXR0cmlidXRlLFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuUmVzaXphYmxlR3JvdXAgfSBmcm9tICcuL2Jybi1yZXNpemFibGUtZ3JvdXAnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1wYW5lbCwgW2JyblJlc2l6YWJsZVBhbmVsXScsXG5cdGV4cG9ydEFzOiAnYnJuUmVzaXphYmxlUGFuZWwnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtaWRdJzogJ19wYW5lbEdyb3VwLmlkKCknLFxuXHRcdCdbYXR0ci5kYXRhLXBhbmVsLWlkXSc6ICdpZCgpJyxcblx0XHQnW2F0dHIuZGF0YS1wYW5lbC1zaXplXSc6ICdfcGFuZWxTaXplKCknLFxuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHRcdCdbc3R5bGUuZmxleF0nOiAnX2ZsZXgoKScsXG5cdFx0J1tzdHlsZS5vdmVyZmxvd10nOiAnXCJoaWRkZW5cIicsXG5cdFx0J2RhdGEtcGFuZWwnOiAnJyxcblx0XHQnZGF0YS1zbG90JzogJ3Jlc2l6YWJsZS1wYW5lbCcsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJyblJlc2l6YWJsZVBhbmVsIHtcblx0LyoqIFVuaXF1ZSBJRCBmb3IgdGhlIHBhbmVsLiAgICovXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oYGJybi1yZXNpemFibGUtcGFuZWwtJHsrK25leHRJZH1gKTtcblxuXHQvKiogUmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQge0BsaW5rIEJyblJlc2l6YWJsZUdyb3VwfS4gKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9wYW5lbEdyb3VwID0gaW5qZWN0KEJyblJlc2l6YWJsZUdyb3VwKTtcblxuXHQvKiogSG9zdCBET00gZWxlbWVudCByZWZlcmVuY2UuICovXG5cdHB1YmxpYyByZWFkb25seSBlbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cblx0LyoqXG5cdCAqIFRoZSBkZWZhdWx0IHNpemUgb2YgdGhlIHBhbmVsIChwZXJjZW50YWdlIG9mIGNvbnRhaW5lciBzcGFjZSkuXG5cdCAqIC0gYHVuZGVmaW5lZGAg4oaSIGdyb3VwIGRlY2lkZXMgaW5pdGlhbCBzaXplLlxuXHQgKiAtIE51bWJlciDihpIgaW50ZXJwcmV0ZWQgYXMgcGVyY2VudGFnZSAoMOKAkzEwMCkuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFNpemUgPSBpbnB1dCh1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cblx0LyoqIFRoZSBtaW5pbXVtIHNpemUgdGhpcyBwYW5lbCBjYW4gc2hyaW5rIHRvIChwZXJjZW50YWdlKS4gKi9cblxuXHRwdWJsaWMgcmVhZG9ubHkgbWluU2l6ZSA9IGlucHV0KDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cblx0LyoqXHQgVGhlIG1heGltdW0gc2l6ZSB0aGlzIHBhbmVsIGNhbiBncm93IHRvIChwZXJjZW50YWdlKS4gICAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgbWF4U2l6ZSA9IGlucHV0KDEwMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuXHQvKiogV2hldGhlciB0aGlzIHBhbmVsIGNhbiBiZSBjb2xsYXBzZWQgZW50aXJlbHkuICovXG5cdHB1YmxpYyByZWFkb25seSBjb2xsYXBzaWJsZSA9IGlucHV0KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdC8qKiBSZWFjdGl2ZSBzaWduYWwgaG9sZGluZyB0aGUgY3VycmVudCBzaXplIG9mIHRoZSBwYW5lbC4gKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9wYW5lbFNpemUgPSBzaWduYWw8bnVtYmVyPigxMDApO1xuXG5cdC8qKlxuXHQgKiBDU1MgZmxleCBzdHlsZSBmb3IgdGhpcyBwYW5lbCwgZGVyaXZlZCBmcm9tIGl0cyBjdXJyZW50IHNpemUuXG5cdCAqIEZvcm1hdDogYFwiZmxleC1ncm93IGZsZXgtc2hyaW5rIGZsZXgtYmFzaXNcImAuXG5cdCAqXG5cdCAqIEV4YW1wbGU6IGBcIjI1IDEgMFwiYCBtZWFucyAyNSUgd2lkdGggKG9yIGhlaWdodCBpbiB2ZXJ0aWNhbCBsYXlvdXQpLlxuXHQgKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9mbGV4ID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5fcGFuZWxTaXplKCl9IDEgMGApO1xuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBzaXplIG9mIHRoZSBwYW5lbC5cblx0ICogQHBhcmFtIHNpemUgTmV3IHNpemUgKHBlcmNlbnRhZ2Ugb2YgY29udGFpbmVyIHNwYWNlKS5cblx0ICovXG5cdHB1YmxpYyBzZXRTaXplKHNpemU6IG51bWJlcikge1xuXHRcdHRoaXMuX3BhbmVsU2l6ZS5zZXQoc2l6ZSk7XG5cdH1cbn1cbiJdfQ==","import { afterNextRender, contentChildren, Directive, DOCUMENT, ElementRef, inject, input, model, NgZone, output, } from '@angular/core';\nimport { BrnResizablePanel } from './brn-resizable-panel';\nimport * as i0 from \"@angular/core\";\nlet nextId = 0;\nexport class BrnResizableGroup {\n /** The id of the BrnResizableGroup */\n id = input(`brn-resizable-group-${++nextId}`);\n /** Host element reference. */\n _el = inject((ElementRef));\n /** Group orientation */\n direction = input('horizontal');\n /** @internal Access all the panels within the group */\n panels = contentChildren(BrnResizablePanel);\n /** event when resize starts */\n dragStart = output();\n /** event when resize ends */\n dragEnd = output();\n /** Resize panel group to the specified layout ([1 - 100, ...]). */\n layout = model([]);\n /** Called when group layout changes */\n layoutChanged = output();\n _document = inject(DOCUMENT);\n _zone = inject(NgZone);\n _resizeRaf = null;\n _pendingSizes = null;\n constructor() {\n afterNextRender(() => {\n this._initializePanelSizes();\n });\n }\n _initializePanelSizes() {\n const panels = this.panels();\n const totalPanels = panels.length;\n if (totalPanels === 0)\n return;\n const sizes = [];\n panels.forEach((panel, index) => {\n const defaultSize = panel.defaultSize() ?? this.layout()[index];\n const size = defaultSize !== undefined ? defaultSize : 100 / totalPanels;\n sizes.push(size);\n panel.setSize(size);\n });\n if (this.layout().toString() !== sizes.toString()) {\n this._setLayout(sizes);\n }\n }\n startResize(handleIndex, event) {\n event.preventDefault();\n const cursor = this.direction() === 'vertical' ? 'row-resize' : 'col-resize';\n this._document.body.style.cursor = `${cursor}`;\n const sizes = [...this.layout()];\n this.dragStart.emit();\n const startPosition = this._getEventPosition(event);\n const startSizes = [...sizes];\n const handleMove = (moveEvent) => {\n this._zone.runOutsideAngular(() => {\n this._handleResize(moveEvent, handleIndex, startPosition, startSizes);\n });\n };\n const handleEnd = () => {\n this._zone.run(() => this._endResize());\n this._document.body.style.cursor = 'default';\n this._document.removeEventListener('mousemove', handleMove);\n this._document.removeEventListener('touchmove', handleMove);\n this._document.removeEventListener('mouseup', handleEnd);\n this._document.removeEventListener('touchend', handleEnd);\n };\n this._zone.runOutsideAngular(() => {\n this._document.addEventListener('mousemove', handleMove);\n this._document.addEventListener('touchmove', handleMove);\n this._document.addEventListener('mouseup', handleEnd);\n this._document.addEventListener('touchend', handleEnd);\n });\n }\n _handleResize(event, handleIndex, startPosition, startSizes) {\n const currentPosition = this._getEventPosition(event);\n const delta = currentPosition - startPosition;\n const containerSize = this._getContainerSize();\n const deltaPercentage = (delta / containerSize) * 100;\n const newSizes = [...startSizes];\n const panels = this.panels();\n const leftPanel = panels[handleIndex];\n const rightPanel = panels[handleIndex + 1];\n if (!leftPanel || !rightPanel)\n return;\n const leftMin = leftPanel.minSize();\n const leftMax = leftPanel.maxSize();\n const rightMin = rightPanel.minSize();\n const rightMax = rightPanel.maxSize();\n let newLeftSize = startSizes[handleIndex] + deltaPercentage;\n let newRightSize = startSizes[handleIndex + 1] - deltaPercentage;\n newLeftSize = Math.max(leftMin, Math.min(leftMax, newLeftSize));\n newRightSize = Math.max(rightMin, Math.min(rightMax, newRightSize));\n const totalSize = newLeftSize + newRightSize;\n const originalTotal = startSizes[handleIndex] + startSizes[handleIndex + 1];\n if (Math.abs(totalSize - originalTotal) < 0.01) {\n newSizes[handleIndex] = newLeftSize;\n newSizes[handleIndex + 1] = newRightSize;\n // batch update\n this._queueResize(newSizes);\n }\n }\n _queueResize(sizes) {\n this._pendingSizes = sizes;\n if (this._resizeRaf !== null)\n return;\n this._resizeRaf = requestAnimationFrame(() => {\n this._resizeRaf = null;\n if (this._pendingSizes) {\n this._setLayout(this._pendingSizes);\n this.updatePanelStyles();\n this._pendingSizes = null;\n }\n });\n }\n _endResize() {\n if (this._resizeRaf !== null) {\n cancelAnimationFrame(this._resizeRaf);\n this._resizeRaf = null;\n this._pendingSizes = null;\n }\n this.dragEnd.emit();\n }\n updatePanelStyles() {\n const panels = this.panels();\n const sizes = this.layout();\n panels.forEach((panel, index) => {\n const size = sizes[index];\n if (size !== undefined) {\n panel.setSize(size);\n }\n });\n }\n _getEventPosition(event) {\n const layout = this.direction();\n if (event instanceof MouseEvent) {\n return layout === 'vertical' ? event.clientY : event.clientX;\n }\n else {\n const touch = event.touches[0];\n return layout === 'vertical' ? touch.clientY : touch.clientX;\n }\n }\n _getContainerSize() {\n const element = this._el.nativeElement;\n const layout = this.direction();\n return layout === 'vertical' ? element.offsetHeight : element.offsetWidth;\n }\n collapsePanel(index) {\n const panels = this.panels();\n const panel = panels[index];\n if (!panel || !panel.collapsible())\n return;\n const sizes = [...this.layout()];\n const isCollapsed = sizes[index] === 0;\n if (isCollapsed) {\n const panelDefaultSize = panel.defaultSize();\n const defaultSize = panelDefaultSize !== undefined ? panelDefaultSize / panels.length : 100 / panels.length;\n sizes[index] = defaultSize;\n const totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n const scale = (100 - defaultSize) / totalOthers;\n sizes.forEach((size, i) => {\n if (i !== index) {\n sizes[i] = size * scale;\n }\n });\n }\n else {\n const collapsedSize = sizes[index];\n sizes[index] = 0;\n const totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n const scale = (totalOthers + collapsedSize) / totalOthers;\n sizes.forEach((size, i) => {\n if (i !== index) {\n sizes[i] = size * scale;\n }\n });\n }\n this._setLayout(sizes);\n this.updatePanelStyles();\n }\n _setLayout(sizes) {\n this.layout.set(sizes);\n this.layoutChanged.emit(sizes);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnResizableGroup, isStandalone: true, selector: \"brn-resizable-group, [brnResizableGroup]\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: \"direction\", publicName: \"direction\", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: \"layout\", publicName: \"layout\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragStart: \"dragStart\", dragEnd: \"dragEnd\", layout: \"layoutChange\", layoutChanged: \"layoutChanged\" }, host: { attributes: { \"data-panel-group\": \"\", \"data-slot\": \"resizable-panel-group\" }, properties: { \"attr.data-panel-group-direction\": \"direction()\", \"attr.data-panel-group-id\": \"id()\", \"id\": \"id()\" } }, queries: [{ propertyName: \"panels\", predicate: BrnResizablePanel, isSignal: true }], exportAs: [\"brnResizableGroup\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableGroup, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-group, [brnResizableGroup]',\n exportAs: 'brnResizableGroup',\n host: {\n '[attr.data-panel-group-direction]': 'direction()',\n '[attr.data-panel-group-id]': 'id()',\n '[id]': 'id()',\n 'data-panel-group': '',\n 'data-slot': 'resizable-panel-group',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmVzaXphYmxlL3NyYy9saWIvYnJuLXJlc2l6YWJsZS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFhZixNQUFNLE9BQU8saUJBQWlCO0lBQzdCLHNDQUFzQztJQUN0QixFQUFFLEdBQUcsS0FBSyxDQUFTLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFdEUsOEJBQThCO0lBQ2IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXZELHdCQUF3QjtJQUNSLFNBQVMsR0FBRyxLQUFLLENBQTRCLFlBQVksQ0FBQyxDQUFDO0lBRTNFLHVEQUF1RDtJQUN2QyxNQUFNLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFNUQsK0JBQStCO0lBQ2YsU0FBUyxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRTNDLDZCQUE2QjtJQUNiLE9BQU8sR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV6QyxtRUFBbUU7SUFDbkQsTUFBTSxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztJQUU3Qyx1Q0FBdUM7SUFDdkIsYUFBYSxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBRWxDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0IsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENB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RyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sS0FBSyxHQUFHLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUUxRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDakIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7WUFDRixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBZTtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzBIQXZPVyxpQkFBaUI7OEdBQWpCLGlCQUFpQixrekJBV1ksaUJBQWlCOzsyRkFYOUMsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwwQ0FBMEM7b0JBQ3BELFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDTCxtQ0FBbUMsRUFBRSxhQUFhO3dCQUNsRCw0QkFBNEIsRUFBRSxNQUFNO3dCQUNwQyxNQUFNLEVBQUUsTUFBTTt3QkFDZCxrQkFBa0IsRUFBRSxFQUFFO3dCQUN0QixXQUFXLEVBQUUsdUJBQXVCO3FCQUNwQztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29udGVudENoaWxkcmVuLFxuXHREaXJlY3RpdmUsXG5cdERPQ1VNRU5ULFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRtb2RlbCxcblx0Tmdab25lLFxuXHRvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuUmVzaXphYmxlUGFuZWwgfSBmcm9tICcuL2Jybi1yZXNpemFibGUtcGFuZWwnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1ncm91cCwgW2JyblJlc2l6YWJsZUdyb3VwXScsXG5cdGV4cG9ydEFzOiAnYnJuUmVzaXphYmxlR3JvdXAnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtZGlyZWN0aW9uXSc6ICdkaXJlY3Rpb24oKScsXG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtaWRdJzogJ2lkKCknLFxuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHRcdCdkYXRhLXBhbmVsLWdyb3VwJzogJycsXG5cdFx0J2RhdGEtc2xvdCc6ICdyZXNpemFibGUtcGFuZWwtZ3JvdXAnLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5SZXNpemFibGVHcm91cCB7XG5cdC8qKiBUaGUgaWQgb2YgdGhlIEJyblJlc2l6YWJsZUdyb3VwICovXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oYGJybi1yZXNpemFibGUtZ3JvdXAtJHsrK25leHRJZH1gKTtcblxuXHQvKiogSG9zdCBlbGVtZW50IHJlZmVyZW5jZS4gKi9cblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG5cdC8qKiBHcm91cCBvcmllbnRhdGlvbiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgZGlyZWN0aW9uID0gaW5wdXQ8J2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJz4oJ2hvcml6b250YWwnKTtcblxuXHQvKiogQGludGVybmFsIEFjY2VzcyBhbGwgdGhlIHBhbmVscyB3aXRoaW4gdGhlIGdyb3VwICovXG5cdHB1YmxpYyByZWFkb25seSBwYW5lbHMgPSBjb250ZW50Q2hpbGRyZW4oQnJuUmVzaXphYmxlUGFuZWwpO1xuXG5cdC8qKiBldmVudCB3aGVuIHJlc2l6ZSBzdGFydHMgKi9cblx0cHVibGljIHJlYWRvbmx5IGRyYWdTdGFydCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdC8qKiBldmVudCB3aGVuIHJlc2l6ZSBlbmRzICovXG5cdHB1YmxpYyByZWFkb25seSBkcmFnRW5kID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0LyoqIFJlc2l6ZSBwYW5lbCBncm91cCB0byB0aGUgc3BlY2lmaWVkIGxheW91dCAoWzEgLSAxMDAsIC4uLl0pLiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgbGF5b3V0ID0gbW9kZWw8bnVtYmVyW10+KFtdKTtcblxuXHQvKiogQ2FsbGVkIHdoZW4gZ3JvdXAgbGF5b3V0IGNoYW5nZXMgKi9cblx0cHVibGljIHJlYWRvbmx5IGxheW91dENoYW5nZWQgPSBvdXRwdXQ8bnVtYmVyW10+KCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuXHRwcml2YXRlIF9yZXNpemVSYWY6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG5cdHByaXZhdGUgX3BlbmRpbmdTaXplczogbnVtYmVyW10gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5faW5pdGlhbGl6ZVBhbmVsU2l6ZXMoKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRpYWxpemVQYW5lbFNpemVzKCk6IHZvaWQge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cdFx0Y29uc3QgdG90YWxQYW5lbHMgPSBwYW5lbHMubGVuZ3RoO1xuXG5cdFx0aWYgKHRvdGFsUGFuZWxzID09PSAwKSByZXR1cm47XG5cblx0XHRjb25zdCBzaXplczogbnVtYmVyW10gPSBbXTtcblxuXHRcdHBhbmVscy5mb3JFYWNoKChwYW5lbCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGRlZmF1bHRTaXplID0gcGFuZWwuZGVmYXVsdFNpemUoKSA/PyB0aGlzLmxheW91dCgpW2luZGV4XTtcblx0XHRcdGNvbnN0IHNpemUgPSBkZWZhdWx0U2l6ZSAhPT0gdW5kZWZpbmVkID8gZGVmYXVsdFNpemUgOiAxMDAgLyB0b3RhbFBhbmVscztcblx0XHRcdHNpemVzLnB1c2goc2l6ZSk7XG5cdFx0XHRwYW5lbC5zZXRTaXplKHNpemUpO1xuXHRcdH0pO1xuXG5cdFx0aWYgKHRoaXMubGF5b3V0KCkudG9TdHJpbmcoKSAhPT0gc2l6ZXMudG9TdHJpbmcoKSkge1xuXHRcdFx0dGhpcy5fc2V0TGF5b3V0KHNpemVzKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc3RhcnRSZXNpemUoaGFuZGxlSW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGNvbnN0IGN1cnNvciA9IHRoaXMuZGlyZWN0aW9uKCkgPT09ICd2ZXJ0aWNhbCcgPyAncm93LXJlc2l6ZScgOiAnY29sLXJlc2l6ZSc7XG5cdFx0dGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSBgJHtjdXJzb3J9YDtcblx0XHRjb25zdCBzaXplcyA9IFsuLi50aGlzLmxheW91dCgpXTtcblx0XHR0aGlzLmRyYWdTdGFydC5lbWl0KCk7XG5cblx0XHRjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5fZ2V0RXZlbnRQb3NpdGlvbihldmVudCk7XG5cdFx0Y29uc3Qgc3RhcnRTaXplcyA9IFsuLi5zaXplc107XG5cblx0XHRjb25zdCBoYW5kbGVNb3ZlID0gKG1vdmVFdmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHtcblx0XHRcdHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLl9oYW5kbGVSZXNpemUobW92ZUV2ZW50LCBoYW5kbGVJbmRleCwgc3RhcnRQb3NpdGlvbiwgc3RhcnRTaXplcyk7XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgaGFuZGxlRW5kID0gKCkgPT4ge1xuXHRcdFx0dGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5fZW5kUmVzaXplKCkpO1xuXG5cdFx0XHR0aGlzLl9kb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0Jztcblx0XHRcdHRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdmUpO1xuXHRcdFx0dGhpcy5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgaGFuZGxlTW92ZSk7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlRW5kKTtcblx0XHRcdHRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgaGFuZGxlRW5kKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBoYW5kbGVNb3ZlKTtcblx0XHRcdHRoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGhhbmRsZU1vdmUpO1xuXHRcdFx0dGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZUVuZCk7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGhhbmRsZUVuZCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9oYW5kbGVSZXNpemUoXG5cdFx0ZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxuXHRcdGhhbmRsZUluZGV4OiBudW1iZXIsXG5cdFx0c3RhcnRQb3NpdGlvbjogbnVtYmVyLFxuXHRcdHN0YXJ0U2l6ZXM6IG51bWJlcltdLFxuXHQpOiB2b2lkIHtcblx0XHRjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLl9nZXRFdmVudFBvc2l0aW9uKGV2ZW50KTtcblx0XHRjb25zdCBkZWx0YSA9IGN1cnJlbnRQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb247XG5cdFx0Y29uc3QgY29udGFpbmVyU2l6ZSA9IHRoaXMuX2dldENvbnRhaW5lclNpemUoKTtcblx0XHRjb25zdCBkZWx0YVBlcmNlbnRhZ2UgPSAoZGVsdGEgLyBjb250YWluZXJTaXplKSAqIDEwMDtcblxuXHRcdGNvbnN0IG5ld1NpemVzID0gWy4uLnN0YXJ0U2l6ZXNdO1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cblx0XHRjb25zdCBsZWZ0UGFuZWwgPSBwYW5lbHNbaGFuZGxlSW5kZXhdO1xuXHRcdGNvbnN0IHJpZ2h0UGFuZWwgPSBwYW5lbHNbaGFuZGxlSW5kZXggKyAxXTtcblxuXHRcdGlmICghbGVmdFBhbmVsIHx8ICFyaWdodFBhbmVsKSByZXR1cm47XG5cblx0XHRjb25zdCBsZWZ0TWluID0gbGVmdFBhbmVsLm1pblNpemUoKTtcblx0XHRjb25zdCBsZWZ0TWF4ID0gbGVmdFBhbmVsLm1heFNpemUoKTtcblx0XHRjb25zdCByaWdodE1pbiA9IHJpZ2h0UGFuZWwubWluU2l6ZSgpO1xuXHRcdGNvbnN0IHJpZ2h0TWF4ID0gcmlnaHRQYW5lbC5tYXhTaXplKCk7XG5cblx0XHRsZXQgbmV3TGVmdFNpemUgPSBzdGFydFNpemVzW2hhbmRsZUluZGV4XSArIGRlbHRhUGVyY2VudGFnZTtcblx0XHRsZXQgbmV3UmlnaHRTaXplID0gc3RhcnRTaXplc1toYW5kbGVJbmRleCArIDFdIC0gZGVsdGFQZXJjZW50YWdlO1xuXG5cdFx0bmV3TGVmdFNpemUgPSBNYXRoLm1heChsZWZ0TWluLCBNYXRoLm1pbihsZWZ0TWF4LCBuZXdMZWZ0U2l6ZSkpO1xuXHRcdG5ld1JpZ2h0U2l6ZSA9IE1hdGgubWF4KHJpZ2h0TWluLCBNYXRoLm1pbihyaWdodE1heCwgbmV3UmlnaHRTaXplKSk7XG5cblx0XHRjb25zdCB0b3RhbFNpemUgPSBuZXdMZWZ0U2l6ZSArIG5ld1JpZ2h0U2l6ZTtcblx0XHRjb25zdCBvcmlnaW5hbFRvdGFsID0gc3RhcnRTaXplc1toYW5kbGVJbmRleF0gKyBzdGFydFNpemVzW2hhbmRsZUluZGV4ICsgMV07XG5cblx0XHRpZiAoTWF0aC5hYnModG90YWxTaXplIC0gb3JpZ2luYWxUb3RhbCkgPCAwLjAxKSB7XG5cdFx0XHRuZXdTaXplc1toYW5kbGVJbmRleF0gPSBuZXdMZWZ0U2l6ZTtcblx0XHRcdG5ld1NpemVzW2hhbmRsZUluZGV4ICsgMV0gPSBuZXdSaWdodFNpemU7XG5cblx0XHRcdC8vIGJhdGNoIHVwZGF0ZVxuXHRcdFx0dGhpcy5fcXVldWVSZXNpemUobmV3U2l6ZXMpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX3F1ZXVlUmVzaXplKHNpemVzOiBudW1iZXJbXSk6IHZvaWQge1xuXHRcdHRoaXMuX3BlbmRpbmdTaXplcyA9IHNpemVzO1xuXG5cdFx0aWYgKHRoaXMuX3Jlc2l6ZVJhZiAhPT0gbnVsbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5fcmVzaXplUmFmID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcblx0XHRcdHRoaXMuX3Jlc2l6ZVJhZiA9IG51bGw7XG5cdFx0XHRpZiAodGhpcy5fcGVuZGluZ1NpemVzKSB7XG5cdFx0XHRcdHRoaXMuX3NldExheW91dCh0aGlzLl9wZW5kaW5nU2l6ZXMpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZVBhbmVsU3R5bGVzKCk7XG5cdFx0XHRcdHRoaXMuX3BlbmRpbmdTaXplcyA9IG51bGw7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9lbmRSZXNpemUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuX3Jlc2l6ZVJhZiAhPT0gbnVsbCkge1xuXHRcdFx0Y2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmVzaXplUmFmKTtcblx0XHRcdHRoaXMuX3Jlc2l6ZVJhZiA9IG51bGw7XG5cdFx0XHR0aGlzLl9wZW5kaW5nU2l6ZXMgPSBudWxsO1xuXHRcdH1cblx0XHR0aGlzLmRyYWdFbmQuZW1pdCgpO1xuXHR9XG5cblx0cHVibGljIHVwZGF0ZVBhbmVsU3R5bGVzKCk6IHZvaWQge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cdFx0Y29uc3Qgc2l6ZXMgPSB0aGlzLmxheW91dCgpO1xuXG5cdFx0cGFuZWxzLmZvckVhY2goKHBhbmVsLCBpbmRleCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2l6ZSA9IHNpemVzW2luZGV4XTtcblx0XHRcdGlmIChzaXplICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFuZWwuc2V0U2l6ZShzaXplKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldEV2ZW50UG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogbnVtYmVyIHtcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLmRpcmVjdGlvbigpO1xuXHRcdGlmIChldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcblx0XHRcdHJldHVybiBsYXlvdXQgPT09ICd2ZXJ0aWNhbCcgPyBldmVudC5jbGllbnRZIDogZXZlbnQuY2xpZW50WDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdO1xuXHRcdFx0cmV0dXJuIGxheW91dCA9PT0gJ3ZlcnRpY2FsJyA/IHRvdWNoLmNsaWVudFkgOiB0b3VjaC5jbGllbnRYO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2dldENvbnRhaW5lclNpemUoKTogbnVtYmVyIHtcblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLmRpcmVjdGlvbigpO1xuXHRcdHJldHVybiBsYXlvdXQgPT09ICd2ZXJ0aWNhbCcgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG5cdH1cblxuXHRwdWJsaWMgY29sbGFwc2VQYW5lbChpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMoKTtcblx0XHRjb25zdCBwYW5lbCA9IHBhbmVsc1tpbmRleF07XG5cblx0XHRpZiAoIXBhbmVsIHx8ICFwYW5lbC5jb2xsYXBzaWJsZSgpKSByZXR1cm47XG5cblx0XHRjb25zdCBzaXplcyA9IFsuLi50aGlzLmxheW91dCgpXTtcblx0XHRjb25zdCBpc0NvbGxhcHNlZCA9IHNpemVzW2luZGV4XSA9PT0gMDtcblxuXHRcdGlmIChpc0NvbGxhcHNlZCkge1xuXHRcdFx0Y29uc3QgcGFuZWxEZWZhdWx0U2l6ZSA9IHBhbmVsLmRlZmF1bHRTaXplKCk7XG5cdFx0XHRjb25zdCBkZWZhdWx0U2l6ZSA9IHBhbmVsRGVmYXVsdFNpemUgIT09IHVuZGVmaW5lZCA/IHBhbmVsRGVmYXVsdFNpemUgLyBwYW5lbHMubGVuZ3RoIDogMTAwIC8gcGFuZWxzLmxlbmd0aDtcblx0XHRcdHNpemVzW2luZGV4XSA9IGRlZmF1bHRTaXplO1xuXG5cdFx0XHRjb25zdCB0b3RhbE90aGVycyA9IHNpemVzLnJlZHVjZSgoc3VtLCBzaXplLCBpKSA9PiAoaSAhPT0gaW5kZXggPyBzdW0gKyBzaXplIDogc3VtKSwgMCk7XG5cdFx0XHRjb25zdCBzY2FsZSA9ICgxMDAgLSBkZWZhdWx0U2l6ZSkgLyB0b3RhbE90aGVycztcblxuXHRcdFx0c2l6ZXMuZm9yRWFjaCgoc2l6ZSwgaSkgPT4ge1xuXHRcdFx0XHRpZiAoaSAhPT0gaW5kZXgpIHtcblx0XHRcdFx0XHRzaXplc1tpXSA9IHNpemUgKiBzY2FsZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGNvbGxhcHNlZFNpemUgPSBzaXplc1tpbmRleF07XG5cdFx0XHRzaXplc1tpbmRleF0gPSAwO1xuXG5cdFx0XHRjb25zdCB0b3RhbE90aGVycyA9IHNpemVzLnJlZHVjZSgoc3VtLCBzaXplLCBpKSA9PiAoaSAhPT0gaW5kZXggPyBzdW0gKyBzaXplIDogc3VtKSwgMCk7XG5cdFx0XHRjb25zdCBzY2FsZSA9ICh0b3RhbE90aGVycyArIGNvbGxhcHNlZFNpemUpIC8gdG90YWxPdGhlcnM7XG5cblx0XHRcdHNpemVzLmZvckVhY2goKHNpemUsIGkpID0+IHtcblx0XHRcdFx0aWYgKGkgIT09IGluZGV4KSB7XG5cdFx0XHRcdFx0c2l6ZXNbaV0gPSBzaXplICogc2NhbGU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuX3NldExheW91dChzaXplcyk7XG5cdFx0dGhpcy51cGRhdGVQYW5lbFN0eWxlcygpO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2V0TGF5b3V0KHNpemVzOiBudW1iZXJbXSk6IHZvaWQge1xuXHRcdHRoaXMubGF5b3V0LnNldChzaXplcyk7XG5cdFx0dGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoc2l6ZXMpO1xuXHR9XG59XG4iXX0=","import { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\nimport * as i0 from \"@angular/core\";\nexport class BrnResizableHandle {\n /** Parent resizable group. */\n _resizable = inject(BrnResizableGroup);\n /** Host element reference. */\n _el = inject((ElementRef));\n /** Whether a visual handle is rendered inside the separator. */\n withHandle = input(false, { transform: booleanAttribute });\n /** Whether the handle is disabled (not interactive). */\n disabled = input(false, { transform: booleanAttribute });\n /** The direction of the resizable group (`horizontal` or `vertical`). */\n _direction = this._resizable.direction;\n /** Computed layout orientation based on the parent group. */\n _layout = computed(() => this._resizable?.direction() || 'horizontal');\n /** Index of this handle relative to panels in the group. */\n _handleIndex = 0;\n constructor() {\n afterNextRender(() => {\n this._handleIndex = this._getHandleIndex();\n });\n }\n _getHandleIndex() {\n const host = this._el.nativeElement;\n const parent = host.parentElement;\n if (!parent)\n return -1;\n // Collect all panels under this group\n const panels = Array.from(parent.querySelectorAll('[data-slot=\"resizable-panel\"]'));\n // Find the previous panel (the closest one before this handle)\n const prevPanel = host.previousElementSibling;\n if (!prevPanel)\n return -1;\n // Return its index among all panels\n return panels.indexOf(prevPanel);\n }\n _handleMouseDown(event) {\n if (this.disabled() || !this._resizable)\n return;\n this._resizable.startResize(this._handleIndex, event);\n }\n _handleKeyDown(event) {\n if (this.disabled())\n return;\n const panels = this._resizable.panels();\n const handleIndex = this._handleIndex;\n const layout = this._layout();\n let delta = 0;\n const step = event.shiftKey ? 10 : 1;\n switch (event.key) {\n case 'ArrowLeft':\n if (layout === 'horizontal')\n delta = -step;\n break;\n case 'ArrowRight':\n if (layout === 'horizontal')\n delta = step;\n break;\n case 'ArrowUp':\n if (layout === 'vertical')\n delta = -step;\n break;\n case 'ArrowDown':\n if (layout === 'vertical')\n delta = step;\n break;\n case 'Home':\n event.preventDefault();\n this._moveToExtreme(true);\n return;\n case 'End':\n event.preventDefault();\n this._moveToExtreme(false);\n return;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (panels[handleIndex]?.collapsible() || panels[handleIndex + 1]?.collapsible()) {\n const collapsibleIndex = panels[handleIndex]?.collapsible() ? handleIndex : handleIndex + 1;\n this._resizable.collapsePanel(collapsibleIndex);\n }\n return;\n default:\n return;\n }\n if (delta !== 0) {\n event.preventDefault();\n this._adjustSizes(delta);\n }\n }\n _getPanelContext() {\n const panels = this._resizable.panels();\n const li = this._handleIndex;\n const ri = li + 1;\n const left = panels[li];\n const right = panels[ri];\n if (!left || !right)\n return null;\n const sizes = [...this._resizable.layout()];\n return {\n sizes,\n li,\n ri,\n left,\n right,\n leftMin: left.minSize(),\n leftMax: left.maxSize(),\n rightMin: right.minSize(),\n rightMax: right.maxSize(),\n };\n }\n _adjustSizes(delta) {\n const ctx = this._getPanelContext();\n if (!ctx)\n return;\n let newLeftSize = ctx.sizes[ctx.li] + delta;\n let newRightSize = ctx.sizes[ctx.ri] - delta;\n newLeftSize = Math.max(ctx.leftMin, Math.min(ctx.leftMax, newLeftSize));\n newRightSize = Math.max(ctx.rightMin, Math.min(ctx.rightMax, newRightSize));\n const totalSize = newLeftSize + newRightSize;\n const originalTotal = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n if (Math.abs(totalSize - originalTotal) < 0.01) {\n ctx.sizes[ctx.li] = newLeftSize;\n ctx.sizes[ctx.ri] = newRightSize;\n this._resizable.layout.set(ctx.sizes);\n this._resizable.updatePanelStyles();\n }\n }\n _moveToExtreme(toMin) {\n const ctx = this._getPanelContext();\n if (!ctx)\n return;\n const totalSize = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n if (toMin) {\n ctx.sizes[ctx.li] = ctx.leftMin;\n ctx.sizes[ctx.ri] = Math.min(totalSize - ctx.leftMin, ctx.rightMax);\n }\n else {\n ctx.sizes[ctx.li] = Math.min(totalSize - ctx.rightMin, ctx.leftMax);\n ctx.sizes[ctx.ri] = ctx.rightMin;\n }\n this._resizable.layout.set(ctx.sizes);\n this._resizable.updatePanelStyles();\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnResizableHandle, isStandalone: true, selector: \"brn-resizable-handle, [brnResizeHandle]\", inputs: { withHandle: { classPropertyName: \"withHandle\", publicName: \"withHandle\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { \"mousedown\": \"_handleMouseDown($event)\", \"keydown\": \"_handleKeyDown($event)\" }, properties: { \"attr.data-layout\": \"_layout()\", \"attr.tabindex\": \"disabled() ? null : 0\", \"attr.role\": \"\\\"separator\\\"\", \"attr.data-panel-group-direction\": \"_direction()\", \"attr.aria-orientation\": \"_layout() === \\\"vertical\\\" ? \\\"horizontal\\\" : \\\"vertical\\\"\", \"attr.aria-disabled\": \"disabled()\" } }, exportAs: [\"brnResizableHandle\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableHandle, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-handle, [brnResizeHandle]',\n exportAs: 'brnResizableHandle',\n host: {\n '[attr.data-layout]': '_layout()',\n '[attr.tabindex]': 'disabled() ? null : 0',\n '[attr.role]': '\"separator\"',\n '[attr.data-panel-group-direction]': '_direction()',\n '[attr.aria-orientation]': '_layout() === \"vertical\" ? \"horizontal\" : \"vertical\"',\n '[attr.aria-disabled]': 'disabled()',\n '(mousedown)': '_handleMouseDown($event)',\n '(keydown)': '_handleKeyDown($event)',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3Jlc2l6YWJsZS9zcmMvbGliL2Jybi1yZXNpemFibGUtaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFnQjFELE1BQU0sT0FBTyxrQkFBa0I7SUFDOUIsOEJBQThCO0lBQ2IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXhELDhCQUE4QjtJQUNiLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUV2RCxnRUFBZ0U7SUFDaEQsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLHdEQUF3RDtJQUN4QyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFekUseUVBQXlFO0lBQ3RELFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztJQUUxRCw2REFBNkQ7SUFDMUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBRTFGLDREQUE0RDtJQUNwRCxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRXpCO1FBQ0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FB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RTt3QkFDTCxvQkFBb0IsRUFBRSxXQUFXO3dCQUNqQyxpQkFBaUIsRUFBRSx1QkFBdUI7d0JBQzFDLGFBQWEsRUFBRSxhQUFhO3dCQUM1QixtQ0FBbUMsRUFBRSxjQUFjO3dCQUNuRCx5QkFBeUIsRUFBRSxzREFBc0Q7d0JBQ2pGLHNCQUFzQixFQUFFLFlBQVk7d0JBQ3BDLGFBQWEsRUFBRSwwQkFBMEI7d0JBQ3pDLFdBQVcsRUFBRSx3QkFBd0I7cUJBQ3JDO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBib29sZWFuQXR0cmlidXRlLCBjb21wdXRlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJyblJlc2l6YWJsZUdyb3VwIH0gZnJvbSAnLi9icm4tcmVzaXphYmxlLWdyb3VwJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1oYW5kbGUsIFticm5SZXNpemVIYW5kbGVdJyxcblx0ZXhwb3J0QXM6ICdicm5SZXNpemFibGVIYW5kbGUnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtbGF5b3V0XSc6ICdfbGF5b3V0KCknLFxuXHRcdCdbYXR0ci50YWJpbmRleF0nOiAnZGlzYWJsZWQoKSA/IG51bGwgOiAwJyxcblx0XHQnW2F0dHIucm9sZV0nOiAnXCJzZXBhcmF0b3JcIicsXG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtZGlyZWN0aW9uXSc6ICdfZGlyZWN0aW9uKCknLFxuXHRcdCdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdfbGF5b3V0KCkgPT09IFwidmVydGljYWxcIiA/IFwiaG9yaXpvbnRhbFwiIDogXCJ2ZXJ0aWNhbFwiJyxcblx0XHQnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG5cdFx0Jyhtb3VzZWRvd24pJzogJ19oYW5kbGVNb3VzZURvd24oJGV2ZW50KScsXG5cdFx0JyhrZXlkb3duKSc6ICdfaGFuZGxlS2V5RG93bigkZXZlbnQpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuUmVzaXphYmxlSGFuZGxlIHtcblx0LyoqIFBhcmVudCByZXNpemFibGUgZ3JvdXAuICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6YWJsZSA9IGluamVjdChCcm5SZXNpemFibGVHcm91cCk7XG5cblx0LyoqIEhvc3QgZWxlbWVudCByZWZlcmVuY2UuICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuXHQvKiogV2hldGhlciBhIHZpc3VhbCBoYW5kbGUgaXMgcmVuZGVyZWQgaW5zaWRlIHRoZSBzZXBhcmF0b3IuICovXG5cdHB1YmxpYyByZWFkb25seSB3aXRoSGFuZGxlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdC8qKiBXaGV0aGVyIHRoZSBoYW5kbGUgaXMgZGlzYWJsZWQgKG5vdCBpbnRlcmFjdGl2ZSkuICovXG5cdHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuXHQvKiogVGhlIGRpcmVjdGlvbiBvZiB0aGUgcmVzaXphYmxlIGdyb3VwIChgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYCkuICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfZGlyZWN0aW9uID0gdGhpcy5fcmVzaXphYmxlLmRpcmVjdGlvbjtcblxuXHQvKiogQ29tcHV0ZWQgbGF5b3V0IG9yaWVudGF0aW9uIGJhc2VkIG9uIHRoZSBwYXJlbnQgZ3JvdXAuICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfbGF5b3V0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fcmVzaXphYmxlPy5kaXJlY3Rpb24oKSB8fCAnaG9yaXpvbnRhbCcpO1xuXG5cdC8qKiBJbmRleCBvZiB0aGlzIGhhbmRsZSByZWxhdGl2ZSB0byBwYW5lbHMgaW4gdGhlIGdyb3VwLiAqL1xuXHRwcml2YXRlIF9oYW5kbGVJbmRleCA9IDA7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuX2hhbmRsZUluZGV4ID0gdGhpcy5fZ2V0SGFuZGxlSW5kZXgoKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldEhhbmRsZUluZGV4KCk6IG51bWJlciB7XG5cdFx0Y29uc3QgaG9zdCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0Y29uc3QgcGFyZW50ID0gaG9zdC5wYXJlbnRFbGVtZW50O1xuXHRcdGlmICghcGFyZW50KSByZXR1cm4gLTE7XG5cblx0XHQvLyBDb2xsZWN0IGFsbCBwYW5lbHMgdW5kZXIgdGhpcyBncm91cFxuXHRcdGNvbnN0IHBhbmVscyA9IEFycmF5LmZyb20ocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNsb3Q9XCJyZXNpemFibGUtcGFuZWxcIl0nKSk7XG5cblx0XHQvLyBGaW5kIHRoZSBwcmV2aW91cyBwYW5lbCAodGhlIGNsb3Nlc3Qgb25lIGJlZm9yZSB0aGlzIGhhbmRsZSlcblx0XHRjb25zdCBwcmV2UGFuZWwgPSBob3N0LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cdFx0aWYgKCFwcmV2UGFuZWwpIHJldHVybiAtMTtcblxuXHRcdC8vIFJldHVybiBpdHMgaW5kZXggYW1vbmcgYWxsIHBhbmVsc1xuXHRcdHJldHVybiBwYW5lbHMuaW5kZXhPZihwcmV2UGFuZWwgYXMgSFRNTEVsZW1lbnQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9oYW5kbGVNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCgpIHx8ICF0aGlzLl9yZXNpemFibGUpIHJldHVybjtcblx0XHR0aGlzLl9yZXNpemFibGUuc3RhcnRSZXNpemUodGhpcy5faGFuZGxlSW5kZXgsIGV2ZW50KTtcblx0fVxuXG5cdHByb3RlY3RlZCBfaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmRpc2FibGVkKCkpIHJldHVybjtcblxuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMuX3Jlc2l6YWJsZS5wYW5lbHMoKTtcblx0XHRjb25zdCBoYW5kbGVJbmRleCA9IHRoaXMuX2hhbmRsZUluZGV4O1xuXHRcdGNvbnN0IGxheW91dCA9IHRoaXMuX2xheW91dCgpO1xuXG5cdFx0bGV0IGRlbHRhID0gMDtcblx0XHRjb25zdCBzdGVwID0gZXZlbnQuc2hpZnRLZXkgPyAxMCA6IDE7XG5cblx0XHRzd2l0Y2ggKGV2ZW50LmtleSkge1xuXHRcdFx0Y2FzZSAnQXJyb3dMZWZ0Jzpcblx0XHRcdFx0aWYgKGxheW91dCA9PT0gJ2hvcml6b250YWwnKSBkZWx0YSA9IC1zdGVwO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ0Fycm93UmlnaHQnOlxuXHRcdFx0XHRpZiAobGF5b3V0ID09PSAnaG9yaXpvbnRhbCcpIGRlbHRhID0gc3RlcDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBcnJvd1VwJzpcblx0XHRcdFx0aWYgKGxheW91dCA9PT0gJ3ZlcnRpY2FsJykgZGVsdGEgPSAtc3RlcDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBcnJvd0Rvd24nOlxuXHRcdFx0XHRpZiAobGF5b3V0ID09PSAndmVydGljYWwnKSBkZWx0YSA9IHN0ZXA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnSG9tZSc6XG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdHRoaXMuX21vdmVUb0V4dHJlbWUodHJ1ZSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdGNhc2UgJ0VuZCc6XG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdHRoaXMuX21vdmVUb0V4dHJlbWUoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHRjYXNlICdFbnRlcic6XG5cdFx0XHRjYXNlICcgJzpcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0aWYgKHBhbmVsc1toYW5kbGVJbmRleF0/LmNvbGxhcHNpYmxlKCkgfHwgcGFuZWxzW2hhbmRsZUluZGV4ICsgMV0/LmNvbGxhcHNpYmxlKCkpIHtcblx0XHRcdFx0XHRjb25zdCBjb2xsYXBzaWJsZUluZGV4ID0gcGFuZWxzW2hhbmRsZUluZGV4XT8uY29sbGFwc2libGUoKSA/IGhhbmRsZUluZGV4IDogaGFuZGxlSW5kZXggKyAxO1xuXHRcdFx0XHRcdHRoaXMuX3Jlc2l6YWJsZS5jb2xsYXBzZVBhbmVsKGNvbGxhcHNpYmxlSW5kZXgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoZGVsdGEgIT09IDApIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHR0aGlzLl9hZGp1c3RTaXplcyhkZWx0YSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0UGFuZWxDb250ZXh0KCkge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMuX3Jlc2l6YWJsZS5wYW5lbHMoKTtcblx0XHRjb25zdCBsaSA9IHRoaXMuX2hhbmRsZUluZGV4O1xuXHRcdGNvbnN0IHJpID0gbGkgKyAxO1xuXG5cdFx0Y29uc3QgbGVmdCA9IHBhbmVsc1tsaV07XG5cdFx0Y29uc3QgcmlnaHQgPSBwYW5lbHNbcmldO1xuXHRcdGlmICghbGVmdCB8fCAhcmlnaHQpIHJldHVybiBudWxsO1xuXG5cdFx0Y29uc3Qgc2l6ZXMgPSBbLi4udGhpcy5fcmVzaXphYmxlLmxheW91dCgpXTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRzaXplcyxcblx0XHRcdGxpLFxuXHRcdFx0cmksXG5cdFx0XHRsZWZ0LFxuXHRcdFx0cmlnaHQsXG5cdFx0XHRsZWZ0TWluOiBsZWZ0Lm1pblNpemUoKSxcblx0XHRcdGxlZnRNYXg6IGxlZnQubWF4U2l6ZSgpLFxuXHRcdFx0cmlnaHRNaW46IHJpZ2h0Lm1pblNpemUoKSxcblx0XHRcdHJpZ2h0TWF4OiByaWdodC5tYXhTaXplKCksXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgX2FkanVzdFNpemVzKGRlbHRhOiBudW1iZXIpOiB2b2lkIHtcblx0XHRjb25zdCBjdHggPSB0aGlzLl9nZXRQYW5lbENvbnRleHQoKTtcblx0XHRpZiAoIWN0eCkgcmV0dXJuO1xuXG5cdFx0bGV0IG5ld0xlZnRTaXplID0gY3R4LnNpemVzW2N0eC5saV0gKyBkZWx0YTtcblx0XHRsZXQgbmV3UmlnaHRTaXplID0gY3R4LnNpemVzW2N0eC5yaV0gLSBkZWx0YTtcblxuXHRcdG5ld0xlZnRTaXplID0gTWF0aC5tYXgoY3R4LmxlZnRNaW4sIE1hdGgubWluKGN0eC5sZWZ0TWF4LCBuZXdMZWZ0U2l6ZSkpO1xuXHRcdG5ld1JpZ2h0U2l6ZSA9IE1hdGgubWF4KGN0eC5yaWdodE1pbiwgTWF0aC5taW4oY3R4LnJpZ2h0TWF4LCBuZXdSaWdodFNpemUpKTtcblxuXHRcdGNvbnN0IHRvdGFsU2l6ZSA9IG5ld0xlZnRTaXplICsgbmV3UmlnaHRTaXplO1xuXHRcdGNvbnN0IG9yaWdpbmFsVG90YWwgPSBjdHguc2l6ZXNbY3R4LmxpXSArIGN0eC5zaXplc1tjdHgucmldO1xuXG5cdFx0aWYgKE1hdGguYWJzKHRvdGFsU2l6ZSAtIG9yaWdpbmFsVG90YWwpIDwgMC4wMSkge1xuXHRcdFx0Y3R4LnNpemVzW2N0eC5saV0gPSBuZXdMZWZ0U2l6ZTtcblx0XHRcdGN0eC5zaXplc1tjdHgucmldID0gbmV3UmlnaHRTaXplO1xuXG5cdFx0XHR0aGlzLl9yZXNpemFibGUubGF5b3V0LnNldChjdHguc2l6ZXMpO1xuXHRcdFx0dGhpcy5fcmVzaXphYmxlLnVwZGF0ZVBhbmVsU3R5bGVzKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfbW92ZVRvRXh0cmVtZSh0b01pbjogYm9vbGVhbik6IHZvaWQge1xuXHRcdGNvbnN0IGN0eCA9IHRoaXMuX2dldFBhbmVsQ29udGV4dCgpO1xuXHRcdGlmICghY3R4KSByZXR1cm47XG5cblx0XHRjb25zdCB0b3RhbFNpemUgPSBjdHguc2l6ZXNbY3R4LmxpXSArIGN0eC5zaXplc1tjdHgucmldO1xuXG5cdFx0aWYgKHRvTWluKSB7XG5cdFx0XHRjdHguc2l6ZXNbY3R4LmxpXSA9IGN0eC5sZWZ0TWluO1xuXHRcdFx0Y3R4LnNpemVzW2N0eC5yaV0gPSBNYXRoLm1pbih0b3RhbFNpemUgLSBjdHgubGVmdE1pbiwgY3R4LnJpZ2h0TWF4KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y3R4LnNpemVzW2N0eC5saV0gPSBNYXRoLm1pbih0b3RhbFNpemUgLSBjdHgucmlnaHRNaW4sIGN0eC5sZWZ0TWF4KTtcblx0XHRcdGN0eC5zaXplc1tjdHgucmldID0gY3R4LnJpZ2h0TWluO1xuXHRcdH1cblxuXHRcdHRoaXMuX3Jlc2l6YWJsZS5sYXlvdXQuc2V0KGN0eC5zaXplcyk7XG5cdFx0dGhpcy5fcmVzaXphYmxlLnVwZGF0ZVBhbmVsU3R5bGVzKCk7XG5cdH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1yZXNpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3Jlc2l6YWJsZS9zcmMvc3BhcnRhbi1uZy1icmFpbi1yZXNpemFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["nextId"],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-resizable.mjs","sources":["../tmp-esm2022/resizable/lib/brn-resizable-panel.js","../tmp-esm2022/resizable/lib/brn-resizable-group.js","../tmp-esm2022/resizable/lib/brn-resizable-handle.js","../tmp-esm2022/resizable/spartan-ng-brain-resizable.js"],"sourcesContent":["import { booleanAttribute, computed, Directive, ElementRef, inject, input, numberAttribute, signal, } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\nimport * as i0 from \"@angular/core\";\nlet nextId = 0;\nexport class BrnResizablePanel {\n /** Unique ID for the panel. */\n id = input(`brn-resizable-panel-${++nextId}`);\n /** Reference to the parent {@link BrnResizableGroup}. */\n _panelGroup = inject(BrnResizableGroup);\n /** Host DOM element reference. */\n el = inject((ElementRef));\n /**\n * The default size of the panel (percentage of container space).\n * - `undefined` → group decides initial size.\n * - Number → interpreted as percentage (0–100).\n */\n defaultSize = input(undefined, { transform: numberAttribute });\n /** The minimum size this panel can shrink to (percentage). */\n minSize = input(0, { transform: numberAttribute });\n /**\t The maximum size this panel can grow to (percentage). */\n maxSize = input(100, { transform: numberAttribute });\n /** Whether this panel can be collapsed entirely. */\n collapsible = input(true, { transform: booleanAttribute });\n /** Reactive signal holding the current size of the panel. */\n _panelSize = signal(100);\n /**\n * CSS flex style for this panel, derived from its current size.\n * Format: `\"flex-grow flex-shrink flex-basis\"`.\n *\n * Example: `\"25 1 0\"` means 25% width (or height in vertical layout).\n */\n _flex = computed(() => `${this._panelSize()} 1 0`);\n /**\n * Sets the size of the panel.\n * @param size New size (percentage of container space).\n */\n setSize(size) {\n this._panelSize.set(size);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizablePanel, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnResizablePanel, isStandalone: true, selector: \"brn-resizable-panel, [brnResizablePanel]\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, defaultSize: { classPropertyName: \"defaultSize\", publicName: \"defaultSize\", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: \"minSize\", publicName: \"minSize\", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: \"maxSize\", publicName: \"maxSize\", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: \"collapsible\", publicName: \"collapsible\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"data-panel\": \"\", \"data-slot\": \"resizable-panel\" }, properties: { \"attr.data-panel-group-id\": \"_panelGroup.id()\", \"attr.data-panel-id\": \"id()\", \"attr.data-panel-size\": \"_panelSize()\", \"id\": \"id()\", \"style.flex\": \"_flex()\", \"style.overflow\": \"\\\"hidden\\\"\" } }, exportAs: [\"brnResizablePanel\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizablePanel, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-panel, [brnResizablePanel]',\n exportAs: 'brnResizablePanel',\n host: {\n '[attr.data-panel-group-id]': '_panelGroup.id()',\n '[attr.data-panel-id]': 'id()',\n '[attr.data-panel-size]': '_panelSize()',\n '[id]': 'id()',\n '[style.flex]': '_flex()',\n '[style.overflow]': '\"hidden\"',\n 'data-panel': '',\n 'data-slot': 'resizable-panel',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmVzaXphYmxlL3NyYy9saWIvYnJuLXJlc2l6YWJsZS1wYW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ04sZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBZ0JmLE1BQU0sT0FBTyxpQkFBaUI7SUFDN0IsaUNBQWlDO0lBQ2pCLEVBQUUsR0FBRyxLQUFLLENBQVMsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUV0RSx5REFBeUQ7SUFDdEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELGtDQUFrQztJQUNsQixFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNhLFdBQVcsR0FBRyxLQUFLLENBQXNCLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBRXBHLDhEQUE4RDtJQUU5QyxPQUFPLEdBQUcsS0FBSyxDQUFzQixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUV4RiwrREFBK0Q7SUFDL0MsT0FBTyxHQUFHLEtBQUssQ0FBc0IsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFMUYsb0RBQW9EO0lBQ3BDLFdBQVcsR0FBRyxLQUFLLENBQXdCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFbEcsNkRBQTZEO0lBQzFDLFVBQVUsR0FBRyxNQUFNLENBQVMsR0FBRyxDQUFDLENBQUM7SUFFcEQ7Ozs7O09BS0c7SUFDZ0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFdEU7OztPQUdHO0lBQ0ksT0FBTyxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzswSEE1Q1csaUJBQWlCOzhHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBZDdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNMLDRCQUE0QixFQUFFLGtCQUFrQjt3QkFDaEQsc0JBQXNCLEVBQUUsTUFBTTt3QkFDOUIsd0JBQXdCLEVBQUUsY0FBYzt3QkFDeEMsTUFBTSxFQUFFLE1BQU07d0JBQ2QsY0FBYyxFQUFFLFNBQVM7d0JBQ3pCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLFlBQVksRUFBRSxFQUFFO3dCQUNoQixXQUFXLEVBQUUsaUJBQWlCO3FCQUM5QjtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgdHlwZSBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRudW1iZXJBdHRyaWJ1dGUsXG5cdHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm5SZXNpemFibGVHcm91cCB9IGZyb20gJy4vYnJuLXJlc2l6YWJsZS1ncm91cCc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdicm4tcmVzaXphYmxlLXBhbmVsLCBbYnJuUmVzaXphYmxlUGFuZWxdJyxcblx0ZXhwb3J0QXM6ICdicm5SZXNpemFibGVQYW5lbCcsXG5cdGhvc3Q6IHtcblx0XHQnW2F0dHIuZGF0YS1wYW5lbC1ncm91cC1pZF0nOiAnX3BhbmVsR3JvdXAuaWQoKScsXG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtaWRdJzogJ2lkKCknLFxuXHRcdCdbYXR0ci5kYXRhLXBhbmVsLXNpemVdJzogJ19wYW5lbFNpemUoKScsXG5cdFx0J1tpZF0nOiAnaWQoKScsXG5cdFx0J1tzdHlsZS5mbGV4XSc6ICdfZmxleCgpJyxcblx0XHQnW3N0eWxlLm92ZXJmbG93XSc6ICdcImhpZGRlblwiJyxcblx0XHQnZGF0YS1wYW5lbCc6ICcnLFxuXHRcdCdkYXRhLXNsb3QnOiAncmVzaXphYmxlLXBhbmVsJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuUmVzaXphYmxlUGFuZWwge1xuXHQvKiogVW5pcXVlIElEIGZvciB0aGUgcGFuZWwuICAgKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPihgYnJuLXJlc2l6YWJsZS1wYW5lbC0keysrbmV4dElkfWApO1xuXG5cdC8qKiBSZWZlcmVuY2UgdG8gdGhlIHBhcmVudCB7QGxpbmsgQnJuUmVzaXphYmxlR3JvdXB9LiAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3BhbmVsR3JvdXAgPSBpbmplY3QoQnJuUmVzaXphYmxlR3JvdXApO1xuXG5cdC8qKiBIb3N0IERPTSBlbGVtZW50IHJlZmVyZW5jZS4gKi9cblx0cHVibGljIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuXHQvKipcblx0ICogVGhlIGRlZmF1bHQgc2l6ZSBvZiB0aGUgcGFuZWwgKHBlcmNlbnRhZ2Ugb2YgY29udGFpbmVyIHNwYWNlKS5cblx0ICogLSBgdW5kZWZpbmVkYCDihpIgZ3JvdXAgZGVjaWRlcyBpbml0aWFsIHNpemUuXG5cdCAqIC0gTnVtYmVyIOKGkiBpbnRlcnByZXRlZCBhcyBwZXJjZW50YWdlICgw4oCTMTAwKS5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBkZWZhdWx0U2l6ZSA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuXHQvKiogVGhlIG1pbmltdW0gc2l6ZSB0aGlzIHBhbmVsIGNhbiBzaHJpbmsgdG8gKHBlcmNlbnRhZ2UpLiAqL1xuXG5cdHB1YmxpYyByZWFkb25seSBtaW5TaXplID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4oMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuXHQvKipcdCBUaGUgbWF4aW11bSBzaXplIHRoaXMgcGFuZWwgY2FuIGdyb3cgdG8gKHBlcmNlbnRhZ2UpLiAgICovXG5cdHB1YmxpYyByZWFkb25seSBtYXhTaXplID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4oMTAwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG5cdC8qKiBXaGV0aGVyIHRoaXMgcGFuZWwgY2FuIGJlIGNvbGxhcHNlZCBlbnRpcmVseS4gKi9cblx0cHVibGljIHJlYWRvbmx5IGNvbGxhcHNpYmxlID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0Pih0cnVlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuXHQvKiogUmVhY3RpdmUgc2lnbmFsIGhvbGRpbmcgdGhlIGN1cnJlbnQgc2l6ZSBvZiB0aGUgcGFuZWwuICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfcGFuZWxTaXplID0gc2lnbmFsPG51bWJlcj4oMTAwKTtcblxuXHQvKipcblx0ICogQ1NTIGZsZXggc3R5bGUgZm9yIHRoaXMgcGFuZWwsIGRlcml2ZWQgZnJvbSBpdHMgY3VycmVudCBzaXplLlxuXHQgKiBGb3JtYXQ6IGBcImZsZXgtZ3JvdyBmbGV4LXNocmluayBmbGV4LWJhc2lzXCJgLlxuXHQgKlxuXHQgKiBFeGFtcGxlOiBgXCIyNSAxIDBcImAgbWVhbnMgMjUlIHdpZHRoIChvciBoZWlnaHQgaW4gdmVydGljYWwgbGF5b3V0KS5cblx0ICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfZmxleCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3BhbmVsU2l6ZSgpfSAxIDBgKTtcblxuXHQvKipcblx0ICogU2V0cyB0aGUgc2l6ZSBvZiB0aGUgcGFuZWwuXG5cdCAqIEBwYXJhbSBzaXplIE5ldyBzaXplIChwZXJjZW50YWdlIG9mIGNvbnRhaW5lciBzcGFjZSkuXG5cdCAqL1xuXHRwdWJsaWMgc2V0U2l6ZShzaXplOiBudW1iZXIpIHtcblx0XHR0aGlzLl9wYW5lbFNpemUuc2V0KHNpemUpO1xuXHR9XG59XG4iXX0=","import { afterNextRender, contentChildren, Directive, DOCUMENT, ElementRef, inject, input, model, NgZone, output, } from '@angular/core';\nimport { BrnResizablePanel } from './brn-resizable-panel';\nimport * as i0 from \"@angular/core\";\nlet nextId = 0;\nexport class BrnResizableGroup {\n /** The id of the BrnResizableGroup */\n id = input(`brn-resizable-group-${++nextId}`);\n /** Host element reference. */\n _el = inject((ElementRef));\n /** Group orientation */\n direction = input('horizontal');\n /** @internal Access all the panels within the group */\n panels = contentChildren(BrnResizablePanel);\n /** event when resize starts */\n dragStart = output();\n /** event when resize ends */\n dragEnd = output();\n /** Resize panel group to the specified layout ([1 - 100, ...]). */\n layout = model([]);\n /** Called when group layout changes */\n layoutChanged = output();\n _document = inject(DOCUMENT);\n _zone = inject(NgZone);\n _resizeRaf = null;\n _pendingSizes = null;\n constructor() {\n afterNextRender(() => {\n this._initializePanelSizes();\n });\n }\n _initializePanelSizes() {\n const panels = this.panels();\n const totalPanels = panels.length;\n if (totalPanels === 0)\n return;\n const sizes = [];\n panels.forEach((panel, index) => {\n const defaultSize = panel.defaultSize() ?? this.layout()[index];\n const size = defaultSize !== undefined ? defaultSize : 100 / totalPanels;\n sizes.push(size);\n panel.setSize(size);\n });\n if (this.layout().toString() !== sizes.toString()) {\n this._setLayout(sizes);\n }\n }\n startResize(handleIndex, event) {\n event.preventDefault();\n const cursor = this.direction() === 'vertical' ? 'row-resize' : 'col-resize';\n this._document.body.style.cursor = `${cursor}`;\n const sizes = [...this.layout()];\n this.dragStart.emit();\n const startPosition = this._getEventPosition(event);\n const startSizes = [...sizes];\n const handleMove = (moveEvent) => {\n this._zone.runOutsideAngular(() => {\n this._handleResize(moveEvent, handleIndex, startPosition, startSizes);\n });\n };\n const handleEnd = () => {\n this._zone.run(() => this._endResize());\n this._document.body.style.cursor = 'default';\n this._document.removeEventListener('mousemove', handleMove);\n this._document.removeEventListener('touchmove', handleMove);\n this._document.removeEventListener('mouseup', handleEnd);\n this._document.removeEventListener('touchend', handleEnd);\n };\n this._zone.runOutsideAngular(() => {\n this._document.addEventListener('mousemove', handleMove);\n this._document.addEventListener('touchmove', handleMove);\n this._document.addEventListener('mouseup', handleEnd);\n this._document.addEventListener('touchend', handleEnd);\n });\n }\n _handleResize(event, handleIndex, startPosition, startSizes) {\n const currentPosition = this._getEventPosition(event);\n const delta = currentPosition - startPosition;\n const containerSize = this._getContainerSize();\n const deltaPercentage = (delta / containerSize) * 100;\n const newSizes = [...startSizes];\n const panels = this.panels();\n const leftPanel = panels[handleIndex];\n const rightPanel = panels[handleIndex + 1];\n if (!leftPanel || !rightPanel)\n return;\n const leftMin = leftPanel.minSize();\n const leftMax = leftPanel.maxSize();\n const rightMin = rightPanel.minSize();\n const rightMax = rightPanel.maxSize();\n let newLeftSize = startSizes[handleIndex] + deltaPercentage;\n let newRightSize = startSizes[handleIndex + 1] - deltaPercentage;\n newLeftSize = Math.max(leftMin, Math.min(leftMax, newLeftSize));\n newRightSize = Math.max(rightMin, Math.min(rightMax, newRightSize));\n const totalSize = newLeftSize + newRightSize;\n const originalTotal = startSizes[handleIndex] + startSizes[handleIndex + 1];\n if (Math.abs(totalSize - originalTotal) < 0.01) {\n newSizes[handleIndex] = newLeftSize;\n newSizes[handleIndex + 1] = newRightSize;\n // batch update\n this._queueResize(newSizes);\n }\n }\n _queueResize(sizes) {\n this._pendingSizes = sizes;\n if (this._resizeRaf !== null)\n return;\n this._resizeRaf = requestAnimationFrame(() => {\n this._resizeRaf = null;\n if (this._pendingSizes) {\n this._setLayout(this._pendingSizes);\n this.updatePanelStyles();\n this._pendingSizes = null;\n }\n });\n }\n _endResize() {\n if (this._resizeRaf !== null) {\n cancelAnimationFrame(this._resizeRaf);\n this._resizeRaf = null;\n this._pendingSizes = null;\n }\n this.dragEnd.emit();\n }\n updatePanelStyles() {\n const panels = this.panels();\n const sizes = this.layout();\n panels.forEach((panel, index) => {\n const size = sizes[index];\n if (size !== undefined) {\n panel.setSize(size);\n }\n });\n }\n _getEventPosition(event) {\n const layout = this.direction();\n if (event instanceof MouseEvent) {\n return layout === 'vertical' ? event.clientY : event.clientX;\n }\n else {\n const touch = event.touches[0];\n return layout === 'vertical' ? touch.clientY : touch.clientX;\n }\n }\n _getContainerSize() {\n const element = this._el.nativeElement;\n const layout = this.direction();\n return layout === 'vertical' ? element.offsetHeight : element.offsetWidth;\n }\n collapsePanel(index) {\n const panels = this.panels();\n const panel = panels[index];\n if (!panel || !panel.collapsible())\n return;\n const sizes = [...this.layout()];\n const isCollapsed = sizes[index] === 0;\n if (isCollapsed) {\n const panelDefaultSize = panel.defaultSize();\n const defaultSize = panelDefaultSize !== undefined ? panelDefaultSize / panels.length : 100 / panels.length;\n sizes[index] = defaultSize;\n const totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n const scale = (100 - defaultSize) / totalOthers;\n sizes.forEach((size, i) => {\n if (i !== index) {\n sizes[i] = size * scale;\n }\n });\n }\n else {\n const collapsedSize = sizes[index];\n sizes[index] = 0;\n const totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n const scale = (totalOthers + collapsedSize) / totalOthers;\n sizes.forEach((size, i) => {\n if (i !== index) {\n sizes[i] = size * scale;\n }\n });\n }\n this._setLayout(sizes);\n this.updatePanelStyles();\n }\n _setLayout(sizes) {\n this.layout.set(sizes);\n this.layoutChanged.emit(sizes);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnResizableGroup, isStandalone: true, selector: \"brn-resizable-group, [brnResizableGroup]\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: \"direction\", publicName: \"direction\", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: \"layout\", publicName: \"layout\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragStart: \"dragStart\", dragEnd: \"dragEnd\", layout: \"layoutChange\", layoutChanged: \"layoutChanged\" }, host: { attributes: { \"data-panel-group\": \"\", \"data-slot\": \"resizable-panel-group\" }, properties: { \"attr.data-panel-group-direction\": \"direction()\", \"attr.data-panel-group-id\": \"id()\", \"id\": \"id()\" } }, queries: [{ propertyName: \"panels\", predicate: BrnResizablePanel, isSignal: true }], exportAs: [\"brnResizableGroup\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableGroup, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-group, [brnResizableGroup]',\n exportAs: 'brnResizableGroup',\n host: {\n '[attr.data-panel-group-direction]': 'direction()',\n '[attr.data-panel-group-id]': 'id()',\n '[id]': 'id()',\n 'data-panel-group': '',\n 'data-slot': 'resizable-panel-group',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmVzaXphYmxlL3NyYy9saWIvYnJuLXJlc2l6YWJsZS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFhZixNQUFNLE9BQU8saUJBQWlCO0lBQzdCLHNDQUFzQztJQUN0QixFQUFFLEdBQUcsS0FBSyxDQUFTLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFdEUsOEJBQThCO0lBQ2IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXZELHdCQUF3QjtJQUNSLFNBQVMsR0FBRyxLQUFLLENBQTRCLFlBQVksQ0FBQyxDQUFDO0lBRTNFLHVEQUF1RDtJQUN2QyxNQUFNLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFNUQsK0JBQStCO0lBQ2YsU0FBUyxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRTNDLDZCQUE2QjtJQUNiLE9BQU8sR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV6QyxtRUFBbUU7SUFDbkQsTUFBTSxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztJQUU3Qyx1Q0FBdUM7SUFDdkIsYUFBYSxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBRWxDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0IsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENB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RyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sS0FBSyxHQUFHLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUUxRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDakIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7WUFDRixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBZTtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzBIQXZPVyxpQkFBaUI7OEdBQWpCLGlCQUFpQixrekJBV1ksaUJBQWlCOzsyRkFYOUMsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwwQ0FBMEM7b0JBQ3BELFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDTCxtQ0FBbUMsRUFBRSxhQUFhO3dCQUNsRCw0QkFBNEIsRUFBRSxNQUFNO3dCQUNwQyxNQUFNLEVBQUUsTUFBTTt3QkFDZCxrQkFBa0IsRUFBRSxFQUFFO3dCQUN0QixXQUFXLEVBQUUsdUJBQXVCO3FCQUNwQztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29udGVudENoaWxkcmVuLFxuXHREaXJlY3RpdmUsXG5cdERPQ1VNRU5ULFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRtb2RlbCxcblx0Tmdab25lLFxuXHRvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuUmVzaXphYmxlUGFuZWwgfSBmcm9tICcuL2Jybi1yZXNpemFibGUtcGFuZWwnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1ncm91cCwgW2JyblJlc2l6YWJsZUdyb3VwXScsXG5cdGV4cG9ydEFzOiAnYnJuUmVzaXphYmxlR3JvdXAnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtZGlyZWN0aW9uXSc6ICdkaXJlY3Rpb24oKScsXG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtaWRdJzogJ2lkKCknLFxuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHRcdCdkYXRhLXBhbmVsLWdyb3VwJzogJycsXG5cdFx0J2RhdGEtc2xvdCc6ICdyZXNpemFibGUtcGFuZWwtZ3JvdXAnLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5SZXNpemFibGVHcm91cCB7XG5cdC8qKiBUaGUgaWQgb2YgdGhlIEJyblJlc2l6YWJsZUdyb3VwICovXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oYGJybi1yZXNpemFibGUtZ3JvdXAtJHsrK25leHRJZH1gKTtcblxuXHQvKiogSG9zdCBlbGVtZW50IHJlZmVyZW5jZS4gKi9cblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG5cdC8qKiBHcm91cCBvcmllbnRhdGlvbiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgZGlyZWN0aW9uID0gaW5wdXQ8J2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJz4oJ2hvcml6b250YWwnKTtcblxuXHQvKiogQGludGVybmFsIEFjY2VzcyBhbGwgdGhlIHBhbmVscyB3aXRoaW4gdGhlIGdyb3VwICovXG5cdHB1YmxpYyByZWFkb25seSBwYW5lbHMgPSBjb250ZW50Q2hpbGRyZW4oQnJuUmVzaXphYmxlUGFuZWwpO1xuXG5cdC8qKiBldmVudCB3aGVuIHJlc2l6ZSBzdGFydHMgKi9cblx0cHVibGljIHJlYWRvbmx5IGRyYWdTdGFydCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdC8qKiBldmVudCB3aGVuIHJlc2l6ZSBlbmRzICovXG5cdHB1YmxpYyByZWFkb25seSBkcmFnRW5kID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0LyoqIFJlc2l6ZSBwYW5lbCBncm91cCB0byB0aGUgc3BlY2lmaWVkIGxheW91dCAoWzEgLSAxMDAsIC4uLl0pLiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgbGF5b3V0ID0gbW9kZWw8bnVtYmVyW10+KFtdKTtcblxuXHQvKiogQ2FsbGVkIHdoZW4gZ3JvdXAgbGF5b3V0IGNoYW5nZXMgKi9cblx0cHVibGljIHJlYWRvbmx5IGxheW91dENoYW5nZWQgPSBvdXRwdXQ8bnVtYmVyW10+KCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuXHRwcml2YXRlIF9yZXNpemVSYWY6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG5cdHByaXZhdGUgX3BlbmRpbmdTaXplczogbnVtYmVyW10gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5faW5pdGlhbGl6ZVBhbmVsU2l6ZXMoKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRpYWxpemVQYW5lbFNpemVzKCk6IHZvaWQge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cdFx0Y29uc3QgdG90YWxQYW5lbHMgPSBwYW5lbHMubGVuZ3RoO1xuXG5cdFx0aWYgKHRvdGFsUGFuZWxzID09PSAwKSByZXR1cm47XG5cblx0XHRjb25zdCBzaXplczogbnVtYmVyW10gPSBbXTtcblxuXHRcdHBhbmVscy5mb3JFYWNoKChwYW5lbCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGRlZmF1bHRTaXplID0gcGFuZWwuZGVmYXVsdFNpemUoKSA/PyB0aGlzLmxheW91dCgpW2luZGV4XTtcblx0XHRcdGNvbnN0IHNpemUgPSBkZWZhdWx0U2l6ZSAhPT0gdW5kZWZpbmVkID8gZGVmYXVsdFNpemUgOiAxMDAgLyB0b3RhbFBhbmVscztcblx0XHRcdHNpemVzLnB1c2goc2l6ZSk7XG5cdFx0XHRwYW5lbC5zZXRTaXplKHNpemUpO1xuXHRcdH0pO1xuXG5cdFx0aWYgKHRoaXMubGF5b3V0KCkudG9TdHJpbmcoKSAhPT0gc2l6ZXMudG9TdHJpbmcoKSkge1xuXHRcdFx0dGhpcy5fc2V0TGF5b3V0KHNpemVzKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc3RhcnRSZXNpemUoaGFuZGxlSW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGNvbnN0IGN1cnNvciA9IHRoaXMuZGlyZWN0aW9uKCkgPT09ICd2ZXJ0aWNhbCcgPyAncm93LXJlc2l6ZScgOiAnY29sLXJlc2l6ZSc7XG5cdFx0dGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSBgJHtjdXJzb3J9YDtcblx0XHRjb25zdCBzaXplcyA9IFsuLi50aGlzLmxheW91dCgpXTtcblx0XHR0aGlzLmRyYWdTdGFydC5lbWl0KCk7XG5cblx0XHRjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5fZ2V0RXZlbnRQb3NpdGlvbihldmVudCk7XG5cdFx0Y29uc3Qgc3RhcnRTaXplcyA9IFsuLi5zaXplc107XG5cblx0XHRjb25zdCBoYW5kbGVNb3ZlID0gKG1vdmVFdmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHtcblx0XHRcdHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLl9oYW5kbGVSZXNpemUobW92ZUV2ZW50LCBoYW5kbGVJbmRleCwgc3RhcnRQb3NpdGlvbiwgc3RhcnRTaXplcyk7XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgaGFuZGxlRW5kID0gKCkgPT4ge1xuXHRcdFx0dGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5fZW5kUmVzaXplKCkpO1xuXG5cdFx0XHR0aGlzLl9kb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0Jztcblx0XHRcdHRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdmUpO1xuXHRcdFx0dGhpcy5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgaGFuZGxlTW92ZSk7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlRW5kKTtcblx0XHRcdHRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgaGFuZGxlRW5kKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBoYW5kbGVNb3ZlKTtcblx0XHRcdHRoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGhhbmRsZU1vdmUpO1xuXHRcdFx0dGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZUVuZCk7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGhhbmRsZUVuZCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9oYW5kbGVSZXNpemUoXG5cdFx0ZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxuXHRcdGhhbmRsZUluZGV4OiBudW1iZXIsXG5cdFx0c3RhcnRQb3NpdGlvbjogbnVtYmVyLFxuXHRcdHN0YXJ0U2l6ZXM6IG51bWJlcltdLFxuXHQpOiB2b2lkIHtcblx0XHRjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLl9nZXRFdmVudFBvc2l0aW9uKGV2ZW50KTtcblx0XHRjb25zdCBkZWx0YSA9IGN1cnJlbnRQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb247XG5cdFx0Y29uc3QgY29udGFpbmVyU2l6ZSA9IHRoaXMuX2dldENvbnRhaW5lclNpemUoKTtcblx0XHRjb25zdCBkZWx0YVBlcmNlbnRhZ2UgPSAoZGVsdGEgLyBjb250YWluZXJTaXplKSAqIDEwMDtcblxuXHRcdGNvbnN0IG5ld1NpemVzID0gWy4uLnN0YXJ0U2l6ZXNdO1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cblx0XHRjb25zdCBsZWZ0UGFuZWwgPSBwYW5lbHNbaGFuZGxlSW5kZXhdO1xuXHRcdGNvbnN0IHJpZ2h0UGFuZWwgPSBwYW5lbHNbaGFuZGxlSW5kZXggKyAxXTtcblxuXHRcdGlmICghbGVmdFBhbmVsIHx8ICFyaWdodFBhbmVsKSByZXR1cm47XG5cblx0XHRjb25zdCBsZWZ0TWluID0gbGVmdFBhbmVsLm1pblNpemUoKTtcblx0XHRjb25zdCBsZWZ0TWF4ID0gbGVmdFBhbmVsLm1heFNpemUoKTtcblx0XHRjb25zdCByaWdodE1pbiA9IHJpZ2h0UGFuZWwubWluU2l6ZSgpO1xuXHRcdGNvbnN0IHJpZ2h0TWF4ID0gcmlnaHRQYW5lbC5tYXhTaXplKCk7XG5cblx0XHRsZXQgbmV3TGVmdFNpemUgPSBzdGFydFNpemVzW2hhbmRsZUluZGV4XSArIGRlbHRhUGVyY2VudGFnZTtcblx0XHRsZXQgbmV3UmlnaHRTaXplID0gc3RhcnRTaXplc1toYW5kbGVJbmRleCArIDFdIC0gZGVsdGFQZXJjZW50YWdlO1xuXG5cdFx0bmV3TGVmdFNpemUgPSBNYXRoLm1heChsZWZ0TWluLCBNYXRoLm1pbihsZWZ0TWF4LCBuZXdMZWZ0U2l6ZSkpO1xuXHRcdG5ld1JpZ2h0U2l6ZSA9IE1hdGgubWF4KHJpZ2h0TWluLCBNYXRoLm1pbihyaWdodE1heCwgbmV3UmlnaHRTaXplKSk7XG5cblx0XHRjb25zdCB0b3RhbFNpemUgPSBuZXdMZWZ0U2l6ZSArIG5ld1JpZ2h0U2l6ZTtcblx0XHRjb25zdCBvcmlnaW5hbFRvdGFsID0gc3RhcnRTaXplc1toYW5kbGVJbmRleF0gKyBzdGFydFNpemVzW2hhbmRsZUluZGV4ICsgMV07XG5cblx0XHRpZiAoTWF0aC5hYnModG90YWxTaXplIC0gb3JpZ2luYWxUb3RhbCkgPCAwLjAxKSB7XG5cdFx0XHRuZXdTaXplc1toYW5kbGVJbmRleF0gPSBuZXdMZWZ0U2l6ZTtcblx0XHRcdG5ld1NpemVzW2hhbmRsZUluZGV4ICsgMV0gPSBuZXdSaWdodFNpemU7XG5cblx0XHRcdC8vIGJhdGNoIHVwZGF0ZVxuXHRcdFx0dGhpcy5fcXVldWVSZXNpemUobmV3U2l6ZXMpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX3F1ZXVlUmVzaXplKHNpemVzOiBudW1iZXJbXSk6IHZvaWQge1xuXHRcdHRoaXMuX3BlbmRpbmdTaXplcyA9IHNpemVzO1xuXG5cdFx0aWYgKHRoaXMuX3Jlc2l6ZVJhZiAhPT0gbnVsbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5fcmVzaXplUmFmID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcblx0XHRcdHRoaXMuX3Jlc2l6ZVJhZiA9IG51bGw7XG5cdFx0XHRpZiAodGhpcy5fcGVuZGluZ1NpemVzKSB7XG5cdFx0XHRcdHRoaXMuX3NldExheW91dCh0aGlzLl9wZW5kaW5nU2l6ZXMpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZVBhbmVsU3R5bGVzKCk7XG5cdFx0XHRcdHRoaXMuX3BlbmRpbmdTaXplcyA9IG51bGw7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9lbmRSZXNpemUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuX3Jlc2l6ZVJhZiAhPT0gbnVsbCkge1xuXHRcdFx0Y2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmVzaXplUmFmKTtcblx0XHRcdHRoaXMuX3Jlc2l6ZVJhZiA9IG51bGw7XG5cdFx0XHR0aGlzLl9wZW5kaW5nU2l6ZXMgPSBudWxsO1xuXHRcdH1cblx0XHR0aGlzLmRyYWdFbmQuZW1pdCgpO1xuXHR9XG5cblx0cHVibGljIHVwZGF0ZVBhbmVsU3R5bGVzKCk6IHZvaWQge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cdFx0Y29uc3Qgc2l6ZXMgPSB0aGlzLmxheW91dCgpO1xuXG5cdFx0cGFuZWxzLmZvckVhY2goKHBhbmVsLCBpbmRleCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2l6ZSA9IHNpemVzW2luZGV4XTtcblx0XHRcdGlmIChzaXplICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFuZWwuc2V0U2l6ZShzaXplKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldEV2ZW50UG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogbnVtYmVyIHtcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLmRpcmVjdGlvbigpO1xuXHRcdGlmIChldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcblx0XHRcdHJldHVybiBsYXlvdXQgPT09ICd2ZXJ0aWNhbCcgPyBldmVudC5jbGllbnRZIDogZXZlbnQuY2xpZW50WDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdO1xuXHRcdFx0cmV0dXJuIGxheW91dCA9PT0gJ3ZlcnRpY2FsJyA/IHRvdWNoLmNsaWVudFkgOiB0b3VjaC5jbGllbnRYO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2dldENvbnRhaW5lclNpemUoKTogbnVtYmVyIHtcblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLmRpcmVjdGlvbigpO1xuXHRcdHJldHVybiBsYXlvdXQgPT09ICd2ZXJ0aWNhbCcgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG5cdH1cblxuXHRwdWJsaWMgY29sbGFwc2VQYW5lbChpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMoKTtcblx0XHRjb25zdCBwYW5lbCA9IHBhbmVsc1tpbmRleF07XG5cblx0XHRpZiAoIXBhbmVsIHx8ICFwYW5lbC5jb2xsYXBzaWJsZSgpKSByZXR1cm47XG5cblx0XHRjb25zdCBzaXplcyA9IFsuLi50aGlzLmxheW91dCgpXTtcblx0XHRjb25zdCBpc0NvbGxhcHNlZCA9IHNpemVzW2luZGV4XSA9PT0gMDtcblxuXHRcdGlmIChpc0NvbGxhcHNlZCkge1xuXHRcdFx0Y29uc3QgcGFuZWxEZWZhdWx0U2l6ZSA9IHBhbmVsLmRlZmF1bHRTaXplKCk7XG5cdFx0XHRjb25zdCBkZWZhdWx0U2l6ZSA9IHBhbmVsRGVmYXVsdFNpemUgIT09IHVuZGVmaW5lZCA/IHBhbmVsRGVmYXVsdFNpemUgLyBwYW5lbHMubGVuZ3RoIDogMTAwIC8gcGFuZWxzLmxlbmd0aDtcblx0XHRcdHNpemVzW2luZGV4XSA9IGRlZmF1bHRTaXplO1xuXG5cdFx0XHRjb25zdCB0b3RhbE90aGVycyA9IHNpemVzLnJlZHVjZSgoc3VtLCBzaXplLCBpKSA9PiAoaSAhPT0gaW5kZXggPyBzdW0gKyBzaXplIDogc3VtKSwgMCk7XG5cdFx0XHRjb25zdCBzY2FsZSA9ICgxMDAgLSBkZWZhdWx0U2l6ZSkgLyB0b3RhbE90aGVycztcblxuXHRcdFx0c2l6ZXMuZm9yRWFjaCgoc2l6ZSwgaSkgPT4ge1xuXHRcdFx0XHRpZiAoaSAhPT0gaW5kZXgpIHtcblx0XHRcdFx0XHRzaXplc1tpXSA9IHNpemUgKiBzY2FsZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGNvbGxhcHNlZFNpemUgPSBzaXplc1tpbmRleF07XG5cdFx0XHRzaXplc1tpbmRleF0gPSAwO1xuXG5cdFx0XHRjb25zdCB0b3RhbE90aGVycyA9IHNpemVzLnJlZHVjZSgoc3VtLCBzaXplLCBpKSA9PiAoaSAhPT0gaW5kZXggPyBzdW0gKyBzaXplIDogc3VtKSwgMCk7XG5cdFx0XHRjb25zdCBzY2FsZSA9ICh0b3RhbE90aGVycyArIGNvbGxhcHNlZFNpemUpIC8gdG90YWxPdGhlcnM7XG5cblx0XHRcdHNpemVzLmZvckVhY2goKHNpemUsIGkpID0+IHtcblx0XHRcdFx0aWYgKGkgIT09IGluZGV4KSB7XG5cdFx0XHRcdFx0c2l6ZXNbaV0gPSBzaXplICogc2NhbGU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuX3NldExheW91dChzaXplcyk7XG5cdFx0dGhpcy51cGRhdGVQYW5lbFN0eWxlcygpO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2V0TGF5b3V0KHNpemVzOiBudW1iZXJbXSk6IHZvaWQge1xuXHRcdHRoaXMubGF5b3V0LnNldChzaXplcyk7XG5cdFx0dGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoc2l6ZXMpO1xuXHR9XG59XG4iXX0=","import { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\nimport * as i0 from \"@angular/core\";\nexport class BrnResizableHandle {\n /** Parent resizable group. */\n _resizable = inject(BrnResizableGroup);\n /** Host element reference. */\n _el = inject((ElementRef));\n /** Whether a visual handle is rendered inside the separator. */\n withHandle = input(false, { transform: booleanAttribute });\n /** Whether the handle is disabled (not interactive). */\n disabled = input(false, { transform: booleanAttribute });\n /** The direction of the resizable group (`horizontal` or `vertical`). */\n _direction = this._resizable.direction;\n /** Computed layout orientation based on the parent group. */\n _layout = computed(() => this._resizable?.direction() || 'horizontal');\n /** Index of this handle relative to panels in the group. */\n _handleIndex = 0;\n constructor() {\n afterNextRender(() => {\n this._handleIndex = this._getHandleIndex();\n });\n }\n _getHandleIndex() {\n const host = this._el.nativeElement;\n const parent = host.parentElement;\n if (!parent)\n return -1;\n // Collect all panels under this group\n const panels = Array.from(parent.querySelectorAll('[data-slot=\"resizable-panel\"]'));\n // Find the previous panel (the closest one before this handle)\n const prevPanel = host.previousElementSibling;\n if (!prevPanel)\n return -1;\n // Return its index among all panels\n return panels.indexOf(prevPanel);\n }\n _handleMouseDown(event) {\n if (this.disabled() || !this._resizable)\n return;\n this._resizable.startResize(this._handleIndex, event);\n }\n _handleKeyDown(event) {\n if (this.disabled())\n return;\n const panels = this._resizable.panels();\n const handleIndex = this._handleIndex;\n const layout = this._layout();\n let delta = 0;\n const step = event.shiftKey ? 10 : 1;\n switch (event.key) {\n case 'ArrowLeft':\n if (layout === 'horizontal')\n delta = -step;\n break;\n case 'ArrowRight':\n if (layout === 'horizontal')\n delta = step;\n break;\n case 'ArrowUp':\n if (layout === 'vertical')\n delta = -step;\n break;\n case 'ArrowDown':\n if (layout === 'vertical')\n delta = step;\n break;\n case 'Home':\n event.preventDefault();\n this._moveToExtreme(true);\n return;\n case 'End':\n event.preventDefault();\n this._moveToExtreme(false);\n return;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (panels[handleIndex]?.collapsible() || panels[handleIndex + 1]?.collapsible()) {\n const collapsibleIndex = panels[handleIndex]?.collapsible() ? handleIndex : handleIndex + 1;\n this._resizable.collapsePanel(collapsibleIndex);\n }\n return;\n default:\n return;\n }\n if (delta !== 0) {\n event.preventDefault();\n this._adjustSizes(delta);\n }\n }\n _getPanelContext() {\n const panels = this._resizable.panels();\n const li = this._handleIndex;\n const ri = li + 1;\n const left = panels[li];\n const right = panels[ri];\n if (!left || !right)\n return null;\n const sizes = [...this._resizable.layout()];\n return {\n sizes,\n li,\n ri,\n left,\n right,\n leftMin: left.minSize(),\n leftMax: left.maxSize(),\n rightMin: right.minSize(),\n rightMax: right.maxSize(),\n };\n }\n _adjustSizes(delta) {\n const ctx = this._getPanelContext();\n if (!ctx)\n return;\n let newLeftSize = ctx.sizes[ctx.li] + delta;\n let newRightSize = ctx.sizes[ctx.ri] - delta;\n newLeftSize = Math.max(ctx.leftMin, Math.min(ctx.leftMax, newLeftSize));\n newRightSize = Math.max(ctx.rightMin, Math.min(ctx.rightMax, newRightSize));\n const totalSize = newLeftSize + newRightSize;\n const originalTotal = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n if (Math.abs(totalSize - originalTotal) < 0.01) {\n ctx.sizes[ctx.li] = newLeftSize;\n ctx.sizes[ctx.ri] = newRightSize;\n this._resizable.layout.set(ctx.sizes);\n this._resizable.updatePanelStyles();\n }\n }\n _moveToExtreme(toMin) {\n const ctx = this._getPanelContext();\n if (!ctx)\n return;\n const totalSize = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n if (toMin) {\n ctx.sizes[ctx.li] = ctx.leftMin;\n ctx.sizes[ctx.ri] = Math.min(totalSize - ctx.leftMin, ctx.rightMax);\n }\n else {\n ctx.sizes[ctx.li] = Math.min(totalSize - ctx.rightMin, ctx.leftMax);\n ctx.sizes[ctx.ri] = ctx.rightMin;\n }\n this._resizable.layout.set(ctx.sizes);\n this._resizable.updatePanelStyles();\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnResizableHandle, isStandalone: true, selector: \"brn-resizable-handle, [brnResizeHandle]\", inputs: { withHandle: { classPropertyName: \"withHandle\", publicName: \"withHandle\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { \"mousedown\": \"_handleMouseDown($event)\", \"keydown\": \"_handleKeyDown($event)\" }, properties: { \"attr.data-layout\": \"_layout()\", \"attr.tabindex\": \"disabled() ? null : 0\", \"attr.role\": \"\\\"separator\\\"\", \"attr.data-panel-group-direction\": \"_direction()\", \"attr.aria-orientation\": \"_layout() === \\\"vertical\\\" ? \\\"horizontal\\\" : \\\"vertical\\\"\", \"attr.aria-disabled\": \"disabled()\" } }, exportAs: [\"brnResizableHandle\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableHandle, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-handle, [brnResizeHandle]',\n exportAs: 'brnResizableHandle',\n host: {\n '[attr.data-layout]': '_layout()',\n '[attr.tabindex]': 'disabled() ? null : 0',\n '[attr.role]': '\"separator\"',\n '[attr.data-panel-group-direction]': '_direction()',\n '[attr.aria-orientation]': '_layout() === \"vertical\" ? \"horizontal\" : \"vertical\"',\n '[attr.aria-disabled]': 'disabled()',\n '(mousedown)': '_handleMouseDown($event)',\n '(keydown)': '_handleKeyDown($event)',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3Jlc2l6YWJsZS9zcmMvbGliL2Jybi1yZXNpemFibGUtaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFnQjFELE1BQU0sT0FBTyxrQkFBa0I7SUFDOUIsOEJBQThCO0lBQ2IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXhELDhCQUE4QjtJQUNiLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUV2RCxnRUFBZ0U7SUFDaEQsVUFBVSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUVsRyx3REFBd0Q7SUFDeEMsUUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUVoRyx5RUFBeUU7SUFDdEQsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBRTFELDZEQUE2RDtJQUMxQyxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUM7SUFFMUYsNERBQTREO0lBQ3BELFlBQVksR0FBRyxDQUFDLENBQUM7SUFFekI7UUFDQyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxD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QUFFO3dCQUNMLG9CQUFvQixFQUFFLFdBQVc7d0JBQ2pDLGlCQUFpQixFQUFFLHVCQUF1Qjt3QkFDMUMsYUFBYSxFQUFFLGFBQWE7d0JBQzVCLG1DQUFtQyxFQUFFLGNBQWM7d0JBQ25ELHlCQUF5QixFQUFFLHNEQUFzRDt3QkFDakYsc0JBQXNCLEVBQUUsWUFBWTt3QkFDcEMsYUFBYSxFQUFFLDBCQUEwQjt3QkFDekMsV0FBVyxFQUFFLHdCQUF3QjtxQkFDckM7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIGJvb2xlYW5BdHRyaWJ1dGUsIGNvbXB1dGVkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyblJlc2l6YWJsZUdyb3VwIH0gZnJvbSAnLi9icm4tcmVzaXphYmxlLWdyb3VwJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1oYW5kbGUsIFticm5SZXNpemVIYW5kbGVdJyxcblx0ZXhwb3J0QXM6ICdicm5SZXNpemFibGVIYW5kbGUnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtbGF5b3V0XSc6ICdfbGF5b3V0KCknLFxuXHRcdCdbYXR0ci50YWJpbmRleF0nOiAnZGlzYWJsZWQoKSA/IG51bGwgOiAwJyxcblx0XHQnW2F0dHIucm9sZV0nOiAnXCJzZXBhcmF0b3JcIicsXG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtZGlyZWN0aW9uXSc6ICdfZGlyZWN0aW9uKCknLFxuXHRcdCdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdfbGF5b3V0KCkgPT09IFwidmVydGljYWxcIiA/IFwiaG9yaXpvbnRhbFwiIDogXCJ2ZXJ0aWNhbFwiJyxcblx0XHQnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG5cdFx0Jyhtb3VzZWRvd24pJzogJ19oYW5kbGVNb3VzZURvd24oJGV2ZW50KScsXG5cdFx0JyhrZXlkb3duKSc6ICdfaGFuZGxlS2V5RG93bigkZXZlbnQpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuUmVzaXphYmxlSGFuZGxlIHtcblx0LyoqIFBhcmVudCByZXNpemFibGUgZ3JvdXAuICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6YWJsZSA9IGluamVjdChCcm5SZXNpemFibGVHcm91cCk7XG5cblx0LyoqIEhvc3QgZWxlbWVudCByZWZlcmVuY2UuICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuXHQvKiogV2hldGhlciBhIHZpc3VhbCBoYW5kbGUgaXMgcmVuZGVyZWQgaW5zaWRlIHRoZSBzZXBhcmF0b3IuICovXG5cdHB1YmxpYyByZWFkb25seSB3aXRoSGFuZGxlID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cblx0LyoqIFdoZXRoZXIgdGhlIGhhbmRsZSBpcyBkaXNhYmxlZCAobm90IGludGVyYWN0aXZlKS4gKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cblx0LyoqIFRoZSBkaXJlY3Rpb24gb2YgdGhlIHJlc2l6YWJsZSBncm91cCAoYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGApLiAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2RpcmVjdGlvbiA9IHRoaXMuX3Jlc2l6YWJsZS5kaXJlY3Rpb247XG5cblx0LyoqIENvbXB1dGVkIGxheW91dCBvcmllbnRhdGlvbiBiYXNlZCBvbiB0aGUgcGFyZW50IGdyb3VwLiAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2xheW91dCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3Jlc2l6YWJsZT8uZGlyZWN0aW9uKCkgfHwgJ2hvcml6b250YWwnKTtcblxuXHQvKiogSW5kZXggb2YgdGhpcyBoYW5kbGUgcmVsYXRpdmUgdG8gcGFuZWxzIGluIHRoZSBncm91cC4gKi9cblx0cHJpdmF0ZSBfaGFuZGxlSW5kZXggPSAwO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9oYW5kbGVJbmRleCA9IHRoaXMuX2dldEhhbmRsZUluZGV4KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9nZXRIYW5kbGVJbmRleCgpOiBudW1iZXIge1xuXHRcdGNvbnN0IGhvc3QgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50O1xuXHRcdGNvbnN0IHBhcmVudCA9IGhvc3QucGFyZW50RWxlbWVudDtcblx0XHRpZiAoIXBhcmVudCkgcmV0dXJuIC0xO1xuXG5cdFx0Ly8gQ29sbGVjdCBhbGwgcGFuZWxzIHVuZGVyIHRoaXMgZ3JvdXBcblx0XHRjb25zdCBwYW5lbHMgPSBBcnJheS5mcm9tKHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zbG90PVwicmVzaXphYmxlLXBhbmVsXCJdJykpO1xuXG5cdFx0Ly8gRmluZCB0aGUgcHJldmlvdXMgcGFuZWwgKHRoZSBjbG9zZXN0IG9uZSBiZWZvcmUgdGhpcyBoYW5kbGUpXG5cdFx0Y29uc3QgcHJldlBhbmVsID0gaG9zdC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuXHRcdGlmICghcHJldlBhbmVsKSByZXR1cm4gLTE7XG5cblx0XHQvLyBSZXR1cm4gaXRzIGluZGV4IGFtb25nIGFsbCBwYW5lbHNcblx0XHRyZXR1cm4gcGFuZWxzLmluZGV4T2YocHJldlBhbmVsIGFzIEhUTUxFbGVtZW50KTtcblx0fVxuXG5cdHByb3RlY3RlZCBfaGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQoKSB8fCAhdGhpcy5fcmVzaXphYmxlKSByZXR1cm47XG5cdFx0dGhpcy5fcmVzaXphYmxlLnN0YXJ0UmVzaXplKHRoaXMuX2hhbmRsZUluZGV4LCBldmVudCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2hhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XG5cblx0XHRjb25zdCBwYW5lbHMgPSB0aGlzLl9yZXNpemFibGUucGFuZWxzKCk7XG5cdFx0Y29uc3QgaGFuZGxlSW5kZXggPSB0aGlzLl9oYW5kbGVJbmRleDtcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLl9sYXlvdXQoKTtcblxuXHRcdGxldCBkZWx0YSA9IDA7XG5cdFx0Y29uc3Qgc3RlcCA9IGV2ZW50LnNoaWZ0S2V5ID8gMTAgOiAxO1xuXG5cdFx0c3dpdGNoIChldmVudC5rZXkpIHtcblx0XHRcdGNhc2UgJ0Fycm93TGVmdCc6XG5cdFx0XHRcdGlmIChsYXlvdXQgPT09ICdob3Jpem9udGFsJykgZGVsdGEgPSAtc3RlcDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBcnJvd1JpZ2h0Jzpcblx0XHRcdFx0aWYgKGxheW91dCA9PT0gJ2hvcml6b250YWwnKSBkZWx0YSA9IHN0ZXA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQXJyb3dVcCc6XG5cdFx0XHRcdGlmIChsYXlvdXQgPT09ICd2ZXJ0aWNhbCcpIGRlbHRhID0gLXN0ZXA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQXJyb3dEb3duJzpcblx0XHRcdFx0aWYgKGxheW91dCA9PT0gJ3ZlcnRpY2FsJykgZGVsdGEgPSBzdGVwO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ0hvbWUnOlxuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHR0aGlzLl9tb3ZlVG9FeHRyZW1lKHRydWUpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHRjYXNlICdFbmQnOlxuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHR0aGlzLl9tb3ZlVG9FeHRyZW1lKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0Y2FzZSAnRW50ZXInOlxuXHRcdFx0Y2FzZSAnICc6XG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdGlmIChwYW5lbHNbaGFuZGxlSW5kZXhdPy5jb2xsYXBzaWJsZSgpIHx8IHBhbmVsc1toYW5kbGVJbmRleCArIDFdPy5jb2xsYXBzaWJsZSgpKSB7XG5cdFx0XHRcdFx0Y29uc3QgY29sbGFwc2libGVJbmRleCA9IHBhbmVsc1toYW5kbGVJbmRleF0/LmNvbGxhcHNpYmxlKCkgPyBoYW5kbGVJbmRleCA6IGhhbmRsZUluZGV4ICsgMTtcblx0XHRcdFx0XHR0aGlzLl9yZXNpemFibGUuY29sbGFwc2VQYW5lbChjb2xsYXBzaWJsZUluZGV4KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKGRlbHRhICE9PSAwKSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0dGhpcy5fYWRqdXN0U2l6ZXMoZGVsdGEpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2dldFBhbmVsQ29udGV4dCgpIHtcblx0XHRjb25zdCBwYW5lbHMgPSB0aGlzLl9yZXNpemFibGUucGFuZWxzKCk7XG5cdFx0Y29uc3QgbGkgPSB0aGlzLl9oYW5kbGVJbmRleDtcblx0XHRjb25zdCByaSA9IGxpICsgMTtcblxuXHRcdGNvbnN0IGxlZnQgPSBwYW5lbHNbbGldO1xuXHRcdGNvbnN0IHJpZ2h0ID0gcGFuZWxzW3JpXTtcblx0XHRpZiAoIWxlZnQgfHwgIXJpZ2h0KSByZXR1cm4gbnVsbDtcblxuXHRcdGNvbnN0IHNpemVzID0gWy4uLnRoaXMuX3Jlc2l6YWJsZS5sYXlvdXQoKV07XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0c2l6ZXMsXG5cdFx0XHRsaSxcblx0XHRcdHJpLFxuXHRcdFx0bGVmdCxcblx0XHRcdHJpZ2h0LFxuXHRcdFx0bGVmdE1pbjogbGVmdC5taW5TaXplKCksXG5cdFx0XHRsZWZ0TWF4OiBsZWZ0Lm1heFNpemUoKSxcblx0XHRcdHJpZ2h0TWluOiByaWdodC5taW5TaXplKCksXG5cdFx0XHRyaWdodE1heDogcmlnaHQubWF4U2l6ZSgpLFxuXHRcdH07XG5cdH1cblxuXHRwcml2YXRlIF9hZGp1c3RTaXplcyhkZWx0YTogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgY3R4ID0gdGhpcy5fZ2V0UGFuZWxDb250ZXh0KCk7XG5cdFx0aWYgKCFjdHgpIHJldHVybjtcblxuXHRcdGxldCBuZXdMZWZ0U2l6ZSA9IGN0eC5zaXplc1tjdHgubGldICsgZGVsdGE7XG5cdFx0bGV0IG5ld1JpZ2h0U2l6ZSA9IGN0eC5zaXplc1tjdHgucmldIC0gZGVsdGE7XG5cblx0XHRuZXdMZWZ0U2l6ZSA9IE1hdGgubWF4KGN0eC5sZWZ0TWluLCBNYXRoLm1pbihjdHgubGVmdE1heCwgbmV3TGVmdFNpemUpKTtcblx0XHRuZXdSaWdodFNpemUgPSBNYXRoLm1heChjdHgucmlnaHRNaW4sIE1hdGgubWluKGN0eC5yaWdodE1heCwgbmV3UmlnaHRTaXplKSk7XG5cblx0XHRjb25zdCB0b3RhbFNpemUgPSBuZXdMZWZ0U2l6ZSArIG5ld1JpZ2h0U2l6ZTtcblx0XHRjb25zdCBvcmlnaW5hbFRvdGFsID0gY3R4LnNpemVzW2N0eC5saV0gKyBjdHguc2l6ZXNbY3R4LnJpXTtcblxuXHRcdGlmIChNYXRoLmFicyh0b3RhbFNpemUgLSBvcmlnaW5hbFRvdGFsKSA8IDAuMDEpIHtcblx0XHRcdGN0eC5zaXplc1tjdHgubGldID0gbmV3TGVmdFNpemU7XG5cdFx0XHRjdHguc2l6ZXNbY3R4LnJpXSA9IG5ld1JpZ2h0U2l6ZTtcblxuXHRcdFx0dGhpcy5fcmVzaXphYmxlLmxheW91dC5zZXQoY3R4LnNpemVzKTtcblx0XHRcdHRoaXMuX3Jlc2l6YWJsZS51cGRhdGVQYW5lbFN0eWxlcygpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX21vdmVUb0V4dHJlbWUodG9NaW46IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRjb25zdCBjdHggPSB0aGlzLl9nZXRQYW5lbENvbnRleHQoKTtcblx0XHRpZiAoIWN0eCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgdG90YWxTaXplID0gY3R4LnNpemVzW2N0eC5saV0gKyBjdHguc2l6ZXNbY3R4LnJpXTtcblxuXHRcdGlmICh0b01pbikge1xuXHRcdFx0Y3R4LnNpemVzW2N0eC5saV0gPSBjdHgubGVmdE1pbjtcblx0XHRcdGN0eC5zaXplc1tjdHgucmldID0gTWF0aC5taW4odG90YWxTaXplIC0gY3R4LmxlZnRNaW4sIGN0eC5yaWdodE1heCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGN0eC5zaXplc1tjdHgubGldID0gTWF0aC5taW4odG90YWxTaXplIC0gY3R4LnJpZ2h0TWluLCBjdHgubGVmdE1heCk7XG5cdFx0XHRjdHguc2l6ZXNbY3R4LnJpXSA9IGN0eC5yaWdodE1pbjtcblx0XHR9XG5cblx0XHR0aGlzLl9yZXNpemFibGUubGF5b3V0LnNldChjdHguc2l6ZXMpO1xuXHRcdHRoaXMuX3Jlc2l6YWJsZS51cGRhdGVQYW5lbFN0eWxlcygpO1xuXHR9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1yZXNpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3Jlc2l6YWJsZS9zcmMvc3BhcnRhbi1uZy1icmFpbi1yZXNpemFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["nextId"],"mappings":"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"}