@taiga-ui/addon-mobile 2.40.0 → 2.42.0
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/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js +2 -2
- package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.js +1 -1
- package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js +1 -1
- package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +3 -3
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js +2 -2
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.js +304 -0
- package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.js.map +1 -0
- package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.min.js +16 -0
- package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.min.js.map +1 -0
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js +3 -1
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives.umd.js +12 -4
- package/bundles/taiga-ui-addon-mobile-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives.umd.min.js +1 -1
- package/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.metadata.json +1 -1
- package/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.metadata.json +1 -1
- package/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.metadata.json +1 -1
- package/components/sheet/taiga-ui-addon-mobile-components-sheet.metadata.json +1 -1
- package/directives/index.d.ts +1 -0
- package/directives/mobile-tabs/index.d.ts +3 -0
- package/directives/mobile-tabs/mobile-tabs.component.d.ts +2 -0
- package/directives/mobile-tabs/mobile-tabs.directive.d.ts +7 -0
- package/directives/mobile-tabs/mobile-tabs.module.d.ts +2 -0
- package/directives/mobile-tabs/package.json +13 -0
- package/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.d.ts +4 -0
- package/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.metadata.json +1 -0
- package/directives/taiga-ui-addon-mobile-directives.metadata.json +1 -1
- package/esm2015/components/mobile-calendar/mobile-calendar.component.js +2 -2
- package/esm2015/components/mobile-calendar/mobile-calendar.providers.js +2 -2
- package/esm2015/components/mobile-dialog/mobile-dialog.component.js +2 -2
- package/esm2015/components/pull-to-refresh/loader-iOS/loader-iOS.component.js +2 -2
- package/esm2015/components/sheet/components/sheet/sheet.component.js +2 -2
- package/esm2015/components/sheet/components/sheet-bar/sheet-bar.component.js +2 -2
- package/esm2015/components/sheet/components/sheets-host/sheets-host.component.js +2 -2
- package/esm2015/directives/elastic-sticky/elastic-sticky.service.js +2 -2
- package/esm2015/directives/index.js +2 -1
- package/esm2015/directives/mobile-tabs/index.js +4 -0
- package/esm2015/directives/mobile-tabs/mobile-tabs.component.js +13 -0
- package/esm2015/directives/mobile-tabs/mobile-tabs.directive.js +46 -0
- package/esm2015/directives/mobile-tabs/mobile-tabs.module.js +15 -0
- package/esm2015/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.js +5 -0
- package/esm2015/directives/ripple/ripple.directive.js +4 -2
- package/esm5/components/mobile-calendar/mobile-calendar.component.js +2 -2
- package/esm5/components/mobile-calendar/mobile-calendar.providers.js +2 -2
- package/esm5/components/mobile-dialog/mobile-dialog.component.js +2 -2
- package/esm5/components/pull-to-refresh/loader-iOS/loader-iOS.component.js +2 -2
- package/esm5/components/sheet/components/sheet/sheet.component.js +2 -2
- package/esm5/components/sheet/components/sheet-bar/sheet-bar.component.js +2 -2
- package/esm5/components/sheet/components/sheets-host/sheets-host.component.js +2 -2
- package/esm5/directives/elastic-sticky/elastic-sticky.service.js +2 -2
- package/esm5/directives/index.js +2 -1
- package/esm5/directives/mobile-tabs/index.js +4 -0
- package/esm5/directives/mobile-tabs/mobile-tabs.component.js +16 -0
- package/esm5/directives/mobile-tabs/mobile-tabs.directive.js +51 -0
- package/esm5/directives/mobile-tabs/mobile-tabs.module.js +18 -0
- package/esm5/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.js +5 -0
- package/esm5/directives/ripple/ripple.directive.js +4 -2
- package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js +2 -2
- package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-mobile-dialog.js +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-mobile-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +3 -3
- package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js +2 -2
- package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-mobile-tabs.js +71 -0
- package/fesm2015/taiga-ui-addon-mobile-directives-mobile-tabs.js.map +1 -0
- package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js +3 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives.js +1 -0
- package/fesm2015/taiga-ui-addon-mobile-directives.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js +2 -2
- package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-mobile-dialog.js +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-mobile-dialog.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-sheet.js +3 -3
- package/fesm5/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js +2 -2
- package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-directives-mobile-tabs.js +82 -0
- package/fesm5/taiga-ui-addon-mobile-directives-mobile-tabs.js.map +1 -0
- package/fesm5/taiga-ui-addon-mobile-directives-ripple.js +3 -1
- package/fesm5/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-directives.js +1 -0
- package/fesm5/taiga-ui-addon-mobile-directives.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.js","sources":["ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Optional} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n getElementOffset,\n TuiDestroyService,\n tuiZoneOptimized,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {SCROLL_REF_SELECTOR, TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n constructor(\n @Optional()\n @Inject(TUI_SCROLL_REF)\n scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n super(subscriber =>\n ngZone.onStable\n .pipe(\n take(1),\n switchMap(() => {\n const closest = nativeElement.closest(SCROLL_REF_SELECTOR);\n const host = scrollRef?.nativeElement ?? closest;\n const {offsetHeight} = nativeElement;\n const offsetTop = this.getInitialOffset(\n host || windowRef,\n nativeElement,\n );\n\n return typedFromEvent(host || windowRef, 'scroll').pipe(\n map(() =>\n Math.max(\n 1 -\n Math.max(\n Math.round(\n host\n ? host.scrollTop\n : windowRef.pageYOffset,\n ) - offsetTop,\n 0,\n ) /\n offsetHeight,\n 0,\n ),\n ),\n );\n }),\n startWith(1),\n distinctUntilChanged(),\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.js","sources":["ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Optional} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n getElementOffset,\n TuiDestroyService,\n tuiZoneOptimized,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {SCROLL_REF_SELECTOR, TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n constructor(\n @Optional()\n @Inject(TUI_SCROLL_REF)\n scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n super(subscriber =>\n ngZone.onStable\n .pipe(\n take(1),\n switchMap(() => {\n const closest = nativeElement.closest(SCROLL_REF_SELECTOR);\n const host = scrollRef?.nativeElement ?? closest;\n const {offsetHeight} = nativeElement;\n const offsetTop = this.getInitialOffset(\n host || windowRef,\n nativeElement,\n );\n\n return typedFromEvent(host || windowRef, 'scroll').pipe(\n map(() =>\n Math.max(\n 1 -\n Math.max(\n Math.round(\n host\n ? host.scrollTop\n : windowRef.pageYOffset,\n ) - offsetTop,\n 0,\n ) /\n offsetHeight,\n 0,\n ),\n ),\n );\n }),\n startWith(1),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(subscriber),\n );\n }\n\n private getInitialOffset(host: Element | Window, element: HTMLElement): number {\n // TODO: iframe warning\n return host instanceof Element\n ? getElementOffset(host, element).offsetTop\n : element.getBoundingClientRect().top;\n }\n}\n","import {Directive, Inject, Output} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nimport {TuiElasticStickyService} from './elastic-sticky.service';\n\n@Directive({\n selector: '[tuiElasticSticky]',\n exportAs: 'tuiElasticSticky',\n providers: [TuiElasticStickyService, TuiDestroyService],\n})\nexport class TuiElasticStickyDirective {\n @Output()\n readonly tuiElasticSticky: Observable<number>;\n\n constructor(\n @Inject(TuiElasticStickyService) elasticStickyService: TuiElasticStickyService,\n ) {\n this.tuiElasticSticky = elasticStickyService;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiElasticStickyDirective} from './elastic-sticky.directive';\n\n@NgModule({\n declarations: [TuiElasticStickyDirective],\n exports: [TuiElasticStickyDirective],\n})\nexport class TuiElasticStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { __decorate, __param } from 'tslib';
|
|
2
|
+
import { Component, ViewEncapsulation, Inject, HostBinding, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { TUI_IS_IOS, TUI_IS_ANDROID, TuiDirectiveStylesService } from '@taiga-ui/cdk';
|
|
4
|
+
import { TUI_TAB_MARGIN } from '@taiga-ui/kit';
|
|
5
|
+
|
|
6
|
+
var TuiMobileTabsComponent = /** @class */ (function () {
|
|
7
|
+
function TuiMobileTabsComponent() {
|
|
8
|
+
}
|
|
9
|
+
TuiMobileTabsComponent = __decorate([
|
|
10
|
+
Component({
|
|
11
|
+
template: '',
|
|
12
|
+
encapsulation: ViewEncapsulation.None,
|
|
13
|
+
styles: ["[tuiMobileTabs] tui-tabs[data-platform=android],tui-tabs[tuiMobileTabs][data-platform=android]{height:auto}[tuiMobileTabs] tui-tabs[data-platform=android] tui-underline,tui-tabs[tuiMobileTabs][data-platform=android] tui-underline{box-shadow:inset 0 -.1875rem var(--tui-link)}[tuiMobileTabs] tui-tabs[data-platform=android] [tuiTab],tui-tabs[tuiMobileTabs][data-platform=android] [tuiTab]{transition-property:opacity;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;height:3rem;flex:1;flex-shrink:0;justify-content:center;text-transform:uppercase;color:var(--tui-base-09);opacity:.5;font-size:.875rem;font-weight:500;letter-spacing:-.008125rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}[tuiMobileTabs] tui-tabs[data-platform=android] [tuiTab]:hover,tui-tabs[tuiMobileTabs][data-platform=android] [tuiTab]:hover{box-shadow:none}[tuiMobileTabs] tui-tabs[data-platform=android] [tuiTab]._active,tui-tabs[tuiMobileTabs][data-platform=android] [tuiTab]._active{opacity:1;color:var(--tui-base-09)}[tuiMobileTabs] tui-tabs[data-platform=ios],tui-tabs[tuiMobileTabs][data-platform=ios]{height:auto;border:2px solid transparent;border-radius:.5625rem;background:var(--tui-link);box-shadow:none}[tuiMobileTabs] tui-tabs[data-platform=ios] tui-underline,tui-tabs[tuiMobileTabs][data-platform=ios] tui-underline{border-radius:.4375rem;background:var(--tui-base-01);box-shadow:0 .1875rem .0625rem rgba(0,0,0,.04),0 .1875rem .5rem rgba(0,0,0,.12)}[tuiMobileTabs] tui-tabs[data-platform=ios] [tuiTab],tui-tabs[tuiMobileTabs][data-platform=ios] [tuiTab]{height:1.75rem;flex:1;flex-shrink:0;justify-content:center;color:var(--tui-base-01);opacity:1;font-size:.8125rem;font-weight:500;letter-spacing:-.005rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}[tuiMobileTabs] tui-tabs[data-platform=ios] [tuiTab]:hover,tui-tabs[tuiMobileTabs][data-platform=ios] [tuiTab]:hover{box-shadow:none}[tuiMobileTabs] tui-tabs[data-platform=ios] [tuiTab]._active,tui-tabs[tuiMobileTabs][data-platform=ios] [tuiTab]._active{font-size:.875rem;font-weight:600;color:var(--tui-link)}"]
|
|
14
|
+
})
|
|
15
|
+
], TuiMobileTabsComponent);
|
|
16
|
+
return TuiMobileTabsComponent;
|
|
17
|
+
}());
|
|
18
|
+
|
|
19
|
+
// @dynamic
|
|
20
|
+
var TuiMobileTabsDirective = /** @class */ (function () {
|
|
21
|
+
function TuiMobileTabsDirective(isIos, isAndroid, directiveStyles) {
|
|
22
|
+
this.isIos = isIos;
|
|
23
|
+
this.isAndroid = isAndroid;
|
|
24
|
+
directiveStyles.addComponent(TuiMobileTabsComponent);
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(TuiMobileTabsDirective.prototype, "platform", {
|
|
27
|
+
get: function () {
|
|
28
|
+
if (this.isIos) {
|
|
29
|
+
return 'ios';
|
|
30
|
+
}
|
|
31
|
+
if (this.isAndroid) {
|
|
32
|
+
return 'android';
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
},
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true
|
|
38
|
+
});
|
|
39
|
+
TuiMobileTabsDirective.ctorParameters = function () { return [
|
|
40
|
+
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
|
|
41
|
+
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_ANDROID,] }] },
|
|
42
|
+
{ type: TuiDirectiveStylesService, decorators: [{ type: Inject, args: [TuiDirectiveStylesService,] }] }
|
|
43
|
+
]; };
|
|
44
|
+
__decorate([
|
|
45
|
+
HostBinding('attr.data-platform')
|
|
46
|
+
], TuiMobileTabsDirective.prototype, "platform", null);
|
|
47
|
+
TuiMobileTabsDirective = __decorate([
|
|
48
|
+
Directive({
|
|
49
|
+
selector: '[tuiMobileTabs]',
|
|
50
|
+
providers: [
|
|
51
|
+
{
|
|
52
|
+
provide: TUI_TAB_MARGIN,
|
|
53
|
+
useValue: 0,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
}),
|
|
57
|
+
__param(0, Inject(TUI_IS_IOS)),
|
|
58
|
+
__param(1, Inject(TUI_IS_ANDROID)),
|
|
59
|
+
__param(2, Inject(TuiDirectiveStylesService))
|
|
60
|
+
], TuiMobileTabsDirective);
|
|
61
|
+
return TuiMobileTabsDirective;
|
|
62
|
+
}());
|
|
63
|
+
|
|
64
|
+
var TuiMobileTabsModule = /** @class */ (function () {
|
|
65
|
+
function TuiMobileTabsModule() {
|
|
66
|
+
}
|
|
67
|
+
TuiMobileTabsModule = __decorate([
|
|
68
|
+
NgModule({
|
|
69
|
+
declarations: [TuiMobileTabsDirective, TuiMobileTabsComponent],
|
|
70
|
+
exports: [TuiMobileTabsDirective, TuiMobileTabsComponent],
|
|
71
|
+
entryComponents: [TuiMobileTabsComponent],
|
|
72
|
+
})
|
|
73
|
+
], TuiMobileTabsModule);
|
|
74
|
+
return TuiMobileTabsModule;
|
|
75
|
+
}());
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Generated bundle index. Do not edit.
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
export { TuiMobileTabsComponent, TuiMobileTabsDirective, TuiMobileTabsModule };
|
|
82
|
+
//# sourceMappingURL=taiga-ui-addon-mobile-directives-mobile-tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives-mobile-tabs.js","sources":["ng://@taiga-ui/addon-mobile/directives/mobile-tabs/mobile-tabs.component.ts","ng://@taiga-ui/addon-mobile/directives/mobile-tabs/mobile-tabs.directive.ts","ng://@taiga-ui/addon-mobile/directives/mobile-tabs/mobile-tabs.module.ts","ng://@taiga-ui/addon-mobile/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.ts"],"sourcesContent":["import {Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n template: '',\n styleUrls: ['mobile-tabs.style.less'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TuiMobileTabsComponent {}\n","import {Directive, HostBinding, Inject} from '@angular/core';\nimport {TUI_IS_ANDROID, TUI_IS_IOS, TuiDirectiveStylesService} from '@taiga-ui/cdk';\nimport {TUI_TAB_MARGIN} from '@taiga-ui/kit';\n\nimport {TuiMobileTabsComponent} from './mobile-tabs.component';\n\n// @dynamic\n@Directive({\n selector: '[tuiMobileTabs]',\n providers: [\n {\n provide: TUI_TAB_MARGIN,\n useValue: 0,\n },\n ],\n})\nexport class TuiMobileTabsDirective {\n constructor(\n @Inject(TUI_IS_IOS) private readonly isIos: boolean,\n @Inject(TUI_IS_ANDROID) private readonly isAndroid: boolean,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addComponent(TuiMobileTabsComponent);\n }\n\n @HostBinding('attr.data-platform')\n get platform(): 'ios' | 'android' | null {\n if (this.isIos) {\n return 'ios';\n }\n\n if (this.isAndroid) {\n return 'android';\n }\n\n return null;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiMobileTabsComponent} from './mobile-tabs.component';\nimport {TuiMobileTabsDirective} from './mobile-tabs.directive';\n\n@NgModule({\n declarations: [TuiMobileTabsDirective, TuiMobileTabsComponent],\n exports: [TuiMobileTabsDirective, TuiMobileTabsComponent],\n entryComponents: [TuiMobileTabsComponent],\n})\nexport class TuiMobileTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;IAOA;KAAsC;IAAzB,sBAAsB;QALlC,SAAS,CAAC;YACP,QAAQ,EAAE,EAAE;YAEZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;;SACxC,CAAC;OACW,sBAAsB,CAAG;IAAD,6BAAC;CAAtC;;ACDA;;IAWI,gCACyC,KAAc,EACV,SAAkB,EACxB,eAA0C;QAFxC,UAAK,GAAL,KAAK,CAAS;QACV,cAAS,GAAT,SAAS,CAAS;QAG3D,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;KACxD;IAGD,sBAAI,4CAAQ;aAAZ;YACI,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,OAAO,SAAS,CAAC;aACpB;YAED,OAAO,IAAI,CAAC;SACf;;;OAAA;;8CAlBI,MAAM,SAAC,UAAU;8CACjB,MAAM,SAAC,cAAc;gBAC8B,yBAAyB,uBAA5E,MAAM,SAAC,yBAAyB;;IAMrC;QADC,WAAW,CAAC,oBAAoB,CAAC;0DAWjC;IApBQ,sBAAsB;QATlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,CAAC;iBACd;aACJ;SACJ,CAAC;QAGO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;QACtB,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;OAJ7B,sBAAsB,CAqBlC;IAAD,6BAAC;CArBD;;;ICNA;KAAmC;IAAtB,mBAAmB;QAL/B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;YAC9D,OAAO,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;YACzD,eAAe,EAAE,CAAC,sBAAsB,CAAC;SAC5C,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACVA;;;;;;"}
|
|
@@ -67,7 +67,9 @@ var TuiRippleDirective = /** @class */ (function () {
|
|
|
67
67
|
start$
|
|
68
68
|
.pipe(mergeMap(function (ripple) {
|
|
69
69
|
var animationEndOn$ = typedFromEvent(ripple, 'animationend');
|
|
70
|
-
return race(timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)), touchEnd$.pipe(mapTo(true))).pipe(take(1),
|
|
70
|
+
return race(timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)), touchEnd$.pipe(mapTo(true))).pipe(take(1),
|
|
71
|
+
// eslint-disable-next-line rxjs/no-unsafe-takeuntil
|
|
72
|
+
takeUntil(touchMove$), tap(function () {
|
|
71
73
|
renderer.setStyle(ripple, 'background', _this.tuiRipple || null);
|
|
72
74
|
renderer.appendChild(nativeElement, ripple);
|
|
73
75
|
}), switchMap(function (isTap) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-directives-ripple.js","sources":["ng://@taiga-ui/addon-mobile/directives/ripple/ripple.providers.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.directive.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.module.ts","ng://@taiga-ui/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {ElementRef, InjectionToken, Provider, Renderer2} from '@angular/core';\nimport {\n isPresent,\n TUI_IS_IOS,\n TUI_TOUCH_SUPPORTED,\n TuiDestroyService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {EMPTY, Observable} from 'rxjs';\nimport {filter, map, takeUntil} from 'rxjs/operators';\n\nexport const RIPPLE_ON = 'tuiRippleOn';\nexport const RIPPLE_OFF = 'tuiRippleOff';\nexport const TUI_RIPPLE_START = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to add',\n);\nexport const TUI_RIPPLE_END = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to remove',\n);\nexport const TUI_RIPPLE_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: TUI_RIPPLE_START,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, Renderer2],\n useFactory: rippleStartFactory,\n },\n {\n provide: TUI_RIPPLE_END,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, TuiDestroyService],\n useFactory: rippleEndFactory,\n },\n];\n\nexport function rippleStartFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n renderer: Renderer2,\n): Observable<HTMLElement> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'touchstart').pipe(\n map(({touches}) => {\n const {clientX, clientY} = touches[touches.length - 1];\n const {width, height, top, left} =\n nativeElement.getBoundingClientRect();\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 const ripple = renderer.createElement('div');\n\n renderer.addClass(ripple, 'tui-ripple');\n renderer.setAttribute(\n ripple,\n 'style',\n `\n width: ${dimension}px;\n height: ${dimension}px;\n left: ${x}px;\n top: ${y}px;\n animation-name: ${RIPPLE_ON};\n `,\n );\n\n return ripple;\n }),\n );\n}\n\nexport function rippleEndFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n destroy$: Observable<void>,\n): Observable<EventTarget> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'animationend').pipe(\n filter(({animationName}) => animationName === RIPPLE_OFF),\n map(({target}) => target),\n filter(isPresent),\n takeUntil(destroy$),\n );\n}\n","import {Directive, ElementRef, Inject, Input, Renderer2} from '@angular/core';\nimport {\n TuiDestroyService,\n TuiDirectiveStylesService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n mapTo,\n mergeMap,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\n\nimport {\n RIPPLE_OFF,\n RIPPLE_ON,\n TUI_RIPPLE_END,\n TUI_RIPPLE_PROVIDERS,\n TUI_RIPPLE_START,\n} from './ripple.providers';\n\nconst TOUCH_MOVE_DELAY = 100;\nconst STYLE = `\n@keyframes ${RIPPLE_ON} {\n from {\n transform: scale(0);\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0.12;\n }\n}\n\n@keyframes ${RIPPLE_OFF} {\n from {\n transform: none;\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0;\n }\n}\n\n*[tuiRipple] {\n position: relative;\n overflow: hidden;\n}\n\n.tui-ripple {\n position: absolute;\n border-radius: 100%;\n background: currentColor;\n z-index: 100;\n transform: scale(0);\n animation-duration: 450ms;\n animation-fill-mode: forwards;\n pointer-events: none;\n}\n`;\n\n@Directive({\n selector: '[tuiRipple]',\n providers: TUI_RIPPLE_PROVIDERS,\n})\nexport class TuiRippleDirective {\n @Input()\n tuiRipple?: string;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(TUI_RIPPLE_START) start$: Observable<HTMLElement>,\n @Inject(TUI_RIPPLE_END) end$: Observable<EventTarget>,\n ) {\n directiveStyles.addStyle(STYLE, 'TuiRippleDirective');\n\n const touchEnd$ = typedFromEvent(nativeElement, 'touchend');\n const touchMove$ = typedFromEvent(nativeElement, 'touchmove');\n\n end$.subscribe(element => {\n renderer.removeChild(nativeElement, element);\n });\n start$\n .pipe(\n mergeMap(ripple => {\n const animationEndOn$ = typedFromEvent(ripple, 'animationend');\n\n return race(\n timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)),\n touchEnd$.pipe(mapTo(true)),\n ).pipe(\n take(1),\n takeUntil(touchMove$),\n tap(() => {\n renderer.setStyle(\n ripple,\n 'background',\n this.tuiRipple || null,\n );\n renderer.appendChild(nativeElement, ripple);\n }),\n switchMap(isTap =>\n isTap\n ? animationEndOn$\n : race<unknown>(\n touchEnd$.pipe(switchMapTo(animationEndOn$)),\n animationEndOn$.pipe(switchMapTo(touchEnd$)),\n ),\n ),\n mapTo(ripple),\n );\n }),\n takeUntil(destroy$),\n )\n .subscribe(element => {\n renderer.setStyle(element, 'animationName', RIPPLE_OFF);\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiRippleDirective} from './ripple.directive';\n\n@NgModule({\n declarations: [TuiRippleDirective],\n exports: [TuiRippleDirective],\n})\nexport class TuiRippleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives-ripple.js","sources":["ng://@taiga-ui/addon-mobile/directives/ripple/ripple.providers.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.directive.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.module.ts","ng://@taiga-ui/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {ElementRef, InjectionToken, Provider, Renderer2} from '@angular/core';\nimport {\n isPresent,\n TUI_IS_IOS,\n TUI_TOUCH_SUPPORTED,\n TuiDestroyService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {EMPTY, Observable} from 'rxjs';\nimport {filter, map, takeUntil} from 'rxjs/operators';\n\nexport const RIPPLE_ON = 'tuiRippleOn';\nexport const RIPPLE_OFF = 'tuiRippleOff';\nexport const TUI_RIPPLE_START = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to add',\n);\nexport const TUI_RIPPLE_END = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to remove',\n);\nexport const TUI_RIPPLE_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: TUI_RIPPLE_START,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, Renderer2],\n useFactory: rippleStartFactory,\n },\n {\n provide: TUI_RIPPLE_END,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, TuiDestroyService],\n useFactory: rippleEndFactory,\n },\n];\n\nexport function rippleStartFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n renderer: Renderer2,\n): Observable<HTMLElement> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'touchstart').pipe(\n map(({touches}) => {\n const {clientX, clientY} = touches[touches.length - 1];\n const {width, height, top, left} =\n nativeElement.getBoundingClientRect();\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 const ripple = renderer.createElement('div');\n\n renderer.addClass(ripple, 'tui-ripple');\n renderer.setAttribute(\n ripple,\n 'style',\n `\n width: ${dimension}px;\n height: ${dimension}px;\n left: ${x}px;\n top: ${y}px;\n animation-name: ${RIPPLE_ON};\n `,\n );\n\n return ripple;\n }),\n );\n}\n\nexport function rippleEndFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n destroy$: Observable<void>,\n): Observable<EventTarget> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'animationend').pipe(\n filter(({animationName}) => animationName === RIPPLE_OFF),\n map(({target}) => target),\n filter(isPresent),\n takeUntil(destroy$),\n );\n}\n","import {Directive, ElementRef, Inject, Input, Renderer2} from '@angular/core';\nimport {\n TuiDestroyService,\n TuiDirectiveStylesService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n mapTo,\n mergeMap,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\n\nimport {\n RIPPLE_OFF,\n RIPPLE_ON,\n TUI_RIPPLE_END,\n TUI_RIPPLE_PROVIDERS,\n TUI_RIPPLE_START,\n} from './ripple.providers';\n\nconst TOUCH_MOVE_DELAY = 100;\nconst STYLE = `\n@keyframes ${RIPPLE_ON} {\n from {\n transform: scale(0);\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0.12;\n }\n}\n\n@keyframes ${RIPPLE_OFF} {\n from {\n transform: none;\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0;\n }\n}\n\n*[tuiRipple] {\n position: relative;\n overflow: hidden;\n}\n\n.tui-ripple {\n position: absolute;\n border-radius: 100%;\n background: currentColor;\n z-index: 100;\n transform: scale(0);\n animation-duration: 450ms;\n animation-fill-mode: forwards;\n pointer-events: none;\n}\n`;\n\n@Directive({\n selector: '[tuiRipple]',\n providers: TUI_RIPPLE_PROVIDERS,\n})\nexport class TuiRippleDirective {\n @Input()\n tuiRipple?: string;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(TUI_RIPPLE_START) start$: Observable<HTMLElement>,\n @Inject(TUI_RIPPLE_END) end$: Observable<EventTarget>,\n ) {\n directiveStyles.addStyle(STYLE, 'TuiRippleDirective');\n\n const touchEnd$ = typedFromEvent(nativeElement, 'touchend');\n const touchMove$ = typedFromEvent(nativeElement, 'touchmove');\n\n end$.subscribe(element => {\n renderer.removeChild(nativeElement, element);\n });\n start$\n .pipe(\n mergeMap(ripple => {\n const animationEndOn$ = typedFromEvent(ripple, 'animationend');\n\n return race(\n timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)),\n touchEnd$.pipe(mapTo(true)),\n ).pipe(\n take(1),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(touchMove$),\n tap(() => {\n renderer.setStyle(\n ripple,\n 'background',\n this.tuiRipple || null,\n );\n renderer.appendChild(nativeElement, ripple);\n }),\n switchMap(isTap =>\n isTap\n ? animationEndOn$\n : race<unknown>(\n touchEnd$.pipe(switchMapTo(animationEndOn$)),\n animationEndOn$.pipe(switchMapTo(touchEnd$)),\n ),\n ),\n mapTo(ripple),\n );\n }),\n takeUntil(destroy$),\n )\n .subscribe(element => {\n renderer.setStyle(element, 'animationName', RIPPLE_OFF);\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiRippleDirective} from './ripple.directive';\n\n@NgModule({\n declarations: [TuiRippleDirective],\n exports: [TuiRippleDirective],\n})\nexport class TuiRippleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from '@taiga-ui/addon-mobile/directives/elastic-sticky';
|
|
2
|
+
export * from '@taiga-ui/addon-mobile/directives/mobile-tabs';
|
|
2
3
|
export * from '@taiga-ui/addon-mobile/directives/ripple';
|
|
3
4
|
export * from '@taiga-ui/addon-mobile/directives/sidebar';
|
|
4
5
|
export * from '@taiga-ui/addon-mobile/directives/touchable';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-directives.js","sources":["ng://@taiga-ui/addon-mobile/directives/taiga-ui-addon-mobile-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-directives.js","sources":["ng://@taiga-ui/addon-mobile/directives/taiga-ui-addon-mobile-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/addon-mobile",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.42.0",
|
|
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",
|
|
7
7
|
"component",
|
|
8
8
|
"mobile"
|
|
9
9
|
],
|
|
10
|
-
"license": "Apache-2.0",
|
|
11
|
-
"repository": "https://github.com/tinkoff/taiga-ui",
|
|
12
10
|
"homepage": "https://github.com/tinkoff/taiga-ui",
|
|
11
|
+
"repository": "https://github.com/tinkoff/taiga-ui",
|
|
12
|
+
"license": "Apache-2.0",
|
|
13
13
|
"peerDependencies": {
|
|
14
14
|
"@angular/cdk": ">=9.0.0",
|
|
15
15
|
"@angular/common": ">=9.0.0",
|
|
16
16
|
"@angular/core": ">=9.0.0",
|
|
17
17
|
"@ng-web-apis/common": ">=1.12.1 < 2",
|
|
18
|
+
"@taiga-ui/cdk": ">=2.42.0",
|
|
19
|
+
"@taiga-ui/core": ">=2.42.0",
|
|
20
|
+
"@taiga-ui/kit": ">=2.42.0",
|
|
18
21
|
"@tinkoff/ng-polymorpheus": ">=3.1.12 < 4",
|
|
19
|
-
"@taiga-ui/cdk": ">=2.40.0",
|
|
20
|
-
"@taiga-ui/core": ">=2.40.0",
|
|
21
|
-
"@taiga-ui/kit": ">=2.40.0",
|
|
22
22
|
"rxjs": ">=6.0.0"
|
|
23
23
|
},
|
|
24
24
|
"main": "bundles/taiga-ui-addon-mobile.umd.js",
|