@taiga-ui/addon-mobile 4.52.0-canary.a4e325d → 4.52.0-canary.aaf153c
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/components/mobile-calendar/mobile-calendar.component.d.ts +4 -4
- package/components/sheet-dialog/sheet-dialog.directive.d.ts +4 -3
- package/components/sheet-dialog/sheet-dialog.options.d.ts +1 -1
- package/components/sheet-dialog/sheet-dialog.service.d.ts +9 -4
- package/directives/dropdown-mobile/dropdown-mobile.component.d.ts +9 -13
- package/directives/dropdown-mobile/dropdown-mobile.directive.d.ts +1 -2
- package/directives/dropdown-sheet/dropdown-sheet.component.d.ts +14 -0
- package/directives/dropdown-sheet/dropdown-sheet.directive.d.ts +6 -0
- package/directives/dropdown-sheet/index.d.ts +2 -0
- package/directives/index.d.ts +1 -1
- package/directives/ripple/ripple.directive.d.ts +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs +6 -7
- package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs +6 -6
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs +5 -7
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs +11 -13
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs +8 -9
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +17 -17
- package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs +52 -41
- package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs +6 -6
- package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs +10 -11
- package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs +65 -88
- package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs +83 -0
- package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs.map +1 -0
- package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs +6 -6
- package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs +6 -6
- package/fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs +17 -38
- package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs +3 -3
- package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives.mjs +1 -1
- package/fesm2022/taiga-ui-addon-mobile-services.mjs +5 -5
- package/fesm2022/taiga-ui-addon-mobile-services.mjs.map +1 -1
- package/package.json +6 -6
- package/styles/common/badge.less +2 -2
- package/styles/common/button.less +4 -0
- package/styles/common/chip.less +3 -8
- package/styles/common/toast.less +21 -0
- package/styles/taiga-ui-mobile.less +8 -0
- package/directives/sidebar/index.d.ts +0 -3
- package/directives/sidebar/sidebar.component.d.ts +0 -21
- package/directives/sidebar/sidebar.d.ts +0 -6
- package/directives/sidebar/sidebar.directive.d.ts +0 -22
- package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs +0 -114
- package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs.map +0 -1
|
@@ -44,10 +44,10 @@ class TuiElasticStickyService extends Observable {
|
|
|
44
44
|
this.host.getBoundingClientRect().top ===
|
|
45
45
|
0);
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
48
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiElasticStickyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiElasticStickyService }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiElasticStickyService, decorators: [{
|
|
51
51
|
type: Injectable
|
|
52
52
|
}], ctorParameters: () => [] });
|
|
53
53
|
|
|
@@ -55,10 +55,10 @@ class TuiElasticSticky {
|
|
|
55
55
|
constructor() {
|
|
56
56
|
this.tuiElasticSticky = inject(TuiElasticStickyService);
|
|
57
57
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
59
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiElasticSticky, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiElasticSticky, isStandalone: true, selector: "[tuiElasticSticky]", outputs: { tuiElasticSticky: "tuiElasticSticky" }, providers: [TuiElasticStickyService], exportAs: ["tuiElasticSticky"], ngImport: i0 }); }
|
|
60
60
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiElasticSticky, decorators: [{
|
|
62
62
|
type: Directive,
|
|
63
63
|
args: [{
|
|
64
64
|
standalone: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.mjs","sources":["../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","../../../projects/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {\n afterNextRender,\n DestroyRef,\n inject,\n Injectable,\n INJECTOR,\n NgZone,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiScrollFrom, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementOffset, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {SCROLL_REF_SELECTOR} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {distinctUntilChanged, map, Observable, scan, Subscription} from 'rxjs';\n\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n private readonly injector = inject(INJECTOR);\n private readonly el = tuiInjectElement();\n private readonly scrollRef = inject(TUI_SCROLL_REF).nativeElement;\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n\n constructor() {\n super((subscriber) => {\n const subscription = new Subscription();\n\n afterNextRender(\n () => {\n const teardown = tuiScrollFrom(this.host)\n .pipe(\n scan(\n (top) => (this.pinned ? top : this.offsetTop),\n this.offsetTop,\n ),\n map((top) =>\n Math.max(\n 1 -\n Math.max(\n Math.round(this.host.scrollTop) - top,\n 0,\n ) /\n this.el.offsetHeight,\n 0,\n ),\n ),\n distinctUntilChanged(),\n tuiZoneOptimized(this.zone),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(subscriber);\n\n if (!subscription.closed) {\n subscription.add(teardown);\n } else {\n teardown.unsubscribe();\n }\n },\n {injector: this.injector},\n );\n\n return subscription;\n });\n }\n\n private get host(): Element {\n // TODO: Test if we still need it now, that templates pass injector\n return this.el.closest(SCROLL_REF_SELECTOR) || this.scrollRef;\n }\n\n private get offsetTop(): number {\n return tuiGetElementOffset(this.host, this.el).offsetTop;\n }\n\n private get pinned(): boolean {\n return (\n this.el.getBoundingClientRect().top -\n this.host.getBoundingClientRect().top ===\n 0\n );\n }\n}\n","import {Directive, inject, Output} from '@angular/core';\n\nimport {TuiElasticStickyService} from './elastic-sticky.service';\n\n@Directive({\n standalone: true,\n selector: '[tuiElasticSticky]',\n providers: [TuiElasticStickyService],\n exportAs: 'tuiElasticSticky',\n})\nexport class TuiElasticSticky {\n @Output()\n public readonly tuiElasticSticky = inject(TuiElasticStickyService);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAgBM,MAAO,uBAAwB,SAAQ,UAAkB,CAAA;AAO3D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAI;AACjB,YAAA,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE;YAEvC,eAAe,CACX,MAAK;AACD,gBAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI;AACnC,qBAAA,IAAI,CACD,IAAI,CACA,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAC7C,IAAI,CAAC,SAAS,CACjB,EACD,GAAG,CAAC,CAAC,GAAG,KACJ,IAAI,CAAC,GAAG,CACJ,CAAC;AACG,oBAAA,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,EACrC,CAAC,CACJ;wBACG,IAAI,CAAC,EAAE,CAAC,YAAY,EAC5B,CAAC,CACJ,CACJ,EACD,oBAAoB,EAAE,EACtB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;qBAEtC,SAAS,CAAC,UAAU,CAAC;AAE1B,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACtB,oBAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.mjs","sources":["../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","../../../projects/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {\n afterNextRender,\n DestroyRef,\n inject,\n Injectable,\n INJECTOR,\n NgZone,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiScrollFrom, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementOffset, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {SCROLL_REF_SELECTOR} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {distinctUntilChanged, map, Observable, scan, Subscription} from 'rxjs';\n\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n private readonly injector = inject(INJECTOR);\n private readonly el = tuiInjectElement();\n private readonly scrollRef = inject(TUI_SCROLL_REF).nativeElement;\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n\n constructor() {\n super((subscriber) => {\n const subscription = new Subscription();\n\n afterNextRender(\n () => {\n const teardown = tuiScrollFrom(this.host)\n .pipe(\n scan(\n (top) => (this.pinned ? top : this.offsetTop),\n this.offsetTop,\n ),\n map((top) =>\n Math.max(\n 1 -\n Math.max(\n Math.round(this.host.scrollTop) - top,\n 0,\n ) /\n this.el.offsetHeight,\n 0,\n ),\n ),\n distinctUntilChanged(),\n tuiZoneOptimized(this.zone),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(subscriber);\n\n if (!subscription.closed) {\n subscription.add(teardown);\n } else {\n teardown.unsubscribe();\n }\n },\n {injector: this.injector},\n );\n\n return subscription;\n });\n }\n\n private get host(): Element {\n // TODO: Test if we still need it now, that templates pass injector\n return this.el.closest(SCROLL_REF_SELECTOR) || this.scrollRef;\n }\n\n private get offsetTop(): number {\n return tuiGetElementOffset(this.host, this.el).offsetTop;\n }\n\n private get pinned(): boolean {\n return (\n this.el.getBoundingClientRect().top -\n this.host.getBoundingClientRect().top ===\n 0\n );\n }\n}\n","import {Directive, inject, Output} from '@angular/core';\n\nimport {TuiElasticStickyService} from './elastic-sticky.service';\n\n@Directive({\n standalone: true,\n selector: '[tuiElasticSticky]',\n providers: [TuiElasticStickyService],\n exportAs: 'tuiElasticSticky',\n})\nexport class TuiElasticSticky {\n @Output()\n public readonly tuiElasticSticky = inject(TuiElasticStickyService);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAgBM,MAAO,uBAAwB,SAAQ,UAAkB,CAAA;AAO3D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAI;AACjB,YAAA,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE;YAEvC,eAAe,CACX,MAAK;AACD,gBAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI;AACnC,qBAAA,IAAI,CACD,IAAI,CACA,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAC7C,IAAI,CAAC,SAAS,CACjB,EACD,GAAG,CAAC,CAAC,GAAG,KACJ,IAAI,CAAC,GAAG,CACJ,CAAC;AACG,oBAAA,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,EACrC,CAAC,CACJ;wBACG,IAAI,CAAC,EAAE,CAAC,YAAY,EAC5B,CAAC,CACJ,CACJ,EACD,oBAAoB,EAAE,EACtB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;qBAEtC,SAAS,CAAC,UAAU,CAAC;AAE1B,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACtB,oBAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;;qBACvB;oBACH,QAAQ,CAAC,WAAW,EAAE;;aAE7B,EACD,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAC5B;AAED,YAAA,OAAO,YAAY;AACvB,SAAC,CAAC;AA7CW,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,aAAa;AAChD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;;AA4CtC,IAAA,IAAY,IAAI,GAAA;;AAEZ,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,SAAS;;AAGjE,IAAA,IAAY,SAAS,GAAA;AACjB,QAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS;;AAG5D,IAAA,IAAY,MAAM,GAAA;QACd,QACI,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,GAAG;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG;AACzC,YAAA,CAAC;;+GA9DA,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAvB,uBAAuB,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;MCLY,gBAAgB,CAAA;AAN7B,IAAA,WAAA,GAAA;AAQoB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACrE;+GAHY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAHd,CAAC,uBAAuB,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAG3B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,uBAAuB,CAAC;AACpC,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA;8BAGmB,gBAAgB,EAAA,CAAA;sBAD/B;;;ACXL;;AAEG;;;;"}
|
|
@@ -24,10 +24,10 @@ class TuiResponsiveDialogService {
|
|
|
24
24
|
label: tuiIsString(options.label) ? options.label : '',
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResponsiveDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResponsiveDialogService, providedIn: 'root' }); }
|
|
29
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResponsiveDialogService, decorators: [{
|
|
31
31
|
type: Injectable,
|
|
32
32
|
args: [{
|
|
33
33
|
providedIn: 'root',
|
|
@@ -35,10 +35,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
35
35
|
}] });
|
|
36
36
|
|
|
37
37
|
class TuiResponsiveDialog extends TuiPopoverDirective {
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
39
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResponsiveDialog, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
39
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiResponsiveDialog, isStandalone: true, selector: "ng-template[tuiResponsiveDialog]", inputs: { options: ["tuiResponsiveDialogOptions", "options"], open: ["tuiResponsiveDialog", "open"] }, outputs: { openChange: "tuiResponsiveDialogChange" }, providers: [tuiAsPopover(TuiResponsiveDialogService)], usesInheritance: true, ngImport: i0 }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResponsiveDialog, decorators: [{
|
|
42
42
|
type: Directive,
|
|
43
43
|
args: [{
|
|
44
44
|
standalone: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-directives-responsive-dialog.mjs","sources":["../../../projects/addon-mobile/directives/responsive-dialog/responsive-dialog.service.ts","../../../projects/addon-mobile/directives/responsive-dialog/responsive-dialog.directive.ts","../../../projects/addon-mobile/directives/responsive-dialog/taiga-ui-addon-mobile-directives-responsive-dialog.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {\n type TuiSheetDialogOptions,\n TuiSheetDialogService,\n} from '@taiga-ui/addon-mobile/components/sheet-dialog';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n type TuiDialogContext,\n type TuiDialogOptions,\n TuiDialogService,\n} from '@taiga-ui/core/components/dialog';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\nexport interface TuiResponsiveDialogOptions<I = undefined>\n extends Omit<TuiDialogOptions<I>, 'label'>,\n TuiSheetDialogOptions<unknown> {\n readonly data: I extends void ? undefined : I & {button?: string};\n readonly label: PolymorpheusContent;\n}\n\n/**\n * Same as `TuiDialogService` but automatically switches to `TuiSheetDialogService` on mobile\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiResponsiveDialogService {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly dialogs = inject(TuiDialogService);\n private readonly sheets = inject(TuiSheetDialogService);\n\n public open<G = void>(\n content: PolymorpheusContent<\n TuiDialogContext<G> & TuiResponsiveDialogOptions<any>\n >,\n options: Partial<TuiResponsiveDialogOptions<any>> = {},\n ): Observable<G> {\n return this.isMobile\n ? this.sheets.open(content, options)\n : this.dialogs.open(content, {\n ...options,\n label: tuiIsString(options.label) ? options.label : '',\n });\n }\n}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {\n type TuiResponsiveDialogOptions,\n TuiResponsiveDialogService,\n} from './responsive-dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiResponsiveDialog]',\n inputs: ['options: tuiResponsiveDialogOptions', 'open: tuiResponsiveDialog'],\n outputs: ['openChange: tuiResponsiveDialogChange'],\n providers: [tuiAsPopover(TuiResponsiveDialogService as any)],\n})\nexport class TuiResponsiveDialog extends TuiPopoverDirective<TuiResponsiveDialogOptions> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAsBA;;AAEG;MAIU,0BAA0B,CAAA;AAHvC,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAe1D
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives-responsive-dialog.mjs","sources":["../../../projects/addon-mobile/directives/responsive-dialog/responsive-dialog.service.ts","../../../projects/addon-mobile/directives/responsive-dialog/responsive-dialog.directive.ts","../../../projects/addon-mobile/directives/responsive-dialog/taiga-ui-addon-mobile-directives-responsive-dialog.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {\n type TuiSheetDialogOptions,\n TuiSheetDialogService,\n} from '@taiga-ui/addon-mobile/components/sheet-dialog';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n type TuiDialogContext,\n type TuiDialogOptions,\n TuiDialogService,\n} from '@taiga-ui/core/components/dialog';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\nexport interface TuiResponsiveDialogOptions<I = undefined>\n extends Omit<TuiDialogOptions<I>, 'label'>,\n TuiSheetDialogOptions<unknown> {\n readonly data: I extends void ? undefined : I & {button?: string};\n readonly label: PolymorpheusContent;\n}\n\n/**\n * Same as `TuiDialogService` but automatically switches to `TuiSheetDialogService` on mobile\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiResponsiveDialogService {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly dialogs = inject(TuiDialogService);\n private readonly sheets = inject(TuiSheetDialogService);\n\n public open<G = void>(\n content: PolymorpheusContent<\n TuiDialogContext<G> & TuiResponsiveDialogOptions<any>\n >,\n options: Partial<TuiResponsiveDialogOptions<any>> = {},\n ): Observable<G> {\n return this.isMobile\n ? this.sheets.open(content, options)\n : this.dialogs.open(content, {\n ...options,\n label: tuiIsString(options.label) ? options.label : '',\n });\n }\n}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {\n type TuiResponsiveDialogOptions,\n TuiResponsiveDialogService,\n} from './responsive-dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiResponsiveDialog]',\n inputs: ['options: tuiResponsiveDialogOptions', 'open: tuiResponsiveDialog'],\n outputs: ['openChange: tuiResponsiveDialogChange'],\n providers: [tuiAsPopover(TuiResponsiveDialogService as any)],\n})\nexport class TuiResponsiveDialog extends TuiPopoverDirective<TuiResponsiveDialogOptions> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAsBA;;AAEG;MAIU,0BAA0B,CAAA;AAHvC,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAe1D;AAbU,IAAA,IAAI,CACP,OAEC,EACD,OAAA,GAAoD,EAAE,EAAA;QAEtD,OAAO,IAAI,CAAC;cACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO;cACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,GAAG,OAAO;AACV,gBAAA,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE;AACzD,aAAA,CAAC;;+GAhBH,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFvB,MAAM,EAAA,CAAA,CAAA;;4FAET,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACXK,MAAO,mBAAoB,SAAQ,mBAA+C,CAAA;+GAA3E,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,4OAFjB,CAAC,YAAY,CAAC,0BAAiC,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEnD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,MAAM,EAAE,CAAC,qCAAqC,EAAE,2BAA2B,CAAC;oBAC5E,OAAO,EAAE,CAAC,uCAAuC,CAAC;AAClD,oBAAA,SAAS,EAAE,CAAC,YAAY,CAAC,0BAAiC,CAAC,CAAC;AAC/D,iBAAA;;;ACfD;;AAEG;;;;"}
|
|
@@ -2,48 +2,28 @@ import { DOCUMENT } from '@angular/common';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, DestroyRef, Input, Directive } from '@angular/core';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
|
|
6
5
|
import { tuiIsHTMLElement } from '@taiga-ui/cdk/utils/dom';
|
|
7
6
|
import { tuiWithStyles, tuiPx } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
8
7
|
import { TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
|
|
9
8
|
import { tuiGetDuration } from '@taiga-ui/core/utils/miscellaneous';
|
|
10
|
-
import { merge, race, switchMap, first, tap } from 'rxjs';
|
|
9
|
+
import { merge, fromEvent, race, switchMap, first, tap } from 'rxjs';
|
|
11
10
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
opacity: '0.12',
|
|
19
|
-
},
|
|
20
|
-
];
|
|
21
|
-
const FROM_KEYFRAMES = [
|
|
22
|
-
{
|
|
23
|
-
opacity: '0.12',
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
opacity: '0',
|
|
27
|
-
},
|
|
28
|
-
];
|
|
29
|
-
class TuiRippleStyles {
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiRippleStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiRippleStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-ripple-styles" }, ngImport: i0, template: '', isInline: true, styles: [".tui-ripple{position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11
|
+
const TO = [{ transform: 'scale(0)', opacity: '0.12' }, { opacity: '0.12' }];
|
|
12
|
+
const FROM = [{ opacity: '0.12' }, { opacity: '0' }];
|
|
13
|
+
class Styles {
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-ripple" }, ngImport: i0, template: '', isInline: true, styles: [".tui-ripple{position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
32
16
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, decorators: [{
|
|
34
18
|
type: Component,
|
|
35
|
-
args: [{
|
|
36
|
-
class: 'tui-ripple-styles',
|
|
37
|
-
}, styles: [".tui-ripple{position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"] }]
|
|
19
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-ripple' }, styles: [".tui-ripple{position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"] }]
|
|
38
20
|
}] });
|
|
39
21
|
class TuiRipple {
|
|
40
22
|
constructor() {
|
|
41
23
|
this.doc = inject(DOCUMENT);
|
|
42
24
|
this.destroyRef = inject(DestroyRef);
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
};
|
|
46
|
-
this.nothing = tuiWithStyles(TuiRippleStyles);
|
|
25
|
+
this.duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));
|
|
26
|
+
this.nothing = tuiWithStyles(Styles);
|
|
47
27
|
this.tuiRipple = '';
|
|
48
28
|
}
|
|
49
29
|
start(x, y, target, el) {
|
|
@@ -52,11 +32,11 @@ class TuiRipple {
|
|
|
52
32
|
return;
|
|
53
33
|
}
|
|
54
34
|
const ripple = this.createRipple(x, y, element.getBoundingClientRect());
|
|
55
|
-
const touchEnd$ = merge(
|
|
35
|
+
const touchEnd$ = merge(fromEvent(element, 'pointerup'), fromEvent(element, 'pointercancel'), fromEvent(element, 'pointermove'));
|
|
56
36
|
element.appendChild(ripple);
|
|
57
|
-
const
|
|
58
|
-
race(touchEnd$.pipe(switchMap(() =>
|
|
59
|
-
.pipe(first(), switchMap(() =>
|
|
37
|
+
const animationEnd$ = fromEvent(ripple.animate(TO, this.duration), 'finish');
|
|
38
|
+
race(touchEnd$.pipe(switchMap(() => animationEnd$)), animationEnd$.pipe(switchMap(() => touchEnd$)))
|
|
39
|
+
.pipe(first(), switchMap(() => fromEvent(ripple.animate(FROM, this.duration), 'finish')), first(), tap(() => element.removeChild(ripple)), takeUntilDestroyed(this.destroyRef))
|
|
60
40
|
.subscribe();
|
|
61
41
|
}
|
|
62
42
|
createRipple(clientX, clientY, { width, height, top, left }) {
|
|
@@ -80,13 +60,12 @@ class TuiRipple {
|
|
|
80
60
|
});
|
|
81
61
|
return ripple;
|
|
82
62
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
84
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiRipple, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
64
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiRipple, isStandalone: true, selector: "[tuiRipple]", inputs: { tuiRipple: "tuiRipple" }, host: { listeners: { "pointerdown.zoneless": "start($event.clientX, $event.clientY, $event.target, $event.currentTarget)" } }, ngImport: i0 }); }
|
|
85
65
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiRipple, decorators: [{
|
|
87
67
|
type: Directive,
|
|
88
68
|
args: [{
|
|
89
|
-
standalone: true,
|
|
90
69
|
selector: '[tuiRipple]',
|
|
91
70
|
host: {
|
|
92
71
|
'(pointerdown.zoneless)': 'start($event.clientX, $event.clientY, $event.target, $event.currentTarget)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-directives-ripple.mjs","sources":["../../../projects/addon-mobile/directives/ripple/ripple.directive.ts","../../../projects/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives-ripple.mjs","sources":["../../../projects/addon-mobile/directives/ripple/ripple.directive.ts","../../../projects/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPx, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport {first, fromEvent, merge, race, switchMap, tap} from 'rxjs';\n\nconst TO = [{transform: 'scale(0)', opacity: '0.12'}, {opacity: '0.12'}];\nconst FROM = [{opacity: '0.12'}, {opacity: '0'}];\n\n@Component({\n template: '',\n styleUrl: './ripple.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-ripple'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiRipple]',\n host: {\n '(pointerdown.zoneless)':\n 'start($event.clientX, $event.clientY, $event.target, $event.currentTarget)',\n },\n})\nexport class TuiRipple {\n private readonly doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n\n protected readonly nothing = tuiWithStyles(Styles);\n\n @Input()\n public tuiRipple = '';\n\n protected start(x: number, y: number, target: HTMLElement, el: HTMLElement): void {\n const element = this.tuiRipple ? target.closest(this.tuiRipple) : el;\n\n if (!tuiIsHTMLElement(element)) {\n return;\n }\n\n const ripple = this.createRipple(x, y, element.getBoundingClientRect());\n const touchEnd$ = merge(\n fromEvent(element, 'pointerup'),\n fromEvent(element, 'pointercancel'),\n fromEvent(element, 'pointermove'),\n );\n\n element.appendChild(ripple);\n\n const animationEnd$ = fromEvent(ripple.animate(TO, this.duration), 'finish');\n\n race(\n touchEnd$.pipe(switchMap(() => animationEnd$)),\n animationEnd$.pipe(switchMap(() => touchEnd$)),\n )\n .pipe(\n first(),\n switchMap(() => fromEvent(ripple.animate(FROM, this.duration), 'finish')),\n first(),\n tap(() => element.removeChild(ripple)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n private createRipple(\n clientX: number,\n clientY: number,\n {width, height, top, left}: DOMRect,\n ): HTMLElement {\n const ripple: HTMLElement = this.doc.createElement('div');\n const radius = Math.sqrt(width * width + height * height);\n const dimension = radius * 2;\n const x = clientX - left - radius;\n const y = clientY - top - radius;\n\n Object.assign(ripple.style, {\n position: 'absolute',\n top: tuiPx(y),\n left: tuiPx(x),\n width: tuiPx(dimension),\n height: tuiPx(dimension),\n zIndex: 100,\n opacity: 0.12,\n borderRadius: '100%',\n background: 'var(--tui-ripple-background, currentColor)',\n animationFillMode: 'forwards',\n pointerEvents: 'none',\n });\n\n return ripple;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -56,10 +56,10 @@ class TuiTouchable {
|
|
|
56
56
|
}
|
|
57
57
|
this.el.style.setProperty(this.style, STYLE[this.style]);
|
|
58
58
|
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
60
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTouchable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
60
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiTouchable, isStandalone: true, selector: "[tuiTouchable]", inputs: { tuiTouchable: "tuiTouchable" }, ngImport: i0 }); }
|
|
61
61
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTouchable, decorators: [{
|
|
63
63
|
type: Directive,
|
|
64
64
|
args: [{
|
|
65
65
|
standalone: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-directives-touchable.mjs","sources":["../../../projects/addon-mobile/directives/touchable/touchable.directive.ts","../../../projects/addon-mobile/directives/touchable/taiga-ui-addon-mobile-directives-touchable.ts"],"sourcesContent":["import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, race, switchMap, take, tap} from 'rxjs';\n\nconst STYLE = {\n transform: 'scale(0.95)',\n opacity: '0.6',\n background: 'rgba(146, 153, 162, 0.12)',\n} as const;\n\nexport function tuiFindTouchIndex(touches: TouchList, id: number): number {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === id) {\n return i;\n }\n }\n\n return -1;\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTouchable]',\n})\nexport class TuiTouchable {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly el = tuiInjectElement();\n\n @Input()\n public tuiTouchable: '' | 'background' | 'opacity' | 'transform' = '';\n\n constructor() {\n if (!this.isIOS) {\n return;\n }\n\n tuiTypedFromEvent(this.el, 'touchstart', {passive: true})\n .pipe(\n tap(() => this.onTouchStart()),\n map(({touches}) => touches[touches.length - 1]?.identifier),\n switchMap((identifier) =>\n race(\n tuiTypedFromEvent(this.el, 'touchmove', {passive: true}).pipe(\n filter(({touches}) =>\n this.hasTouchLeft(this.el, touches, identifier ?? 0),\n ),\n ),\n tuiTypedFromEvent(this.el, 'touchend'),\n ).pipe(take(1)),\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.removeProperty('transform');\n this.el.style.removeProperty('opacity');\n this.el.style.removeProperty('background');\n });\n }\n\n protected get style(): 'background' | 'opacity' | 'transform' {\n return this.tuiTouchable || 'transform';\n }\n\n private hasTouchLeft(\n element: HTMLElement,\n touches: TouchList,\n identifier: number,\n ): boolean {\n const {ownerDocument} = element;\n const id = tuiFindTouchIndex(touches, identifier);\n\n if (!ownerDocument || id === -1) {\n return true;\n }\n\n const {clientX = 0, clientY = 0} = touches[id] ?? {};\n\n return !element.contains(ownerDocument.elementFromPoint(clientX, clientY));\n }\n\n private onTouchStart(): void {\n if (this.style !== 'transform') {\n this.el.style.removeProperty('transition');\n } else {\n this.el.style.setProperty('transition', 'transform 0.2s');\n }\n\n this.el.style.setProperty(this.style, STYLE[this.style]);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAOA,MAAM,KAAK,GAAG;AACV,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,UAAU,EAAE,2BAA2B;CACjC;
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives-touchable.mjs","sources":["../../../projects/addon-mobile/directives/touchable/touchable.directive.ts","../../../projects/addon-mobile/directives/touchable/taiga-ui-addon-mobile-directives-touchable.ts"],"sourcesContent":["import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, race, switchMap, take, tap} from 'rxjs';\n\nconst STYLE = {\n transform: 'scale(0.95)',\n opacity: '0.6',\n background: 'rgba(146, 153, 162, 0.12)',\n} as const;\n\nexport function tuiFindTouchIndex(touches: TouchList, id: number): number {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === id) {\n return i;\n }\n }\n\n return -1;\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTouchable]',\n})\nexport class TuiTouchable {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly el = tuiInjectElement();\n\n @Input()\n public tuiTouchable: '' | 'background' | 'opacity' | 'transform' = '';\n\n constructor() {\n if (!this.isIOS) {\n return;\n }\n\n tuiTypedFromEvent(this.el, 'touchstart', {passive: true})\n .pipe(\n tap(() => this.onTouchStart()),\n map(({touches}) => touches[touches.length - 1]?.identifier),\n switchMap((identifier) =>\n race(\n tuiTypedFromEvent(this.el, 'touchmove', {passive: true}).pipe(\n filter(({touches}) =>\n this.hasTouchLeft(this.el, touches, identifier ?? 0),\n ),\n ),\n tuiTypedFromEvent(this.el, 'touchend'),\n ).pipe(take(1)),\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.removeProperty('transform');\n this.el.style.removeProperty('opacity');\n this.el.style.removeProperty('background');\n });\n }\n\n protected get style(): 'background' | 'opacity' | 'transform' {\n return this.tuiTouchable || 'transform';\n }\n\n private hasTouchLeft(\n element: HTMLElement,\n touches: TouchList,\n identifier: number,\n ): boolean {\n const {ownerDocument} = element;\n const id = tuiFindTouchIndex(touches, identifier);\n\n if (!ownerDocument || id === -1) {\n return true;\n }\n\n const {clientX = 0, clientY = 0} = touches[id] ?? {};\n\n return !element.contains(ownerDocument.elementFromPoint(clientX, clientY));\n }\n\n private onTouchStart(): void {\n if (this.style !== 'transform') {\n this.el.style.removeProperty('transition');\n } else {\n this.el.style.setProperty('transition', 'transform 0.2s');\n }\n\n this.el.style.setProperty(this.style, STYLE[this.style]);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from '@taiga-ui/addon-mobile/directives/dropdown-mobile';
|
|
2
|
+
export * from '@taiga-ui/addon-mobile/directives/dropdown-sheet';
|
|
2
3
|
export * from '@taiga-ui/addon-mobile/directives/elastic-sticky';
|
|
3
4
|
export * from '@taiga-ui/addon-mobile/directives/responsive-dialog';
|
|
4
5
|
export * from '@taiga-ui/addon-mobile/directives/ripple';
|
|
5
|
-
export * from '@taiga-ui/addon-mobile/directives/sidebar';
|
|
6
6
|
export * from '@taiga-ui/addon-mobile/directives/touchable';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { inject, Injectable } from '@angular/core';
|
|
4
|
-
import {
|
|
4
|
+
import { tuiGetFocused } from '@taiga-ui/cdk/utils/focus';
|
|
5
5
|
import { merge, fromEvent, filter } from 'rxjs';
|
|
6
6
|
|
|
7
7
|
class TuiKeyboardService {
|
|
@@ -25,7 +25,7 @@ class TuiKeyboardService {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
hide() {
|
|
28
|
-
const focused =
|
|
28
|
+
const focused = tuiGetFocused(this.doc);
|
|
29
29
|
if (focused?.inputMode === undefined || this.element) {
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
@@ -41,10 +41,10 @@ class TuiKeyboardService {
|
|
|
41
41
|
this.element.inputMode = this.inputMode;
|
|
42
42
|
this.element = undefined;
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
45
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
45
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiKeyboardService, providedIn: 'root' }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiKeyboardService, decorators: [{
|
|
48
48
|
type: Injectable,
|
|
49
49
|
args: [{
|
|
50
50
|
providedIn: 'root',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-services.mjs","sources":["../../../projects/addon-mobile/services/keyboard.service.ts","../../../projects/addon-mobile/services/taiga-ui-addon-mobile-services.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable, type OnDestroy} from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-services.mjs","sources":["../../../projects/addon-mobile/services/keyboard.service.ts","../../../projects/addon-mobile/services/taiga-ui-addon-mobile-services.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable, type OnDestroy} from '@angular/core';\nimport {tuiGetFocused} from '@taiga-ui/cdk/utils/focus';\nimport {filter, fromEvent, merge} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiKeyboardService implements OnDestroy {\n private readonly doc = inject(DOCUMENT);\n private readonly sub = merge(\n fromEvent(this.doc, 'focusout'),\n fromEvent(this.doc, 'mousedown').pipe(\n filter((e) => Object.is(e.target, this.element)),\n ),\n ).subscribe(() => {\n this.show();\n });\n\n private element?: ElementContentEditable;\n private inputMode = '';\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n this.show();\n }\n\n public toggle(): void {\n if (this.element) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public hide(): void {\n const focused = tuiGetFocused(this.doc) as HTMLInputElement;\n\n if (focused?.inputMode === undefined || this.element) {\n return;\n }\n\n this.element = focused;\n this.inputMode = focused.inputMode;\n focused.inputMode = 'none';\n }\n\n public show(): void {\n if (!this.element) {\n return;\n }\n\n this.element.inputMode = 'none';\n this.element.inputMode = this.inputMode;\n this.element = undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QACtB,IAAG,CAAA,GAAA,GAAG,KAAK,CACxB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CACnD,CACJ,CAAC,SAAS,CAAC,MAAK;YACb,IAAI,CAAC,IAAI,EAAE;AACf,SAAC,CAAC;QAGM,IAAS,CAAA,SAAA,GAAG,EAAE;AAoCzB;IAlCU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;QACtB,IAAI,CAAC,IAAI,EAAE;;IAGR,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,IAAI,EAAE;;aACR;YACH,IAAI,CAAC,IAAI,EAAE;;;IAIZ,IAAI,GAAA;QACP,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAqB;QAE3D,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;YAClD;;AAGJ,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AAClC,QAAA,OAAO,CAAC,SAAS,GAAG,MAAM;;IAGvB,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf;;AAGJ,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM;QAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;;+GA9CnB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFf,MAAM,EAAA,CAAA,CAAA;;4FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACPD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/addon-mobile",
|
|
3
|
-
"version": "4.52.0-canary.
|
|
3
|
+
"version": "4.52.0-canary.aaf153c",
|
|
4
4
|
"description": "Extension package for Taiga UI that adds support for mobile specific behaviors such as custom data pickers, dropdowns, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -71,6 +71,10 @@
|
|
|
71
71
|
"types": "./directives/dropdown-mobile/index.d.ts",
|
|
72
72
|
"default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs"
|
|
73
73
|
},
|
|
74
|
+
"./directives/dropdown-sheet": {
|
|
75
|
+
"types": "./directives/dropdown-sheet/index.d.ts",
|
|
76
|
+
"default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs"
|
|
77
|
+
},
|
|
74
78
|
"./directives/elastic-sticky": {
|
|
75
79
|
"types": "./directives/elastic-sticky/index.d.ts",
|
|
76
80
|
"default": "./fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs"
|
|
@@ -83,10 +87,6 @@
|
|
|
83
87
|
"types": "./directives/ripple/index.d.ts",
|
|
84
88
|
"default": "./fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs"
|
|
85
89
|
},
|
|
86
|
-
"./directives/sidebar": {
|
|
87
|
-
"types": "./directives/sidebar/index.d.ts",
|
|
88
|
-
"default": "./fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs"
|
|
89
|
-
},
|
|
90
90
|
"./directives/touchable": {
|
|
91
91
|
"types": "./directives/touchable/index.d.ts",
|
|
92
92
|
"default": "./fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs"
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"@angular/cdk": ">=19.0.0",
|
|
97
97
|
"@angular/common": ">=19.0.0",
|
|
98
98
|
"@angular/core": ">=19.0.0",
|
|
99
|
-
"@ng-web-apis/common": "^4.12.
|
|
99
|
+
"@ng-web-apis/common": "^4.12.2",
|
|
100
100
|
"@taiga-ui/cdk": "^4.52.0",
|
|
101
101
|
"@taiga-ui/core": "^4.52.0",
|
|
102
102
|
"@taiga-ui/kit": "^4.52.0",
|
package/styles/common/badge.less
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
tui-badge,
|
|
2
2
|
[tuiBadge] {
|
|
3
|
-
font-weight:
|
|
3
|
+
font-weight: 600;
|
|
4
4
|
|
|
5
5
|
&[data-size='s'] {
|
|
6
6
|
font: var(--tui-font-text-xs);
|
|
@@ -12,6 +12,6 @@ tui-badge,
|
|
|
12
12
|
--t-size: 1.75rem;
|
|
13
13
|
|
|
14
14
|
font: var(--tui-font-text-s);
|
|
15
|
-
font-weight:
|
|
15
|
+
font-weight: 600;
|
|
16
16
|
}
|
|
17
17
|
}
|
package/styles/common/chip.less
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[tuiToast] {
|
|
2
|
+
min-block-size: 3rem;
|
|
3
|
+
border-radius: 1.5rem;
|
|
4
|
+
font: var(--tui-font-text-m);
|
|
5
|
+
|
|
6
|
+
[tuiButton]:last-child {
|
|
7
|
+
margin: -0.1875rem -0.4375rem -0.1875rem 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
&:has([tuiAvatar]) {
|
|
11
|
+
gap: 1rem;
|
|
12
|
+
|
|
13
|
+
[tuiAvatar] {
|
|
14
|
+
margin: 0 -0.25rem;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[tuiButton]:last-child {
|
|
18
|
+
margin-inline-end: 0;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@import '@taiga-ui/core/styles/taiga-ui-local.less';
|
|
1
2
|
@import 'common/search.less';
|
|
2
3
|
|
|
3
4
|
[data-platform='android'] {
|
|
@@ -22,6 +23,12 @@
|
|
|
22
23
|
tui-segmented > .tui-segmented_active:active {
|
|
23
24
|
opacity: var(--tui-disabled-opacity);
|
|
24
25
|
}
|
|
26
|
+
|
|
27
|
+
[tuiToast]:active {
|
|
28
|
+
.interactive({
|
|
29
|
+
transform: scale(0.95);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
25
32
|
}
|
|
26
33
|
|
|
27
34
|
[data-platform='android'],
|
|
@@ -38,4 +45,5 @@
|
|
|
38
45
|
@import 'common/header.less';
|
|
39
46
|
@import 'common/message.less';
|
|
40
47
|
@import 'common/notification-middle.less';
|
|
48
|
+
@import 'common/toast.less';
|
|
41
49
|
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type AnimationOptions } from '@angular/animations';
|
|
2
|
-
import { type DoCheck } from '@angular/core';
|
|
3
|
-
import { type TuiHorizontalDirection } from '@taiga-ui/core/types';
|
|
4
|
-
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated use {@link TuiDrawer} instead
|
|
8
|
-
*/
|
|
9
|
-
export declare class TuiSidebarComponent implements DoCheck {
|
|
10
|
-
private readonly directive;
|
|
11
|
-
private readonly options;
|
|
12
|
-
private readonly left;
|
|
13
|
-
private readonly right;
|
|
14
|
-
ngDoCheck(): void;
|
|
15
|
-
protected get animation(): AnimationOptions;
|
|
16
|
-
protected get direction(): TuiHorizontalDirection;
|
|
17
|
-
protected get content(): PolymorpheusContent;
|
|
18
|
-
protected get autoWidth(): boolean;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSidebarComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiSidebarComponent, "aside[tuiSidebar]", never, {}, {}, never, never, true, never>;
|
|
21
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { TuiSidebarComponent } from './sidebar.component';
|
|
2
|
-
import { TuiSidebarDirective } from './sidebar.directive';
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated use {@link TuiDrawer} instead
|
|
5
|
-
*/
|
|
6
|
-
export declare const TuiSidebar: readonly [typeof TuiSidebarComponent, typeof TuiSidebarDirective];
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type OnDestroy, TemplateRef } from '@angular/core';
|
|
2
|
-
import { type TuiHorizontalDirection } from '@taiga-ui/core/types';
|
|
3
|
-
import { PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated use {@link TuiDrawer} instead
|
|
7
|
-
*/
|
|
8
|
-
export declare class TuiSidebarDirective<T = Record<string, unknown>> extends PolymorpheusTemplate<T> implements OnDestroy {
|
|
9
|
-
private readonly injector;
|
|
10
|
-
private readonly service;
|
|
11
|
-
private readonly component;
|
|
12
|
-
private sidebarRef;
|
|
13
|
-
direction: TuiHorizontalDirection;
|
|
14
|
-
autoWidth: boolean;
|
|
15
|
-
readonly content: TemplateRef<any>;
|
|
16
|
-
set tuiSidebar(open: boolean);
|
|
17
|
-
ngOnDestroy(): void;
|
|
18
|
-
private show;
|
|
19
|
-
private hide;
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSidebarDirective<any>, never>;
|
|
21
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSidebarDirective<any>, "[tuiSidebar]", never, { "direction": { "alias": "tuiSidebarDirection"; "required": false; }; "autoWidth": { "alias": "tuiSidebarAutoWidth"; "required": false; }; "tuiSidebar": { "alias": "tuiSidebar"; "required": false; }; }, {}, never, never, true, never>;
|
|
22
|
-
}
|