@3dsource/source-ui 0.0.1 → 0.0.3
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.
- package/fesm2022/3dsource-source-ui.mjs +74 -83
- package/fesm2022/3dsource-source-ui.mjs.map +1 -1
- package/lib/components/source-modal/components/source-modal.component.d.ts +6 -11
- package/lib/components/source-modal/interfaces/sourceModalData.interface.d.ts +2 -2
- package/lib/components/source-popover/components/source-popover-trigger.component.d.ts +5 -8
- package/lib/components/source-popover/services/sourcePopover.service.d.ts +2 -7
- package/lib/components/source-popover/tokens/sourcePopoverDataToken.d.ts +1 -1
- package/package.json +6 -6
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, inject, ChangeDetectionStrategy, ViewEncapsulation, InjectionToken, DestroyRef,
|
|
3
|
-
import {
|
|
2
|
+
import { Component, inject, signal, ChangeDetectionStrategy, ViewEncapsulation, InjectionToken, DestroyRef, Injector, Injectable, TemplateRef, viewChild, input, output, ViewContainerRef, effect, linkedSignal, computed, untracked, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
3
|
+
import { DialogRef, DIALOG_DATA } from '@angular/cdk/dialog';
|
|
4
4
|
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
import { defaultSourceButtonConfig, SourceIconButtonComponent, SourceButtonComponent } from '@3dsource/source-ui-native';
|
|
6
6
|
import * as i1 from 'ngx-scrollbar';
|
|
7
7
|
import { NgScrollbarModule } from 'ngx-scrollbar';
|
|
8
8
|
import { Overlay, OverlayConfig, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
9
9
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
10
|
-
import { Subject } from 'rxjs';
|
|
11
10
|
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
12
11
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
|
-
import {
|
|
12
|
+
import { first } from 'rxjs';
|
|
14
13
|
import { register } from 'swiper/element/bundle';
|
|
15
14
|
|
|
16
15
|
class SourceUiComponent {
|
|
@@ -22,43 +21,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
22
21
|
args: [{ selector: 'lib-source-ui', imports: [], template: ` <p>source-ui works!</p> ` }]
|
|
23
22
|
}] });
|
|
24
23
|
|
|
25
|
-
const SourceModalSize = {
|
|
26
|
-
SMALL: 'small',
|
|
27
|
-
DEFAULT: 'default',
|
|
28
|
-
};
|
|
29
|
-
|
|
30
24
|
class SourceModalComponent {
|
|
31
25
|
constructor() {
|
|
32
|
-
this
|
|
33
|
-
this.testID = 'modal';
|
|
34
|
-
this.stringContent = null;
|
|
26
|
+
this.#dialogRef = inject((DialogRef));
|
|
35
27
|
this.data = inject(DIALOG_DATA);
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
this.initModal();
|
|
28
|
+
this.size = signal(this.data?.size || 'default');
|
|
29
|
+
this.testID = signal(this.data?.testID || 'modal');
|
|
30
|
+
this.stringContent = signal(typeof this.data.content === 'string' ? this.data.content : null);
|
|
41
31
|
}
|
|
32
|
+
#dialogRef;
|
|
42
33
|
close(result) {
|
|
43
|
-
this
|
|
34
|
+
this.#dialogRef.close(result);
|
|
44
35
|
}
|
|
45
36
|
goBack() {
|
|
46
|
-
this
|
|
47
|
-
}
|
|
48
|
-
initModal() {
|
|
49
|
-
this.size = this.data?.size || SourceModalSize.DEFAULT;
|
|
50
|
-
this.testID = this.data?.testID || this.testID;
|
|
51
|
-
this.stringContent =
|
|
52
|
-
typeof this.data.content === 'string' ? this.data.content : null;
|
|
37
|
+
this.#dialogRef.close();
|
|
53
38
|
}
|
|
54
39
|
getButtonConfig(externalConfig) {
|
|
55
40
|
return {
|
|
56
|
-
...
|
|
41
|
+
...defaultSourceButtonConfig,
|
|
57
42
|
...externalConfig,
|
|
58
43
|
};
|
|
59
44
|
}
|
|
60
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: SourceModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: SourceModalComponent, isStandalone: true, selector: "src-modal", ngImport: i0, template: "<div\n class=\"src-modal\"\n [attr.data-testid]=\"testID\"\n [ngClass]=\"{ 'src-modal--small': size === 'small' }\"\n>\n <div class=\"src-modal__header\">\n @if (data['backButton']) {\n <src-icon-button\n class=\"src-modal__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID + '-header-back'\"\n (onClick)=\"goBack()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: SourceModalComponent, isStandalone: true, selector: "src-modal", ngImport: i0, template: "<div\n class=\"src-modal\"\n [attr.data-testid]=\"testID()\"\n [ngClass]=\"{ 'src-modal--small': size() === 'small' }\"\n>\n <div class=\"src-modal__header\">\n @if (data['backButton']) {\n <src-icon-button\n class=\"src-modal__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-back'\"\n (onClick)=\"goBack()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div\n class=\"src-modal__title\"\n [attr.data-testid]=\"testID() + '-header-title'\"\n >\n {{ data['headerTitle'] }}\n </div>\n\n @if (data['closeButton']) {\n <src-icon-button\n class=\"src-modal__close\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-close'\"\n (onClick)=\"close()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n\n <div\n class=\"src-modal__body\"\n [class.src-modal__body--scrollable]=\"scrollbar.isVerticallyScrollable()\"\n >\n <ng-scrollbar #scrollbar class=\"src-modal__scroll-box\">\n @if (stringContent(); as content) {\n <div [innerHTML]=\"content\"></div>\n }\n </ng-scrollbar>\n </div>\n\n @if (data.footerButtons) {\n <div class=\"src-modal__footer\">\n @for (footerButton of data.footerButtons; track footerButton.label) {\n <src-button\n [srcButtonConfig]=\"getButtonConfig(footerButton.srcButtonConfig)\"\n [customClass]=\"footerButton.className\"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}</src-button\n >\n }\n </div>\n }\n</div>\n", styles: [".src-modal{--srcModalWidth: 620px;--srcModalMaxWidth: calc(100% - 16px) ;--srcModalMaxHeight: 80vh;--srcModalBg: var(--src-color-bg-default);--srcModalBoxShadow: var(--src-shadow-large);--srcModalBorderRadius: var(--src-br-medium);--srcModalTitleSize: var(--src-fs-medium);--srcModalTitleLineHeight: var(--src-lh-medium);--srcModalTitleColor: var(--src-color-text-default);--srcModalBodyPadding: 20px;--srcModalTitleBorder: 1px solid var(--src-color-border-default, #e5e7eb);--srcModalFooterBorder: 1px solid var(--src-color-border-default, #e5e7eb);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;width:var(--srcModalWidth);max-width:var(--srcModalMaxWidth);max-height:var(--srcModalMaxHeight);margin:auto;background-color:var(--srcModalBg);border-radius:var(--srcModalBorderRadius);box-shadow:var(--srcModalBoxShadow)}.src-modal--small{--srcModalWidth: 380px}.src-modal__header{display:flex;padding:14px 16px 14px 20px;width:100%;border-bottom:var(--srcModalTitleBorder)}.src-modal__body{padding:var(--srcModalBodyPadding)}.src-modal__body--scrollable{padding:0 0 0 var(--srcModalBodyPadding)}.src-modal__body--scrollable .src-modal__scroll-box.ng-scrollbar{--scrollbar-border-radius: 0px;--scrollbar-thickness: 3;--scrollbar-offset: 8;--scrollbar-track-color: transparent;--scrollbar-thumb-color: var(--src-color-border-default, #e5e7eb);--scrollbar-thumb-hover-color: var(--src-scrollbar-thumb-color)}.src-modal__body .src-modal__scroll-box{max-height:100%}.src-modal__footer{display:flex;justify-content:flex-end;align-items:center;padding:16px;width:100%;border-top:var(--srcModalFooterBorder);gap:10px}.src-modal__title{font-size:var(--srcModalTitleSize);font-weight:var(--src-fw-semibold, 600);line-height:var(--srcModalTitleLineHeight);color:var(--srcModalTitleColor);word-break:break-word}.src-modal__back{margin-right:8px}.src-modal__close{margin-left:auto}.src-modal__close svg,.src-modal__back svg{width:20px;height:20px;fill:var(--src-color-icon-default)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SourceIconButtonComponent, selector: "src-icon-button", inputs: ["name", "type", "size", "shape", "counter", "isActive", "isDisabled", "data-testid"], outputs: ["onClick"] }, { kind: "ngmodule", type: NgScrollbarModule }, { kind: "component", type: i1.NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "component", type: SourceButtonComponent, selector: "src-button", inputs: ["type", "appearance", "colorScheme", "size", "customClass", "hasDisclosure", "isFullWidth", "isPressed", "isDisabled", "isLoading", "iconButton", "formID", "srcButtonConfig", "data-testid"], outputs: ["onClick", "onSubmit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
62
47
|
}
|
|
63
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: SourceModalComponent, decorators: [{
|
|
64
49
|
type: Component,
|
|
@@ -67,9 +52,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
67
52
|
SourceIconButtonComponent,
|
|
68
53
|
NgScrollbarModule,
|
|
69
54
|
SourceButtonComponent,
|
|
70
|
-
], template: "<div\n class=\"src-modal\"\n [attr.data-testid]=\"testID\"\n [ngClass]=\"{ 'src-modal--small': size === 'small' }\"\n>\n <div class=\"src-modal__header\">\n @if (data['backButton']) {\n <src-icon-button\n class=\"src-modal__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID + '-header-back'\"\n (onClick)=\"goBack()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div
|
|
55
|
+
], template: "<div\n class=\"src-modal\"\n [attr.data-testid]=\"testID()\"\n [ngClass]=\"{ 'src-modal--small': size() === 'small' }\"\n>\n <div class=\"src-modal__header\">\n @if (data['backButton']) {\n <src-icon-button\n class=\"src-modal__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-back'\"\n (onClick)=\"goBack()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div\n class=\"src-modal__title\"\n [attr.data-testid]=\"testID() + '-header-title'\"\n >\n {{ data['headerTitle'] }}\n </div>\n\n @if (data['closeButton']) {\n <src-icon-button\n class=\"src-modal__close\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-close'\"\n (onClick)=\"close()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n\n <div\n class=\"src-modal__body\"\n [class.src-modal__body--scrollable]=\"scrollbar.isVerticallyScrollable()\"\n >\n <ng-scrollbar #scrollbar class=\"src-modal__scroll-box\">\n @if (stringContent(); as content) {\n <div [innerHTML]=\"content\"></div>\n }\n </ng-scrollbar>\n </div>\n\n @if (data.footerButtons) {\n <div class=\"src-modal__footer\">\n @for (footerButton of data.footerButtons; track footerButton.label) {\n <src-button\n [srcButtonConfig]=\"getButtonConfig(footerButton.srcButtonConfig)\"\n [customClass]=\"footerButton.className\"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}</src-button\n >\n }\n </div>\n }\n</div>\n", styles: [".src-modal{--srcModalWidth: 620px;--srcModalMaxWidth: calc(100% - 16px) ;--srcModalMaxHeight: 80vh;--srcModalBg: var(--src-color-bg-default);--srcModalBoxShadow: var(--src-shadow-large);--srcModalBorderRadius: var(--src-br-medium);--srcModalTitleSize: var(--src-fs-medium);--srcModalTitleLineHeight: var(--src-lh-medium);--srcModalTitleColor: var(--src-color-text-default);--srcModalBodyPadding: 20px;--srcModalTitleBorder: 1px solid var(--src-color-border-default, #e5e7eb);--srcModalFooterBorder: 1px solid var(--src-color-border-default, #e5e7eb);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;width:var(--srcModalWidth);max-width:var(--srcModalMaxWidth);max-height:var(--srcModalMaxHeight);margin:auto;background-color:var(--srcModalBg);border-radius:var(--srcModalBorderRadius);box-shadow:var(--srcModalBoxShadow)}.src-modal--small{--srcModalWidth: 380px}.src-modal__header{display:flex;padding:14px 16px 14px 20px;width:100%;border-bottom:var(--srcModalTitleBorder)}.src-modal__body{padding:var(--srcModalBodyPadding)}.src-modal__body--scrollable{padding:0 0 0 var(--srcModalBodyPadding)}.src-modal__body--scrollable .src-modal__scroll-box.ng-scrollbar{--scrollbar-border-radius: 0px;--scrollbar-thickness: 3;--scrollbar-offset: 8;--scrollbar-track-color: transparent;--scrollbar-thumb-color: var(--src-color-border-default, #e5e7eb);--scrollbar-thumb-hover-color: var(--src-scrollbar-thumb-color)}.src-modal__body .src-modal__scroll-box{max-height:100%}.src-modal__footer{display:flex;justify-content:flex-end;align-items:center;padding:16px;width:100%;border-top:var(--srcModalFooterBorder);gap:10px}.src-modal__title{font-size:var(--srcModalTitleSize);font-weight:var(--src-fw-semibold, 600);line-height:var(--srcModalTitleLineHeight);color:var(--srcModalTitleColor);word-break:break-word}.src-modal__back{margin-right:8px}.src-modal__close{margin-left:auto}.src-modal__close svg,.src-modal__back svg{width:20px;height:20px;fill:var(--src-color-icon-default)}\n"] }]
|
|
71
56
|
}] });
|
|
72
57
|
|
|
58
|
+
const SourceModalSize = {
|
|
59
|
+
SMALL: 'small',
|
|
60
|
+
DEFAULT: 'default',
|
|
61
|
+
};
|
|
62
|
+
|
|
73
63
|
const SOURCE_POPOVER_DATA = new InjectionToken('SourcePopoverData');
|
|
74
64
|
|
|
75
65
|
const defaultSourcePopoverConfig = {
|
|
@@ -102,16 +92,18 @@ const defaultSourcePopoverConfig = {
|
|
|
102
92
|
|
|
103
93
|
class SourcePopoverService {
|
|
104
94
|
constructor() {
|
|
105
|
-
this
|
|
106
|
-
this
|
|
107
|
-
this
|
|
108
|
-
this
|
|
109
|
-
this
|
|
110
|
-
this.
|
|
111
|
-
}
|
|
112
|
-
get backButtonClicked$() {
|
|
113
|
-
return this.backButtonClickedSubject.asObservable();
|
|
95
|
+
this.#breakpointObserver = inject(BreakpointObserver);
|
|
96
|
+
this.#overlay = inject(Overlay);
|
|
97
|
+
this.#destroyRef$ = inject(DestroyRef);
|
|
98
|
+
this.#defaultSourcePopoverConfig = defaultSourcePopoverConfig;
|
|
99
|
+
this.#isMobile = signal(false);
|
|
100
|
+
this.backButtonClicked = signal(null);
|
|
114
101
|
}
|
|
102
|
+
#breakpointObserver;
|
|
103
|
+
#overlay;
|
|
104
|
+
#destroyRef$;
|
|
105
|
+
#defaultSourcePopoverConfig;
|
|
106
|
+
#isMobile;
|
|
115
107
|
show(overlayOrigin, viewContainerRef, override) {
|
|
116
108
|
const addedPanelClasses = ['src-popover-panel'];
|
|
117
109
|
const backdropClasses = ['src-popover-backdrop'];
|
|
@@ -119,44 +111,46 @@ class SourcePopoverService {
|
|
|
119
111
|
if (updatedConfig.panelCustomClass) {
|
|
120
112
|
addedPanelClasses.push(updatedConfig.panelCustomClass);
|
|
121
113
|
}
|
|
122
|
-
this
|
|
114
|
+
this.#breakpointObserver
|
|
123
115
|
.observe(updatedConfig.breakpointDesktop)
|
|
124
|
-
.pipe(takeUntilDestroyed(this
|
|
125
|
-
.subscribe((res) => this
|
|
126
|
-
if (this
|
|
116
|
+
.pipe(takeUntilDestroyed(this.#destroyRef$))
|
|
117
|
+
.subscribe((res) => this.#isMobile.set(!res.matches));
|
|
118
|
+
if (this.#isMobile()) {
|
|
127
119
|
addedPanelClasses.push('src-popover-panel--mobile');
|
|
128
120
|
backdropClasses.push('src-popover-backdrop--mobile');
|
|
129
121
|
}
|
|
130
|
-
const dropdownPositionStrategy = this
|
|
122
|
+
const dropdownPositionStrategy = this.#overlay
|
|
131
123
|
.position()
|
|
132
124
|
.flexibleConnectedTo(overlayOrigin.elementRef)
|
|
133
125
|
.withPositions(updatedConfig.position);
|
|
134
|
-
|
|
135
|
-
const drawerPositionStrategy = this.overlay
|
|
126
|
+
const drawerPositionStrategy = this.#overlay
|
|
136
127
|
.position()
|
|
137
128
|
.global()
|
|
138
129
|
.centerHorizontally()
|
|
139
130
|
.bottom('0px');
|
|
140
|
-
|
|
141
|
-
const scrollStrategy = this.overlay.scrollStrategies.reposition();
|
|
131
|
+
const scrollStrategy = this.#overlay.scrollStrategies.reposition();
|
|
142
132
|
const config = new OverlayConfig({
|
|
143
133
|
panelClass: addedPanelClasses,
|
|
144
134
|
hasBackdrop: updatedConfig.hasBackdrop,
|
|
145
135
|
backdropClass: backdropClasses,
|
|
146
|
-
positionStrategy: this
|
|
136
|
+
positionStrategy: this.#isMobile()
|
|
147
137
|
? drawerPositionStrategy
|
|
148
138
|
: dropdownPositionStrategy,
|
|
149
139
|
scrollStrategy: scrollStrategy,
|
|
150
|
-
width: this
|
|
140
|
+
width: this.#isMobile() ? '100%' : 'auto',
|
|
151
141
|
});
|
|
152
|
-
const overlayRef = this
|
|
153
|
-
const data = {
|
|
154
|
-
...updatedConfig,
|
|
155
|
-
overlayRef,
|
|
156
|
-
};
|
|
142
|
+
const overlayRef = this.#overlay.create(config);
|
|
157
143
|
const injector = Injector.create({
|
|
158
144
|
parent: viewContainerRef.injector,
|
|
159
|
-
providers: [
|
|
145
|
+
providers: [
|
|
146
|
+
{
|
|
147
|
+
provide: SOURCE_POPOVER_DATA,
|
|
148
|
+
useValue: {
|
|
149
|
+
...updatedConfig,
|
|
150
|
+
overlayRef,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
],
|
|
160
154
|
});
|
|
161
155
|
const template = new ComponentPortal(SourcePopoverComponent, viewContainerRef, injector);
|
|
162
156
|
overlayRef.attach(template);
|
|
@@ -166,29 +160,29 @@ class SourcePopoverService {
|
|
|
166
160
|
overlayRef.dispose();
|
|
167
161
|
}
|
|
168
162
|
emitBackAction(menuRef) {
|
|
169
|
-
this.
|
|
163
|
+
this.backButtonClicked.set(menuRef);
|
|
170
164
|
}
|
|
171
165
|
getUpdatedConfig(override) {
|
|
172
166
|
return {
|
|
173
167
|
srcPopoverTpl: override?.srcPopoverTpl,
|
|
174
|
-
headerTitle: override?.headerTitle ?? this
|
|
168
|
+
headerTitle: override?.headerTitle ?? this.#defaultSourcePopoverConfig.headerTitle,
|
|
175
169
|
hasBackButton: override?.hasBackButton ??
|
|
176
|
-
this
|
|
170
|
+
this.#defaultSourcePopoverConfig.hasBackButton,
|
|
177
171
|
hasCloseButton: override?.hasCloseButton ??
|
|
178
|
-
this
|
|
172
|
+
this.#defaultSourcePopoverConfig.hasCloseButton,
|
|
179
173
|
popoverMaxHeight: override?.popoverMaxHeight ??
|
|
180
|
-
this
|
|
174
|
+
this.#defaultSourcePopoverConfig.popoverMaxHeight,
|
|
181
175
|
panelCustomClass: override?.panelCustomClass ??
|
|
182
|
-
this
|
|
176
|
+
this.#defaultSourcePopoverConfig.panelCustomClass,
|
|
183
177
|
breakpointDesktop: override?.breakpointDesktop ??
|
|
184
|
-
this
|
|
178
|
+
this.#defaultSourcePopoverConfig.breakpointDesktop,
|
|
185
179
|
position: override?.position
|
|
186
180
|
? override?.position
|
|
187
|
-
: this
|
|
181
|
+
: this.#defaultSourcePopoverConfig.position,
|
|
188
182
|
closeOnBackdropClick: override?.closeOnBackdropClick ??
|
|
189
|
-
this
|
|
190
|
-
hasBackdrop: override?.hasBackdrop ?? this
|
|
191
|
-
testID: override?.testID ?? this
|
|
183
|
+
this.#defaultSourcePopoverConfig.closeOnBackdropClick,
|
|
184
|
+
hasBackdrop: override?.hasBackdrop ?? this.#defaultSourcePopoverConfig.hasBackdrop,
|
|
185
|
+
testID: override?.testID ?? this.#defaultSourcePopoverConfig.testID,
|
|
192
186
|
};
|
|
193
187
|
}
|
|
194
188
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: SourcePopoverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -224,6 +218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
224
218
|
|
|
225
219
|
class SourcePopoverTriggerComponent {
|
|
226
220
|
constructor() {
|
|
221
|
+
this.overlayOrigin = viewChild(CdkOverlayOrigin);
|
|
227
222
|
this.srcPopoverTpl = input.required();
|
|
228
223
|
this.headerTitle = input();
|
|
229
224
|
this.activeClass = input();
|
|
@@ -255,21 +250,20 @@ class SourcePopoverTriggerComponent {
|
|
|
255
250
|
this.onPopoverShown = output();
|
|
256
251
|
this.onBackButtonClick = output();
|
|
257
252
|
this.overlayRef = null;
|
|
258
|
-
this
|
|
259
|
-
this
|
|
260
|
-
this.
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
265
|
-
.subscribe(() => {
|
|
266
|
-
this.onBackButtonClick.emit(this.overlayRef);
|
|
253
|
+
this.#sourcePopoverService = inject(SourcePopoverService, { self: true });
|
|
254
|
+
this.#viewContainerRef = inject(ViewContainerRef);
|
|
255
|
+
this._ = effect(() => {
|
|
256
|
+
if (this.#sourcePopoverService.backButtonClicked()) {
|
|
257
|
+
this.onBackButtonClick.emit(this.overlayRef);
|
|
258
|
+
}
|
|
267
259
|
});
|
|
268
260
|
}
|
|
261
|
+
#sourcePopoverService;
|
|
262
|
+
#viewContainerRef;
|
|
269
263
|
showPopover() {
|
|
270
264
|
const config = {
|
|
271
265
|
srcPopoverTpl: this.srcPopoverTpl(),
|
|
272
|
-
overlayOrigin: this.overlayOrigin,
|
|
266
|
+
overlayOrigin: this.overlayOrigin(),
|
|
273
267
|
headerTitle: this.headerTitle(),
|
|
274
268
|
hasBackButton: this.hasBackButton(),
|
|
275
269
|
hasCloseButton: this.hasCloseButton(),
|
|
@@ -281,12 +275,12 @@ class SourcePopoverTriggerComponent {
|
|
|
281
275
|
closeOnBackdropClick: this.closeOnBackdropClick(),
|
|
282
276
|
testID: this.testID(),
|
|
283
277
|
};
|
|
284
|
-
this.overlayRef = this
|
|
278
|
+
this.overlayRef = this.#sourcePopoverService.show(this.overlayOrigin(), this.#viewContainerRef, config);
|
|
285
279
|
this.popoverShown.set(true);
|
|
286
280
|
this.onPopoverShown.emit(true);
|
|
287
281
|
this.overlayRef
|
|
288
282
|
.detachments()
|
|
289
|
-
.pipe(
|
|
283
|
+
.pipe(first())
|
|
290
284
|
.subscribe(() => {
|
|
291
285
|
this.popoverShown.set(false);
|
|
292
286
|
this.onPopoverShown.emit(false);
|
|
@@ -294,19 +288,16 @@ class SourcePopoverTriggerComponent {
|
|
|
294
288
|
});
|
|
295
289
|
this.overlayRef
|
|
296
290
|
.backdropClick()
|
|
297
|
-
.pipe(
|
|
291
|
+
.pipe(first())
|
|
298
292
|
.subscribe(() => this.overlayRef?.detach());
|
|
299
293
|
}
|
|
300
294
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: SourcePopoverTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
301
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
295
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.8", type: SourcePopoverTriggerComponent, isStandalone: true, selector: "src-popover-trigger", inputs: { srcPopoverTpl: { classPropertyName: "srcPopoverTpl", publicName: "srcPopoverTpl", isSignal: true, isRequired: true, transformFunction: null }, headerTitle: { classPropertyName: "headerTitle", publicName: "headerTitle", isSignal: true, isRequired: false, transformFunction: null }, activeClass: { classPropertyName: "activeClass", publicName: "activeClass", isSignal: true, isRequired: false, transformFunction: null }, hasBackButton: { classPropertyName: "hasBackButton", publicName: "hasBackButton", isSignal: true, isRequired: false, transformFunction: null }, hasCloseButton: { classPropertyName: "hasCloseButton", publicName: "hasCloseButton", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, popoverMaxHeight: { classPropertyName: "popoverMaxHeight", publicName: "popoverMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, panelCustomClass: { classPropertyName: "panelCustomClass", publicName: "panelCustomClass", isSignal: true, isRequired: false, transformFunction: null }, testID: { classPropertyName: "testID", publicName: "data-testid", isSignal: true, isRequired: false, transformFunction: null }, breakpointDesktop: { classPropertyName: "breakpointDesktop", publicName: "breakpointDesktop", isSignal: true, isRequired: false, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPopoverShown: "onPopoverShown", onBackButtonClick: "onBackButtonClick" }, providers: [SourcePopoverService], viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n cdkOverlayOrigin\n [attr.data-testid]=\"testID()\"\n (click)=\"showPopover()\"\n [class]=\"popoverShown() ? activeClass() || 'active' : ''\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
302
296
|
}
|
|
303
297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: SourcePopoverTriggerComponent, decorators: [{
|
|
304
298
|
type: Component,
|
|
305
299
|
args: [{ selector: 'src-popover-trigger', encapsulation: ViewEncapsulation.None, providers: [SourcePopoverService], changeDetection: ChangeDetectionStrategy.OnPush, imports: [CdkOverlayOrigin], template: "<div\n cdkOverlayOrigin\n [attr.data-testid]=\"testID()\"\n (click)=\"showPopover()\"\n [class]=\"popoverShown() ? activeClass() || 'active' : ''\"\n>\n <ng-content></ng-content>\n</div>\n" }]
|
|
306
|
-
}]
|
|
307
|
-
type: ViewChild,
|
|
308
|
-
args: [CdkOverlayOrigin]
|
|
309
|
-
}] } });
|
|
300
|
+
}] });
|
|
310
301
|
|
|
311
302
|
register();
|
|
312
303
|
class SourceTabLineComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3dsource-source-ui.mjs","sources":["../../../../projects/3dsource/source-ui/src/lib/components/source-ui.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/constants/sourceModalSize.const.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/tokens/sourcePopoverDataToken.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/interfaces/defaultSourcePopover.config.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/services/sourcePopover.service.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.html","../../../../projects/3dsource/source-ui/src/3dsource-source-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-source-ui',\n imports: [],\n template: ` <p>source-ui works!</p> `,\n styles: ``,\n})\nexport class SourceUiComponent {}\n","export const SourceModalSize = {\n SMALL: 'small',\n DEFAULT: 'default',\n};\nexport type SourceModalSizeKeys =\n (typeof SourceModalSize)[keyof typeof SourceModalSize];\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { NgClass } from '@angular/common';\nimport {\n SourceModalSize,\n SourceModalSizeKeys,\n} from '../constants/sourceModalSize.const';\nimport {\n defaultSourceButtonConfig,\n SourceButton,\n SourceButtonComponent,\n SourceIconButtonComponent,\n} from '@3dsource/source-ui-native';\nimport { SourceModalData } from '../interfaces';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\n\n@Component({\n selector: 'src-modal',\n templateUrl: './source-modal.component.html',\n styleUrls: ['./source-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n SourceIconButtonComponent,\n NgScrollbarModule,\n SourceButtonComponent,\n ],\n})\nexport class SourceModalComponent implements OnInit {\n size: SourceModalSizeKeys = 'default';\n testID = 'modal';\n stringContent: string | null = null;\n readonly data: SourceModalData = inject(DIALOG_DATA);\n private readonly dialogRef = inject(DialogRef<SourceModalComponent>);\n defaultButtonConfig = defaultSourceButtonConfig;\n\n ngOnInit() {\n this.initModal();\n }\n\n close(result?: any) {\n this.dialogRef.close(result);\n }\n\n goBack() {\n this.dialogRef.close();\n }\n\n private initModal() {\n this.size = this.data?.size || SourceModalSize.DEFAULT;\n this.testID = this.data?.testID || this.testID;\n this.stringContent =\n typeof this.data.content === 'string' ? this.data.content : null;\n }\n\n getButtonConfig(\n externalConfig: Partial<SourceButton> | undefined,\n ): SourceButton {\n return {\n ...this.defaultButtonConfig,\n ...externalConfig,\n };\n }\n}\n","<div\n class=\"src-modal\"\n [attr.data-testid]=\"testID\"\n [ngClass]=\"{ 'src-modal--small': size === 'small' }\"\n>\n <div class=\"src-modal__header\">\n @if (data['backButton']) {\n <src-icon-button\n class=\"src-modal__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID + '-header-back'\"\n (onClick)=\"goBack()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div class=\"src-modal__title\" [attr.data-testid]=\"testID + '-header-title'\">\n {{ data['headerTitle'] }}\n </div>\n\n @if (data['closeButton']) {\n <src-icon-button\n class=\"src-modal__close\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID + '-header-close'\"\n (onClick)=\"close()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n\n <div\n class=\"src-modal__body\"\n [class.src-modal__body--scrollable]=\"scrollbar.isVerticallyScrollable()\"\n >\n <ng-scrollbar #scrollbar class=\"src-modal__scroll-box\">\n @if (stringContent; as content) {\n <div [innerHTML]=\"content\"></div>\n }\n </ng-scrollbar>\n </div>\n\n @if (data.footerButtons) {\n <div class=\"src-modal__footer\">\n @for (footerButton of data.footerButtons; track footerButton.label) {\n <src-button\n [srcButtonConfig]=\"getButtonConfig(footerButton.srcButtonConfig)\"\n [customClass]=\"footerButton.className\"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}</src-button\n >\n }\n </div>\n }\n</div>\n","import { InjectionToken } from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces/sourcePopoverData.interface';\n\nexport const SOURCE_POPOVER_DATA = new InjectionToken<SourcePopoverData>(\n 'SourcePopoverData',\n);\n","import type {\n HorizontalConnectionPos,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from './sourcePopoverData.interface';\n\nexport const defaultSourcePopoverConfig: SourcePopoverData = {\n headerTitle: undefined,\n backButton: false,\n closeButton: true,\n popoverMaxHeight: 'auto',\n panelCustomClass: '',\n breakpointDesktop: '(min-width: 1024px)',\n hasBackdrop: true,\n closeOnBackdropClick: true,\n position: [\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'bottom' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'top' as VerticalConnectionPos,\n offsetY: 4,\n },\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'top' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'bottom' as VerticalConnectionPos,\n offsetY: -8,\n },\n ],\n testID: '',\n};\n","import {\n DestroyRef,\n inject,\n Injectable,\n Injector,\n signal,\n ViewContainerRef,\n} from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces';\nimport { defaultSourcePopoverConfig } from '../interfaces';\nimport {\n CdkOverlayOrigin,\n Overlay,\n OverlayConfig,\n OverlayRef,\n PositionStrategy,\n} from '@angular/cdk/overlay';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { SourcePopoverComponent } from '../components/source-popover.component';\nimport { Subject } from 'rxjs';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class SourcePopoverService {\n private readonly breakpointObserver = inject(BreakpointObserver);\n private readonly overlay = inject(Overlay);\n private readonly destroyRef$ = inject(DestroyRef);\n private readonly defaultSourcePopoverConfig = defaultSourcePopoverConfig;\n private readonly isMobile = signal(false);\n private readonly backButtonClickedSubject = new Subject<OverlayRef>();\n\n get backButtonClicked$() {\n return this.backButtonClickedSubject.asObservable();\n }\n\n show(\n overlayOrigin: CdkOverlayOrigin,\n viewContainerRef: ViewContainerRef,\n override: Partial<SourcePopoverData>,\n ): OverlayRef {\n const addedPanelClasses = ['src-popover-panel'];\n const backdropClasses = ['src-popover-backdrop'];\n const updatedConfig = this.getUpdatedConfig(override);\n\n if (updatedConfig.panelCustomClass) {\n addedPanelClasses.push(updatedConfig.panelCustomClass);\n }\n this.breakpointObserver\n .observe(updatedConfig.breakpointDesktop)\n .pipe(takeUntilDestroyed(this.destroyRef$))\n .subscribe((res) => this.isMobile.set(!res.matches));\n\n if (this.isMobile()) {\n addedPanelClasses.push('src-popover-panel--mobile');\n backdropClasses.push('src-popover-backdrop--mobile');\n }\n\n const dropdownPositionStrategy: PositionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(overlayOrigin.elementRef)\n .withPositions(updatedConfig.position);\n\n // mobile position\n const drawerPositionStrategy: PositionStrategy = this.overlay\n .position()\n .global()\n .centerHorizontally()\n .bottom('0px');\n\n // close popover when scrolls\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n const config = new OverlayConfig({\n panelClass: addedPanelClasses,\n hasBackdrop: updatedConfig.hasBackdrop,\n backdropClass: backdropClasses,\n positionStrategy: this.isMobile()\n ? drawerPositionStrategy\n : dropdownPositionStrategy,\n scrollStrategy: scrollStrategy,\n width: this.isMobile() ? '100%' : 'auto',\n });\n\n const overlayRef: OverlayRef = this.overlay.create(config);\n const data: SourcePopoverData = {\n ...updatedConfig,\n overlayRef,\n };\n const injector = Injector.create({\n parent: viewContainerRef.injector,\n providers: [{ provide: SOURCE_POPOVER_DATA, useValue: data }],\n });\n const template = new ComponentPortal(\n SourcePopoverComponent,\n viewContainerRef,\n injector,\n );\n overlayRef.attach(template);\n return overlayRef;\n }\n\n closePopover(overlayRef: OverlayRef) {\n overlayRef.dispose();\n }\n\n emitBackAction(menuRef: OverlayRef) {\n this.backButtonClickedSubject.next(menuRef);\n }\n\n getUpdatedConfig(override: Partial<SourcePopoverData>): SourcePopoverData {\n return {\n srcPopoverTpl: override?.srcPopoverTpl,\n headerTitle:\n override?.headerTitle ?? this.defaultSourcePopoverConfig.headerTitle,\n hasBackButton:\n override?.hasBackButton ??\n this.defaultSourcePopoverConfig.hasBackButton,\n hasCloseButton:\n override?.hasCloseButton ??\n this.defaultSourcePopoverConfig.hasCloseButton,\n popoverMaxHeight:\n override?.popoverMaxHeight ??\n this.defaultSourcePopoverConfig.popoverMaxHeight,\n panelCustomClass:\n override?.panelCustomClass ??\n this.defaultSourcePopoverConfig.panelCustomClass,\n breakpointDesktop:\n override?.breakpointDesktop ??\n this.defaultSourcePopoverConfig.breakpointDesktop,\n position: override?.position\n ? override?.position\n : this.defaultSourcePopoverConfig.position,\n closeOnBackdropClick:\n override?.closeOnBackdropClick ??\n this.defaultSourcePopoverConfig.closeOnBackdropClick,\n hasBackdrop:\n override?.hasBackdrop ?? this.defaultSourcePopoverConfig.hasBackdrop,\n testID: override?.testID ?? this.defaultSourcePopoverConfig.testID,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { SourcePopoverService } from '../services';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { SourceIconButtonComponent } from '@3dsource/source-ui-native';\n\n@Component({\n selector: 'src-popover',\n templateUrl: './source-popover.component.html',\n styleUrls: ['./source-popover.component.scss'],\n imports: [SourceIconButtonComponent, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourcePopoverComponent {\n readonly data = inject(SOURCE_POPOVER_DATA);\n template = signal(\n this.data.srcPopoverTpl instanceof TemplateRef\n ? this.data.srcPopoverTpl\n : null,\n );\n testID = signal(this.data.testID || 'popover');\n #sourcePopoverService = inject(SourcePopoverService);\n\n close() {\n this.#sourcePopoverService.closePopover(this.data.overlayRef!);\n }\n\n emitBackAction() {\n this.#sourcePopoverService.emitBackAction(this.data.overlayRef!);\n }\n}\n","<div\n class=\"src-popover\"\n [style.maxHeight]=\"data.popoverMaxHeight\"\n [attr.data-testid]=\"testID()\"\n>\n @if (\n data['hasBackButton'] ||\n data['hasCloseButton'] ||\n (data['headerTitle'] && data['headerTitle'] !== '')\n ) {\n <div class=\"src-popover__header\">\n @if (data['hasBackButton']) {\n <src-icon-button\n class=\"src-popover__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-back'\"\n (onClick)=\"emitBackAction()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div\n class=\"src-popover__title\"\n [attr.data-testid]=\"testID() + '-header-title'\"\n >\n {{ data.headerTitle }}\n </div>\n\n @if (data['hasCloseButton']) {\n <src-icon-button\n class=\"src-popover__close\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-close'\"\n (click)=\"close()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n }\n\n <div class=\"src-popover__body\">\n @if (template()) {\n <ng-template [ngTemplateOutlet]=\"template()\"></ng-template>\n }\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n input,\n OnInit,\n output,\n signal,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CdkOverlayOrigin,\n ConnectedPosition,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from '../interfaces';\nimport { SourcePopoverService } from '../services';\nimport { take } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'src-popover-trigger',\n templateUrl: './source-popover-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [SourcePopoverService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkOverlayOrigin],\n})\nexport class SourcePopoverTriggerComponent implements OnInit {\n srcPopoverTpl = input.required<TemplateRef<HTMLElement>>();\n headerTitle = input<string>();\n activeClass = input<string>();\n hasBackButton = input(false);\n hasCloseButton = input(true);\n hasBackdrop = input(true);\n closeOnBackdropClick = input(true);\n popoverMaxHeight = input('auto');\n panelCustomClass = input<string>();\n testID = input('', { alias: 'data-testid' });\n breakpointDesktop = input('(min-width: 1024px)');\n positions = input<ConnectedPosition[]>([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ]);\n\n @ViewChild(CdkOverlayOrigin) overlayOrigin!: CdkOverlayOrigin;\n popoverShown = signal(false);\n onPopoverShown = output<boolean>();\n onBackButtonClick = output<OverlayRef>();\n overlayRef: OverlayRef | null = null;\n readonly sourcePopoverService = inject(SourcePopoverService, { self: true });\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n\n ngOnInit() {\n this.sourcePopoverService.backButtonClicked$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.onBackButtonClick.emit(this.overlayRef!);\n });\n }\n\n showPopover() {\n const config: Partial<SourcePopoverData> = {\n srcPopoverTpl: this.srcPopoverTpl(),\n overlayOrigin: this.overlayOrigin,\n headerTitle: this.headerTitle(),\n hasBackButton: this.hasBackButton(),\n hasCloseButton: this.hasCloseButton(),\n popoverMaxHeight: this.popoverMaxHeight(),\n panelCustomClass: this.panelCustomClass(),\n breakpointDesktop: this.breakpointDesktop(),\n position: this.positions(),\n hasBackdrop: this.hasBackdrop(),\n closeOnBackdropClick: this.closeOnBackdropClick(),\n testID: this.testID(),\n };\n\n this.overlayRef = this.sourcePopoverService.show(\n this.overlayOrigin,\n this.viewContainerRef,\n config,\n );\n\n this.popoverShown.set(true);\n this.onPopoverShown.emit(true);\n\n this.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.popoverShown.set(false);\n this.onPopoverShown.emit(false);\n this.overlayRef = null;\n });\n\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => this.overlayRef?.detach());\n }\n}\n","<div\n cdkOverlayOrigin\n [attr.data-testid]=\"testID()\"\n (click)=\"showPopover()\"\n [class]=\"popoverShown() ? activeClass() || 'active' : ''\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n effect,\n ElementRef,\n input,\n linkedSignal,\n output,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { register } from 'swiper/element/bundle';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\nregister();\n\n@Component({\n selector: 'src-tab-line',\n templateUrl: './source-tab-line.component.html',\n styleUrls: ['./source-tab-line.component.scss'],\n imports: [NgClass, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SourceTabLineComponent {\n swiperRef = viewChild<ElementRef>('swiperRef');\n tabs = input.required<any[]>();\n\n label = input.required<string>();\n selectedIndex = input(0);\n isCompact = input(false);\n offsetBefore = input(0);\n offsetAfter = input(0);\n spaceBetween = input(0);\n isFullWidth = input(false);\n isSwiper = input(false);\n testID = input('', { alias: 'data-testid' });\n tabsSelectedIndex = linkedSignal(() => this.selectedIndex());\n onSelectTab = output<number>();\n\n classes = computed(() =>\n this.isFullWidth() ? ['src-tab-line--full-width'] : [],\n );\n variables = computed(\n () =>\n `--srcTabsOffsetBefore: ${this.tabsOffsetBefore()}px; --srcTabsOffsetAfter: ${this.tabsOffsetAfter()}px; --srcTabsSpaceBetween: ${this.spacing()}px;`,\n );\n tabsOffsetBefore = computed(\n () => this.offsetBefore() || (this.isCompact() ? 8 : 16),\n );\n tabsOffsetAfter = computed(\n () => this.offsetAfter() || (this.isCompact() ? 8 : 16),\n );\n spacing = computed(() => this.spaceBetween() || (this.isCompact() ? 0 : 4));\n\n _ = effect(() => {\n const swiperRef = this.swiperRef();\n untracked(() => {\n if (!swiperRef?.nativeElement || !this.isSwiper()) return;\n Object.assign(swiperRef.nativeElement, {\n spaceBetween: this.spacing(),\n slidesOffsetBefore: this.tabsOffsetBefore(),\n slidesOffsetAfter: this.tabsOffsetAfter(),\n slidesPerView: 'auto',\n centeredSlides: false,\n slideToClickedSlide: true,\n });\n swiperRef.nativeElement.initialize();\n });\n });\n\n selectTab(tabIndex: number) {\n this.tabsSelectedIndex.set(tabIndex);\n this.onSelectTab.emit(tabIndex);\n }\n}\n","<div class=\"src-tab-line\" [ngClass]=\"classes()\" [attr.data-testid]=\"testID()\">\n @if (isSwiper()) {\n <div class=\"src-tabs__nav src-tabs__nav--swiper\">\n <swiper-container #swiperRef init=\"false\">\n @for (tab of tabs(); track tab) {\n <swiper-slide\n class=\"src-tabs__nav-slide\"\n [attr.data-testid]=\"testID() + '-slide-' + $index\"\n >\n <ng-container\n [ngTemplateOutlet]=\"slideTemplate\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n >\n </ng-container>\n </swiper-slide>\n }\n </swiper-container>\n </div>\n } @else {\n <div class=\"src-tabs__nav\" [style]=\"variables()\">\n @for (tab of tabs(); track tab) {\n <div\n class=\"src-tabs__nav-slide\"\n [attr.data-testid]=\"testID() + '-slide-' + $index\"\n >\n <ng-container\n [ngTemplateOutlet]=\"slideTemplate\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n</div>\n\n<ng-template #slideTemplate let-tab=\"tab\" let-i=\"index\">\n <div\n class=\"src-tabs__nav-item\"\n (click)=\"selectTab(i)\"\n [class.src-tabs__nav-item--active]=\"i === tabsSelectedIndex()\"\n [class.src-disabled]=\"tab.isDisabled\"\n >\n <div class=\"text-label\" [attr.data-testid]=\"testID() + '-tab-label-' + i\">\n {{ tab[label()] }}\n </div>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { SourceTabData } from '../../interfaces';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { SwiperOptions } from 'swiper/types';\nimport { SourceTabLineComponent } from '../../../source-tab-line';\n\n@Component({\n selector: 'src-tabs',\n templateUrl: './source-tabs.component.html',\n imports: [NgTemplateOutlet, SourceTabLineComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabsComponent {\n label = input.required<string>();\n data = input.required<SourceTabData[]>();\n selectedIndex = input(0);\n headerTemplate = input<TemplateRef<any>>();\n isCompact = input(false);\n isFullWidth = input(false);\n isSwiper = input(false);\n swiperConfig = input<SwiperOptions>();\n testID = input('', { alias: 'data-testid' });\n onSelectTab = output<number>();\n\n setActive(idx: number) {\n this.onSelectTab.emit(idx);\n }\n}\n","<div class=\"src-tabs\">\n <ng-template #defaultTabsHeader>\n <src-tab-line\n [tabs]=\"data()\"\n [label]=\"label()\"\n [isCompact]=\"isCompact()\"\n [isFullWidth]=\"isFullWidth()\"\n [selectedIndex]=\"selectedIndex()\"\n [isSwiper]=\"isSwiper()\"\n [data-testid]=\"testID()\"\n (onSelectTab)=\"setActive($event)\"\n ></src-tab-line>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate() ? headerTemplate()! : defaultTabsHeader;\n context: { tabs: this.data }\n \"\n >\n </ng-container>\n\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'src-tab',\n templateUrl: './source-tab.component.html',\n styleUrls: ['./source-tab.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabComponent {\n isActive = input(false);\n}\n","<div [hidden]=\"!isActive()\" class=\"src-tab-content\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"3dsource-source-ui.mjs","sources":["../../../../projects/3dsource/source-ui/src/lib/components/source-ui.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/constants/sourceModalSize.const.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/tokens/sourcePopoverDataToken.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/interfaces/defaultSourcePopover.config.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/services/sourcePopover.service.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.html","../../../../projects/3dsource/source-ui/src/3dsource-source-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-source-ui',\n imports: [],\n template: ` <p>source-ui works!</p> `,\n styles: ``,\n})\nexport class SourceUiComponent {}\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport type { SourceModalSizeKeys } from '../constants/sourceModalSize.const';\nimport {\n defaultSourceButtonConfig,\n SourceButton,\n SourceButtonComponent,\n SourceIconButtonComponent,\n} from '@3dsource/source-ui-native';\nimport type { SourceModalData } from '../interfaces';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\n\n@Component({\n selector: 'src-modal',\n templateUrl: './source-modal.component.html',\n styleUrls: ['./source-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n SourceIconButtonComponent,\n NgScrollbarModule,\n SourceButtonComponent,\n ],\n})\nexport class SourceModalComponent {\n #dialogRef = inject(DialogRef<SourceModalComponent>);\n readonly data: SourceModalData = inject(DIALOG_DATA);\n size = signal<SourceModalSizeKeys>(this.data?.size || 'default');\n testID = signal(this.data?.testID || 'modal');\n stringContent = signal<string | null>(\n typeof this.data.content === 'string' ? this.data.content : null,\n );\n\n close(result?: any) {\n this.#dialogRef.close(result);\n }\n\n goBack() {\n this.#dialogRef.close();\n }\n\n getButtonConfig(\n externalConfig: Partial<SourceButton> | undefined,\n ): SourceButton {\n return {\n ...defaultSourceButtonConfig,\n ...externalConfig,\n };\n }\n}\n","<div\n class=\"src-modal\"\n [attr.data-testid]=\"testID()\"\n [ngClass]=\"{ 'src-modal--small': size() === 'small' }\"\n>\n <div class=\"src-modal__header\">\n @if (data['backButton']) {\n <src-icon-button\n class=\"src-modal__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-back'\"\n (onClick)=\"goBack()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div\n class=\"src-modal__title\"\n [attr.data-testid]=\"testID() + '-header-title'\"\n >\n {{ data['headerTitle'] }}\n </div>\n\n @if (data['closeButton']) {\n <src-icon-button\n class=\"src-modal__close\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-close'\"\n (onClick)=\"close()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n\n <div\n class=\"src-modal__body\"\n [class.src-modal__body--scrollable]=\"scrollbar.isVerticallyScrollable()\"\n >\n <ng-scrollbar #scrollbar class=\"src-modal__scroll-box\">\n @if (stringContent(); as content) {\n <div [innerHTML]=\"content\"></div>\n }\n </ng-scrollbar>\n </div>\n\n @if (data.footerButtons) {\n <div class=\"src-modal__footer\">\n @for (footerButton of data.footerButtons; track footerButton.label) {\n <src-button\n [srcButtonConfig]=\"getButtonConfig(footerButton.srcButtonConfig)\"\n [customClass]=\"footerButton.className\"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}</src-button\n >\n }\n </div>\n }\n</div>\n","export const SourceModalSize = {\n SMALL: 'small',\n DEFAULT: 'default',\n};\nexport type SourceModalSizeKeys =\n (typeof SourceModalSize)[keyof typeof SourceModalSize];\n","import { InjectionToken } from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces';\n\nexport const SOURCE_POPOVER_DATA = new InjectionToken<SourcePopoverData>(\n 'SourcePopoverData',\n);\n","import type {\n HorizontalConnectionPos,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from './sourcePopoverData.interface';\n\nexport const defaultSourcePopoverConfig: SourcePopoverData = {\n headerTitle: undefined,\n backButton: false,\n closeButton: true,\n popoverMaxHeight: 'auto',\n panelCustomClass: '',\n breakpointDesktop: '(min-width: 1024px)',\n hasBackdrop: true,\n closeOnBackdropClick: true,\n position: [\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'bottom' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'top' as VerticalConnectionPos,\n offsetY: 4,\n },\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'top' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'bottom' as VerticalConnectionPos,\n offsetY: -8,\n },\n ],\n testID: '',\n};\n","import {\n DestroyRef,\n inject,\n Injectable,\n Injector,\n signal,\n ViewContainerRef,\n} from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces';\nimport { defaultSourcePopoverConfig } from '../interfaces';\nimport {\n CdkOverlayOrigin,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { SourcePopoverComponent } from '../components/source-popover.component';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class SourcePopoverService {\n #breakpointObserver = inject(BreakpointObserver);\n #overlay = inject(Overlay);\n #destroyRef$ = inject(DestroyRef);\n #defaultSourcePopoverConfig = defaultSourcePopoverConfig;\n #isMobile = signal(false);\n readonly backButtonClicked = signal<OverlayRef | null>(null);\n\n show(\n overlayOrigin: CdkOverlayOrigin,\n viewContainerRef: ViewContainerRef,\n override: Partial<SourcePopoverData>,\n ): OverlayRef {\n const addedPanelClasses = ['src-popover-panel'];\n const backdropClasses = ['src-popover-backdrop'];\n const updatedConfig = this.getUpdatedConfig(override);\n\n if (updatedConfig.panelCustomClass) {\n addedPanelClasses.push(updatedConfig.panelCustomClass);\n }\n this.#breakpointObserver\n .observe(updatedConfig.breakpointDesktop)\n .pipe(takeUntilDestroyed(this.#destroyRef$))\n .subscribe((res) => this.#isMobile.set(!res.matches));\n\n if (this.#isMobile()) {\n addedPanelClasses.push('src-popover-panel--mobile');\n backdropClasses.push('src-popover-backdrop--mobile');\n }\n\n const dropdownPositionStrategy = this.#overlay\n .position()\n .flexibleConnectedTo(overlayOrigin.elementRef)\n .withPositions(updatedConfig.position);\n const drawerPositionStrategy = this.#overlay\n .position()\n .global()\n .centerHorizontally()\n .bottom('0px');\n const scrollStrategy = this.#overlay.scrollStrategies.reposition();\n const config = new OverlayConfig({\n panelClass: addedPanelClasses,\n hasBackdrop: updatedConfig.hasBackdrop,\n backdropClass: backdropClasses,\n positionStrategy: this.#isMobile()\n ? drawerPositionStrategy\n : dropdownPositionStrategy,\n scrollStrategy: scrollStrategy,\n width: this.#isMobile() ? '100%' : 'auto',\n });\n\n const overlayRef = this.#overlay.create(config);\n const injector = Injector.create({\n parent: viewContainerRef.injector,\n providers: [\n {\n provide: SOURCE_POPOVER_DATA,\n useValue: {\n ...updatedConfig,\n overlayRef,\n },\n },\n ],\n });\n const template = new ComponentPortal(\n SourcePopoverComponent,\n viewContainerRef,\n injector,\n );\n overlayRef.attach(template);\n return overlayRef;\n }\n\n closePopover(overlayRef: OverlayRef) {\n overlayRef.dispose();\n }\n\n emitBackAction(menuRef: OverlayRef) {\n this.backButtonClicked.set(menuRef);\n }\n\n getUpdatedConfig(override: Partial<SourcePopoverData>): SourcePopoverData {\n return {\n srcPopoverTpl: override?.srcPopoverTpl,\n headerTitle:\n override?.headerTitle ?? this.#defaultSourcePopoverConfig.headerTitle,\n hasBackButton:\n override?.hasBackButton ??\n this.#defaultSourcePopoverConfig.hasBackButton,\n hasCloseButton:\n override?.hasCloseButton ??\n this.#defaultSourcePopoverConfig.hasCloseButton,\n popoverMaxHeight:\n override?.popoverMaxHeight ??\n this.#defaultSourcePopoverConfig.popoverMaxHeight,\n panelCustomClass:\n override?.panelCustomClass ??\n this.#defaultSourcePopoverConfig.panelCustomClass,\n breakpointDesktop:\n override?.breakpointDesktop ??\n this.#defaultSourcePopoverConfig.breakpointDesktop,\n position: override?.position\n ? override?.position\n : this.#defaultSourcePopoverConfig.position,\n closeOnBackdropClick:\n override?.closeOnBackdropClick ??\n this.#defaultSourcePopoverConfig.closeOnBackdropClick,\n hasBackdrop:\n override?.hasBackdrop ?? this.#defaultSourcePopoverConfig.hasBackdrop,\n testID: override?.testID ?? this.#defaultSourcePopoverConfig.testID,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { SourcePopoverService } from '../services';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { SourceIconButtonComponent } from '@3dsource/source-ui-native';\n\n@Component({\n selector: 'src-popover',\n templateUrl: './source-popover.component.html',\n styleUrls: ['./source-popover.component.scss'],\n imports: [SourceIconButtonComponent, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourcePopoverComponent {\n readonly data = inject(SOURCE_POPOVER_DATA);\n template = signal(\n this.data.srcPopoverTpl instanceof TemplateRef\n ? this.data.srcPopoverTpl\n : null,\n );\n testID = signal(this.data.testID || 'popover');\n #sourcePopoverService = inject(SourcePopoverService);\n\n close() {\n this.#sourcePopoverService.closePopover(this.data.overlayRef!);\n }\n\n emitBackAction() {\n this.#sourcePopoverService.emitBackAction(this.data.overlayRef!);\n }\n}\n","<div\n class=\"src-popover\"\n [style.maxHeight]=\"data.popoverMaxHeight\"\n [attr.data-testid]=\"testID()\"\n>\n @if (\n data['hasBackButton'] ||\n data['hasCloseButton'] ||\n (data['headerTitle'] && data['headerTitle'] !== '')\n ) {\n <div class=\"src-popover__header\">\n @if (data['hasBackButton']) {\n <src-icon-button\n class=\"src-popover__back\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-back'\"\n (onClick)=\"emitBackAction()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div\n class=\"src-popover__title\"\n [attr.data-testid]=\"testID() + '-header-title'\"\n >\n {{ data.headerTitle }}\n </div>\n\n @if (data['hasCloseButton']) {\n <src-icon-button\n class=\"src-popover__close\"\n shape=\"round\"\n size=\"sm\"\n [data-testid]=\"testID() + '-header-close'\"\n (click)=\"close()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n }\n\n <div class=\"src-popover__body\">\n @if (template()) {\n <ng-template [ngTemplateOutlet]=\"template()\"></ng-template>\n }\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CdkOverlayOrigin,\n ConnectedPosition,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from '../interfaces';\nimport { SourcePopoverService } from '../services';\nimport { first } from 'rxjs';\n\n@Component({\n selector: 'src-popover-trigger',\n templateUrl: './source-popover-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [SourcePopoverService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkOverlayOrigin],\n})\nexport class SourcePopoverTriggerComponent {\n overlayOrigin = viewChild(CdkOverlayOrigin);\n srcPopoverTpl = input.required<TemplateRef<HTMLElement>>();\n headerTitle = input<string>();\n activeClass = input<string>();\n hasBackButton = input(false);\n hasCloseButton = input(true);\n hasBackdrop = input(true);\n closeOnBackdropClick = input(true);\n popoverMaxHeight = input('auto');\n panelCustomClass = input<string>();\n testID = input('', { alias: 'data-testid' });\n breakpointDesktop = input('(min-width: 1024px)');\n positions = input<ConnectedPosition[]>([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ]);\n\n popoverShown = signal(false);\n onPopoverShown = output<boolean>();\n onBackButtonClick = output<OverlayRef>();\n overlayRef: OverlayRef | null = null;\n #sourcePopoverService = inject(SourcePopoverService, { self: true });\n #viewContainerRef = inject(ViewContainerRef);\n\n _ = effect(() => {\n if (this.#sourcePopoverService.backButtonClicked()) {\n this.onBackButtonClick.emit(this.overlayRef!);\n }\n });\n\n showPopover() {\n const config: Partial<SourcePopoverData> = {\n srcPopoverTpl: this.srcPopoverTpl(),\n overlayOrigin: this.overlayOrigin(),\n headerTitle: this.headerTitle(),\n hasBackButton: this.hasBackButton(),\n hasCloseButton: this.hasCloseButton(),\n popoverMaxHeight: this.popoverMaxHeight(),\n panelCustomClass: this.panelCustomClass(),\n breakpointDesktop: this.breakpointDesktop(),\n position: this.positions(),\n hasBackdrop: this.hasBackdrop(),\n closeOnBackdropClick: this.closeOnBackdropClick(),\n testID: this.testID(),\n };\n\n this.overlayRef = this.#sourcePopoverService.show(\n this.overlayOrigin()!,\n this.#viewContainerRef,\n config,\n );\n\n this.popoverShown.set(true);\n this.onPopoverShown.emit(true);\n\n this.overlayRef\n .detachments()\n .pipe(first())\n .subscribe(() => {\n this.popoverShown.set(false);\n this.onPopoverShown.emit(false);\n this.overlayRef = null;\n });\n\n this.overlayRef\n .backdropClick()\n .pipe(first())\n .subscribe(() => this.overlayRef?.detach());\n }\n}\n","<div\n cdkOverlayOrigin\n [attr.data-testid]=\"testID()\"\n (click)=\"showPopover()\"\n [class]=\"popoverShown() ? activeClass() || 'active' : ''\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n effect,\n ElementRef,\n input,\n linkedSignal,\n output,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { register } from 'swiper/element/bundle';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\nregister();\n\n@Component({\n selector: 'src-tab-line',\n templateUrl: './source-tab-line.component.html',\n styleUrls: ['./source-tab-line.component.scss'],\n imports: [NgClass, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SourceTabLineComponent {\n swiperRef = viewChild<ElementRef>('swiperRef');\n tabs = input.required<any[]>();\n label = input.required<string>();\n selectedIndex = input(0);\n isCompact = input(false);\n offsetBefore = input(0);\n offsetAfter = input(0);\n spaceBetween = input(0);\n isFullWidth = input(false);\n isSwiper = input(false);\n testID = input('', { alias: 'data-testid' });\n tabsSelectedIndex = linkedSignal(() => this.selectedIndex());\n onSelectTab = output<number>();\n\n classes = computed(() =>\n this.isFullWidth() ? ['src-tab-line--full-width'] : [],\n );\n variables = computed(\n () =>\n `--srcTabsOffsetBefore: ${this.tabsOffsetBefore()}px; --srcTabsOffsetAfter: ${this.tabsOffsetAfter()}px; --srcTabsSpaceBetween: ${this.spacing()}px;`,\n );\n tabsOffsetBefore = computed(\n () => this.offsetBefore() || (this.isCompact() ? 8 : 16),\n );\n tabsOffsetAfter = computed(\n () => this.offsetAfter() || (this.isCompact() ? 8 : 16),\n );\n spacing = computed(() => this.spaceBetween() || (this.isCompact() ? 0 : 4));\n\n _ = effect(() => {\n const swiperRef = this.swiperRef();\n untracked(() => {\n if (!swiperRef?.nativeElement || !this.isSwiper()) return;\n Object.assign(swiperRef.nativeElement, {\n spaceBetween: this.spacing(),\n slidesOffsetBefore: this.tabsOffsetBefore(),\n slidesOffsetAfter: this.tabsOffsetAfter(),\n slidesPerView: 'auto',\n centeredSlides: false,\n slideToClickedSlide: true,\n });\n swiperRef.nativeElement.initialize();\n });\n });\n\n selectTab(tabIndex: number) {\n this.tabsSelectedIndex.set(tabIndex);\n this.onSelectTab.emit(tabIndex);\n }\n}\n","<div class=\"src-tab-line\" [ngClass]=\"classes()\" [attr.data-testid]=\"testID()\">\n @if (isSwiper()) {\n <div class=\"src-tabs__nav src-tabs__nav--swiper\">\n <swiper-container #swiperRef init=\"false\">\n @for (tab of tabs(); track tab) {\n <swiper-slide\n class=\"src-tabs__nav-slide\"\n [attr.data-testid]=\"testID() + '-slide-' + $index\"\n >\n <ng-container\n [ngTemplateOutlet]=\"slideTemplate\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n >\n </ng-container>\n </swiper-slide>\n }\n </swiper-container>\n </div>\n } @else {\n <div class=\"src-tabs__nav\" [style]=\"variables()\">\n @for (tab of tabs(); track tab) {\n <div\n class=\"src-tabs__nav-slide\"\n [attr.data-testid]=\"testID() + '-slide-' + $index\"\n >\n <ng-container\n [ngTemplateOutlet]=\"slideTemplate\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n</div>\n\n<ng-template #slideTemplate let-tab=\"tab\" let-i=\"index\">\n <div\n class=\"src-tabs__nav-item\"\n (click)=\"selectTab(i)\"\n [class.src-tabs__nav-item--active]=\"i === tabsSelectedIndex()\"\n [class.src-disabled]=\"tab.isDisabled\"\n >\n <div class=\"text-label\" [attr.data-testid]=\"testID() + '-tab-label-' + i\">\n {{ tab[label()] }}\n </div>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { SourceTabData } from '../../interfaces';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { SwiperOptions } from 'swiper/types';\nimport { SourceTabLineComponent } from '../../../source-tab-line';\n\n@Component({\n selector: 'src-tabs',\n templateUrl: './source-tabs.component.html',\n imports: [NgTemplateOutlet, SourceTabLineComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabsComponent {\n label = input.required<string>();\n data = input.required<SourceTabData[]>();\n selectedIndex = input(0);\n headerTemplate = input<TemplateRef<any>>();\n isCompact = input(false);\n isFullWidth = input(false);\n isSwiper = input(false);\n swiperConfig = input<SwiperOptions>();\n testID = input('', { alias: 'data-testid' });\n onSelectTab = output<number>();\n\n setActive(idx: number) {\n this.onSelectTab.emit(idx);\n }\n}\n","<div class=\"src-tabs\">\n <ng-template #defaultTabsHeader>\n <src-tab-line\n [tabs]=\"data()\"\n [label]=\"label()\"\n [isCompact]=\"isCompact()\"\n [isFullWidth]=\"isFullWidth()\"\n [selectedIndex]=\"selectedIndex()\"\n [isSwiper]=\"isSwiper()\"\n [data-testid]=\"testID()\"\n (onSelectTab)=\"setActive($event)\"\n ></src-tab-line>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate() ? headerTemplate()! : defaultTabsHeader;\n context: { tabs: this.data }\n \"\n >\n </ng-container>\n\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'src-tab',\n templateUrl: './source-tab.component.html',\n styleUrls: ['./source-tab.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabComponent {\n isActive = input(false);\n}\n","<div [hidden]=\"!isActive()\" class=\"src-tab-content\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { SourceModalSizeKeys } from '../constants/sourceModalSize.const';
|
|
3
1
|
import { SourceButton } from '@3dsource/source-ui-native';
|
|
4
|
-
import { SourceModalData } from '../interfaces';
|
|
2
|
+
import type { SourceModalData } from '../interfaces';
|
|
5
3
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class SourceModalComponent
|
|
7
|
-
|
|
8
|
-
testID: string;
|
|
9
|
-
stringContent: string | null;
|
|
4
|
+
export declare class SourceModalComponent {
|
|
5
|
+
#private;
|
|
10
6
|
readonly data: SourceModalData;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
size: import("@angular/core").WritableSignal<string>;
|
|
8
|
+
testID: import("@angular/core").WritableSignal<string>;
|
|
9
|
+
stringContent: import("@angular/core").WritableSignal<string | null>;
|
|
14
10
|
close(result?: any): void;
|
|
15
11
|
goBack(): void;
|
|
16
|
-
private initModal;
|
|
17
12
|
getButtonConfig(externalConfig: Partial<SourceButton> | undefined): SourceButton;
|
|
18
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<SourceModalComponent, never>;
|
|
19
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<SourceModalComponent, "src-modal", never, {}, {}, never, never, true, never>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SourceModalSizeKeys } from '../constants/sourceModalSize.const';
|
|
2
|
-
import { SourceButton } from '@3dsource/source-ui-native';
|
|
1
|
+
import type { SourceModalSizeKeys } from '../constants/sourceModalSize.const';
|
|
2
|
+
import type { SourceButton } from '@3dsource/source-ui-native';
|
|
3
3
|
export interface SourceModalData {
|
|
4
4
|
headerTitle?: string;
|
|
5
5
|
size?: SourceModalSizeKeys;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { CdkOverlayOrigin, ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';
|
|
3
|
-
import { SourcePopoverService } from '../services';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class SourcePopoverTriggerComponent
|
|
4
|
+
export declare class SourcePopoverTriggerComponent {
|
|
5
|
+
#private;
|
|
6
|
+
overlayOrigin: import("@angular/core").Signal<CdkOverlayOrigin | undefined>;
|
|
6
7
|
srcPopoverTpl: import("@angular/core").InputSignal<TemplateRef<HTMLElement>>;
|
|
7
8
|
headerTitle: import("@angular/core").InputSignal<string | undefined>;
|
|
8
9
|
activeClass: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -15,15 +16,11 @@ export declare class SourcePopoverTriggerComponent implements OnInit {
|
|
|
15
16
|
testID: import("@angular/core").InputSignal<string>;
|
|
16
17
|
breakpointDesktop: import("@angular/core").InputSignal<string>;
|
|
17
18
|
positions: import("@angular/core").InputSignal<ConnectedPosition[]>;
|
|
18
|
-
overlayOrigin: CdkOverlayOrigin;
|
|
19
19
|
popoverShown: import("@angular/core").WritableSignal<boolean>;
|
|
20
20
|
onPopoverShown: import("@angular/core").OutputEmitterRef<boolean>;
|
|
21
21
|
onBackButtonClick: import("@angular/core").OutputEmitterRef<OverlayRef>;
|
|
22
22
|
overlayRef: OverlayRef | null;
|
|
23
|
-
|
|
24
|
-
private readonly viewContainerRef;
|
|
25
|
-
private readonly destroyRef;
|
|
26
|
-
ngOnInit(): void;
|
|
23
|
+
_: import("@angular/core").EffectRef;
|
|
27
24
|
showPopover(): void;
|
|
28
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<SourcePopoverTriggerComponent, never>;
|
|
29
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<SourcePopoverTriggerComponent, "src-popover-trigger", never, { "srcPopoverTpl": { "alias": "srcPopoverTpl"; "required": true; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "activeClass": { "alias": "activeClass"; "required": false; "isSignal": true; }; "hasBackButton": { "alias": "hasBackButton"; "required": false; "isSignal": true; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "popoverMaxHeight": { "alias": "popoverMaxHeight"; "required": false; "isSignal": true; }; "panelCustomClass": { "alias": "panelCustomClass"; "required": false; "isSignal": true; }; "testID": { "alias": "data-testid"; "required": false; "isSignal": true; }; "breakpointDesktop": { "alias": "breakpointDesktop"; "required": false; "isSignal": true; }; "positions": { "alias": "positions"; "required": false; "isSignal": true; }; }, { "onPopoverShown": "onPopoverShown"; "onBackButtonClick": "onBackButtonClick"; }, never, ["*"], true, never>;
|
|
@@ -3,13 +3,8 @@ import type { SourcePopoverData } from '../interfaces';
|
|
|
3
3
|
import { CdkOverlayOrigin, OverlayRef } from '@angular/cdk/overlay';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class SourcePopoverService {
|
|
6
|
-
private
|
|
7
|
-
|
|
8
|
-
private readonly destroyRef$;
|
|
9
|
-
private readonly defaultSourcePopoverConfig;
|
|
10
|
-
private readonly isMobile;
|
|
11
|
-
private readonly backButtonClickedSubject;
|
|
12
|
-
get backButtonClicked$(): import("rxjs").Observable<OverlayRef>;
|
|
6
|
+
#private;
|
|
7
|
+
readonly backButtonClicked: import("@angular/core").WritableSignal<OverlayRef | null>;
|
|
13
8
|
show(overlayOrigin: CdkOverlayOrigin, viewContainerRef: ViewContainerRef, override: Partial<SourcePopoverData>): OverlayRef;
|
|
14
9
|
closePopover(overlayRef: OverlayRef): void;
|
|
15
10
|
emitBackAction(menuRef: OverlayRef): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@3dsource/source-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "A bunch of native ui elements with angular",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"3dsource",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"tslib": "^2.8.1"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@angular/common": "
|
|
24
|
-
"@angular/core": "
|
|
25
|
-
"@angular/material": "19.
|
|
26
|
-
"ngx-scrollbar": "18.0.0",
|
|
27
|
-
"swiper": "11.2.6"
|
|
23
|
+
"@angular/common": ">=19.0.0",
|
|
24
|
+
"@angular/core": ">=19.0.0",
|
|
25
|
+
"@angular/material": ">=19.0.0",
|
|
26
|
+
"ngx-scrollbar": ">=18.0.0",
|
|
27
|
+
"swiper": ">=11.2.6"
|
|
28
28
|
},
|
|
29
29
|
"engines": {
|
|
30
30
|
"node": ">=20",
|