@taiga-ui/addon-mobile 2.27.0 → 2.30.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/README.md +4 -5
- 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.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +1 -1
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js +6 -6
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js.map +1 -1
- package/components/mobile-calendar/mobile-calendar.strategy.d.ts +1 -1
- package/components/sheet/taiga-ui-addon-mobile-components-sheet.metadata.json +1 -1
- package/directives/ripple/ripple.providers.d.ts +2 -2
- package/directives/ripple/taiga-ui-addon-mobile-directives-ripple.metadata.json +1 -1
- package/esm2015/components/mobile-calendar/mobile-calendar.strategy.js +1 -1
- package/esm2015/components/sheet/components/sheet/sheet.component.js +1 -1
- package/esm2015/directives/ripple/ripple.providers.js +8 -8
- package/esm5/components/mobile-calendar/mobile-calendar.strategy.js +1 -1
- package/esm5/components/sheet/components/sheet/sheet.component.js +1 -1
- package/esm5/directives/ripple/ripple.providers.js +8 -8
- package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js +7 -7
- package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
- package/fesm5/taiga-ui-addon-mobile-components-sheet.js +1 -1
- package/fesm5/taiga-ui-addon-mobile-directives-ripple.js +7 -7
- package/fesm5/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
- package/package.json +6 -6
|
@@ -131,4 +131,4 @@ var TuiMobileCalendarStrategy = /** @class */ (function () {
|
|
|
131
131
|
return TuiMobileCalendarStrategy;
|
|
132
132
|
}());
|
|
133
133
|
export { TuiMobileCalendarStrategy };
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWNhbGVuZGFyLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL21vYmlsZS1jYWxlbmRhci8iLCJzb3VyY2VzIjpbIm1vYmlsZS1jYWxlbmRhci5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUNILGFBQWEsRUFDYixNQUFNLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEdBQ2YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxJQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN4RCxJQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUVoRCxTQUFTLFdBQVcsQ0FDaEIsS0FBdUMsRUFDdkMsUUFBcUIsRUFDckIsU0FBc0I7SUFEdEIseUJBQUEsRUFBQSxhQUFxQjtJQUNyQiwwQkFBQSxFQUFBLGNBQXNCO0lBRXRCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FDZixVQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUztRQUNuQixPQUFBLFNBQVMsSUFBSSxRQUFRO1lBQ2pCLENBQUMsQ0FBQyxLQUFLO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQ1AsVUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVU7b0JBQ25CLE9BQUEsU0FBUyxHQUFHLFFBQVE7d0JBQ3BCLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDO3dCQUM5QyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUs7d0JBQ2IsQ0FBQyxDQUFDLEdBQUc7Z0JB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VSxFQUFFO2dCQUMxQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNuQixVQUFVLEVBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxZQUFZLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUM3RCxDQUFDO2FBQ0w7U0FDSjtRQUVELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQXBIRDtRQURDLE9BQU87d0VBR1A7SUFtSEwsZ0NBQUM7Q0FBQSxBQWhJRCxJQWdJQztTQWhJWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Nka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCwgVmlydHVhbFNjcm9sbFN0cmF0ZWd5fSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7TU9OVEhTX0lOX1lFQVIsIHR1aVB1cmUsIFR1aVNjcm9sbFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBBTkRST0lEX0NZQ0xFLFxuICAgIEJVRkZFUixcbiAgICBJT1NfQ1lDTEUsXG4gICAgUkFOR0UsXG4gICAgWUVBUkxZX0NZQ0xFLFxufSBmcm9tICcuL21vYmlsZS1jYWxlbmRhci5jb25zdCc7XG5cbmNvbnN0IEFORFJPSURfQ1lDTEVfSEVJR0hUID0gcmVkdWNlQ3ljbGUoQU5EUk9JRF9DWUNMRSk7XG5jb25zdCBJT1NfQ1lDTEVfSEVJR0hUID0gcmVkdWNlQ3ljbGUoSU9TX0NZQ0xFKTtcblxuZnVuY3Rpb24gcmVkdWNlQ3ljbGUoXG4gICAgY3ljbGU6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgbnVtYmVyW10+LFxuICAgIGxhc3RZZWFyOiBudW1iZXIgPSAyOCxcbiAgICBsYXN0TW9udGg6IG51bWJlciA9IDEyLFxuKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY3ljbGUucmVkdWNlKFxuICAgICAgICAodG90YWwsIHllYXIsIHllYXJJbmRleCkgPT5cbiAgICAgICAgICAgIHllYXJJbmRleCA8PSBsYXN0WWVhclxuICAgICAgICAgICAgICAgID8gdG90YWwgK1xuICAgICAgICAgICAgICAgICAgeWVhci5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgICAgKHN1bSwgbW9udGgsIG1vbnRoSW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHllYXJJbmRleCA8IGxhc3RZZWFyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh5ZWFySW5kZXggPT09IGxhc3RZZWFyICYmIG1vbnRoSW5kZXggPCBsYXN0TW9udGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHN1bSArIG1vbnRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHN1bSxcbiAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdG90YWwsXG4gICAgICAgIDAsXG4gICAgKTtcbn1cblxuLyoqXG4gKiBUaGlzIHNjcm9sbCBzdHJhdGVneSBpcyBoYXJkIHdpcmVkIHdpdGggc3R5bGVzIGZvciBpT1MgYW5kIEFuZHJvaWQuXG4gKiBJdCBpcyBkZXBlbmRlbnQgb24gbW9udGggaGVpZ2h0IG9uIHRob3NlIHBsYXRmb3JtcyBhbmQgaXMgZGVzaWduZWQgdG9cbiAqIHdvcmsgZm9yIHtAbGluayBUdWlNb2JpbGVDYWxlbmRhckNvbXBvbmVudH0gd2l0aCB5ZWFycyAxOTA2IHRvIDIxMDJcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aU1vYmlsZUNhbGVuZGFyU3RyYXRlZ3kgaW1wbGVtZW50cyBWaXJ0dWFsU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHByaXZhdGUgaW5kZXgkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgcHJpdmF0ZSB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpc0lvczogYm9vbGVhbixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxTZXJ2aWNlOiBUdWlTY3JvbGxTZXJ2aWNlLFxuICAgICkge31cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IHNjcm9sbGVkSW5kZXhDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXgkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgYXR0YWNoKHZpZXdwb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpIHtcbiAgICAgICAgY29uc3QgY3ljbGUgPSB0aGlzLmlzSW9zID8gSU9TX0NZQ0xFX0hFSUdIVCA6IEFORFJPSURfQ1lDTEVfSEVJR0hUO1xuXG4gICAgICAgIHRoaXMudmlld3BvcnQgPSB2aWV3cG9ydDtcbiAgICAgICAgdGhpcy52aWV3cG9ydC5zZXRUb3RhbENvbnRlbnRTaXplKGN5Y2xlICogNyk7XG4gICAgICAgIHRoaXMudXBkYXRlUmVuZGVyZWRSYW5nZSh0aGlzLnZpZXdwb3J0KTtcbiAgICB9XG5cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIHRoaXMuaW5kZXgkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMudmlld3BvcnQgPSBudWxsO1xuICAgIH1cblxuICAgIG9uQ29udGVudFNjcm9sbGVkKCkge1xuICAgICAgICBpZiAodGhpcy52aWV3cG9ydCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJlZFJhbmdlKHRoaXMudmlld3BvcnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFRoZXNlIGRvIG5vdCBtYXR0ZXIgZm9yIHRoaXMgY2FzZSAqL1xuICAgIG9uRGF0YUxlbmd0aENoYW5nZWQoKSB7fVxuICAgIG9uQ29udGVudFJlbmRlcmVkKCkge31cbiAgICBvblJlbmRlcmVkT2Zmc2V0Q2hhbmdlZCgpIHt9XG5cbiAgICBzY3JvbGxUb0luZGV4KGluZGV4OiBudW1iZXIsIGJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvcikge1xuICAgICAgICBpZiAoIXRoaXMudmlld3BvcnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuZ2V0T2Zmc2V0Rm9ySW5kZXgoaW5kZXgpO1xuXG4gICAgICAgIGlmIChiZWhhdmlvciAhPT0gJ3Ntb290aCcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsVG9wLCBiZWhhdmlvcik7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2Nyb2xsU2VydmljZVxuICAgICAgICAgICAgLnNjcm9sbCQodGhpcy52aWV3cG9ydC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNjcm9sbFRvcClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9mZnNldEZvckluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBtb250aCA9IGluZGV4ICUgTU9OVEhTX0lOX1lFQVI7XG4gICAgICAgIGNvbnN0IHllYXIgPSAoaW5kZXggLSBtb250aCkgLyBNT05USFNfSU5fWUVBUjtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlSGVpZ2h0KHllYXIsIG1vbnRoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEluZGV4Rm9yT2Zmc2V0KG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY3ljbGUgPSB0aGlzLmlzSW9zID8gSU9TX0NZQ0xFIDogQU5EUk9JRF9DWUNMRTtcbiAgICAgICAgY29uc3QgY3ljbGVIZWlnaHQgPSB0aGlzLmlzSW9zID8gSU9TX0NZQ0xFX0hFSUdIVCA6IEFORFJPSURfQ1lDTEVfSEVJR0hUO1xuICAgICAgICBjb25zdCByZW1haW5kZXIgPSBvZmZzZXQgJSBjeWNsZUhlaWdodDtcbiAgICAgICAgY29uc3QgeWVhcnMgPSAoKG9mZnNldCAtIHJlbWFpbmRlcikgLyBjeWNsZUhlaWdodCkgKiBZRUFSTFlfQ1lDTEU7XG5cbiAgICAgICAgbGV0IGFjY3VtdWxhdG9yID0gMDtcblxuICAgICAgICBmb3IgKGxldCB5ZWFyID0gMDsgeWVhciA8IGN5Y2xlLmxlbmd0aDsgeWVhcisrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBtb250aCA9IDA7IG1vbnRoIDwgY3ljbGVbeWVhcl0ubGVuZ3RoOyBtb250aCsrKSB7XG4gICAgICAgICAgICAgICAgYWNjdW11bGF0b3IgKz0gY3ljbGVbeWVhcl1bbW9udGhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjY3VtdWxhdG9yIC0gY3ljbGVbeWVhcl1bbW9udGhdIC8gMiA+IHJlbWFpbmRlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoKHllYXJzICsgeWVhcikgKiBNT05USFNfSU5fWUVBUiArIG1vbnRoLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUkFOR0U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlSGVpZ2h0KHllYXI6IG51bWJlciwgbW9udGg/OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjeWNsZSA9IHRoaXMuaXNJb3MgPyBJT1NfQ1lDTEUgOiBBTkRST0lEX0NZQ0xFO1xuICAgICAgICBjb25zdCByZW1haW5kZXIgPSB5ZWFyICUgWUVBUkxZX0NZQ0xFO1xuICAgICAgICBjb25zdCByZW1haW5kZXJIZWlnaHQgPSByZWR1Y2VDeWNsZShjeWNsZSwgcmVtYWluZGVyLCBtb250aCk7XG4gICAgICAgIGNvbnN0IGZ1bGxDeWNsZXMgPSAoeWVhciAtIHJlbWFpbmRlcikgLyBZRUFSTFlfQ1lDTEU7XG4gICAgICAgIGNvbnN0IGZ1bGxDeWNsZXNIZWlnaHQgPSB0aGlzLmlzSW9zXG4gICAgICAgICAgICA/IGZ1bGxDeWNsZXMgKiBJT1NfQ1lDTEVfSEVJR0hUXG4gICAgICAgICAgICA6IGZ1bGxDeWNsZXMgKiBBTkRST0lEX0NZQ0xFX0hFSUdIVDtcblxuICAgICAgICByZXR1cm4gZnVsbEN5Y2xlc0hlaWdodCArIHJlbWFpbmRlckhlaWdodDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJlbmRlcmVkUmFuZ2Uodmlld3BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCkge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB2aWV3cG9ydC5tZWFzdXJlU2Nyb2xsT2Zmc2V0KCk7XG4gICAgICAgIGNvbnN0IHtzdGFydCwgZW5kfSA9IHZpZXdwb3J0LmdldFJlbmRlcmVkUmFuZ2UoKTtcbiAgICAgICAgY29uc3Qgdmlld3BvcnRTaXplID0gdmlld3BvcnQuZ2V0Vmlld3BvcnRTaXplKCk7XG4gICAgICAgIGNvbnN0IGRhdGFMZW5ndGggPSB2aWV3cG9ydC5nZXREYXRhTGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IG5ld1JhbmdlID0ge3N0YXJ0LCBlbmR9O1xuICAgICAgICBjb25zdCBmaXJzdFZpc2libGVJbmRleCA9IHRoaXMuZ2V0SW5kZXhGb3JPZmZzZXQob2Zmc2V0KTtcbiAgICAgICAgY29uc3Qgc3RhcnRCdWZmZXIgPSBvZmZzZXQgLSB0aGlzLmdldE9mZnNldEZvckluZGV4KHN0YXJ0KTtcblxuICAgICAgICBpZiAoc3RhcnRCdWZmZXIgPCBCVUZGRVIgJiYgc3RhcnQgIT09IDApIHtcbiAgICAgICAgICAgIG5ld1JhbmdlLnN0YXJ0ID0gTWF0aC5tYXgoMCwgdGhpcy5nZXRJbmRleEZvck9mZnNldChvZmZzZXQgLSBCVUZGRVIgKiAyKSk7XG4gICAgICAgICAgICBuZXdSYW5nZS5lbmQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICBkYXRhTGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0SW5kZXhGb3JPZmZzZXQob2Zmc2V0ICsgdmlld3BvcnRTaXplICsgQlVGRkVSKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBlbmRCdWZmZXIgPSB0aGlzLmdldE9mZnNldEZvckluZGV4KGVuZCkgLSBvZmZzZXQgLSB2aWV3cG9ydFNpemU7XG5cbiAgICAgICAgICAgIGlmIChlbmRCdWZmZXIgPCBCVUZGRVIgJiYgZW5kICE9PSBkYXRhTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbmV3UmFuZ2Uuc3RhcnQgPSBNYXRoLm1heCgwLCB0aGlzLmdldEluZGV4Rm9yT2Zmc2V0KG9mZnNldCAtIEJVRkZFUikpO1xuICAgICAgICAgICAgICAgIG5ld1JhbmdlLmVuZCA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgICBkYXRhTGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEluZGV4Rm9yT2Zmc2V0KG9mZnNldCArIHZpZXdwb3J0U2l6ZSArIEJVRkZFUiAqIDIpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2aWV3cG9ydC5zZXRSZW5kZXJlZFJhbmdlKG5ld1JhbmdlKTtcbiAgICAgICAgdmlld3BvcnQuc2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KHRoaXMuZ2V0T2Zmc2V0Rm9ySW5kZXgobmV3UmFuZ2Uuc3RhcnQpKTtcbiAgICAgICAgdGhpcy5pbmRleCQubmV4dChmaXJzdFZpc2libGVJbmRleCk7XG4gICAgfVxufVxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWNhbGVuZGFyLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL21vYmlsZS1jYWxlbmRhci8iLCJzb3VyY2VzIjpbIm1vYmlsZS1jYWxlbmRhci5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUNILGFBQWEsRUFDYixNQUFNLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEdBQ2YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxJQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN4RCxJQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUVoRCxTQUFTLFdBQVcsQ0FDaEIsS0FBdUMsRUFDdkMsUUFBcUIsRUFDckIsU0FBc0I7SUFEdEIseUJBQUEsRUFBQSxhQUFxQjtJQUNyQiwwQkFBQSxFQUFBLGNBQXNCO0lBRXRCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FDZixVQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUztRQUNuQixPQUFBLFNBQVMsSUFBSSxRQUFRO1lBQ2pCLENBQUMsQ0FBQyxLQUFLO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQ1AsVUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVU7b0JBQ25CLE9BQUEsU0FBUyxHQUFHLFFBQVE7d0JBQ3BCLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDO3dCQUM5QyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUs7d0JBQ2IsQ0FBQyxDQUFDLEdBQUc7Z0JB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VSxFQUFFO2dCQUMxQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNuQixVQUFVLEVBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxZQUFZLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUM3RCxDQUFDO2FBQ0w7U0FDSjtRQUVELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQXBIRDtRQURDLE9BQU87d0VBR1A7SUFtSEwsZ0NBQUM7Q0FBQSxBQWhJRCxJQWdJQztTQWhJWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Nka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCwgVmlydHVhbFNjcm9sbFN0cmF0ZWd5fSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7TU9OVEhTX0lOX1lFQVIsIHR1aVB1cmUsIFR1aVNjcm9sbFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBBTkRST0lEX0NZQ0xFLFxuICAgIEJVRkZFUixcbiAgICBJT1NfQ1lDTEUsXG4gICAgUkFOR0UsXG4gICAgWUVBUkxZX0NZQ0xFLFxufSBmcm9tICcuL21vYmlsZS1jYWxlbmRhci5jb25zdCc7XG5cbmNvbnN0IEFORFJPSURfQ1lDTEVfSEVJR0hUID0gcmVkdWNlQ3ljbGUoQU5EUk9JRF9DWUNMRSk7XG5jb25zdCBJT1NfQ1lDTEVfSEVJR0hUID0gcmVkdWNlQ3ljbGUoSU9TX0NZQ0xFKTtcblxuZnVuY3Rpb24gcmVkdWNlQ3ljbGUoXG4gICAgY3ljbGU6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgbnVtYmVyW10+LFxuICAgIGxhc3RZZWFyOiBudW1iZXIgPSAyOCxcbiAgICBsYXN0TW9udGg6IG51bWJlciA9IDEyLFxuKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY3ljbGUucmVkdWNlKFxuICAgICAgICAodG90YWwsIHllYXIsIHllYXJJbmRleCkgPT5cbiAgICAgICAgICAgIHllYXJJbmRleCA8PSBsYXN0WWVhclxuICAgICAgICAgICAgICAgID8gdG90YWwgK1xuICAgICAgICAgICAgICAgICAgeWVhci5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgICAgKHN1bSwgbW9udGgsIG1vbnRoSW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHllYXJJbmRleCA8IGxhc3RZZWFyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh5ZWFySW5kZXggPT09IGxhc3RZZWFyICYmIG1vbnRoSW5kZXggPCBsYXN0TW9udGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHN1bSArIG1vbnRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHN1bSxcbiAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdG90YWwsXG4gICAgICAgIDAsXG4gICAgKTtcbn1cblxuLyoqXG4gKiBUaGlzIHNjcm9sbCBzdHJhdGVneSBpcyBoYXJkIHdpcmVkIHdpdGggc3R5bGVzIGZvciBpT1MgYW5kIEFuZHJvaWQuXG4gKiBJdCBpcyBkZXBlbmRlbnQgb24gbW9udGggaGVpZ2h0IG9uIHRob3NlIHBsYXRmb3JtcyBhbmQgaXMgZGVzaWduZWQgdG9cbiAqIHdvcmsgZm9yIHtAbGluayBUdWlNb2JpbGVDYWxlbmRhckNvbXBvbmVudH0gd2l0aCB5ZWFycyAxOTA2IHRvIDIxMDJcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aU1vYmlsZUNhbGVuZGFyU3RyYXRlZ3kgaW1wbGVtZW50cyBWaXJ0dWFsU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5kZXgkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgcHJpdmF0ZSB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpc0lvczogYm9vbGVhbixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxTZXJ2aWNlOiBUdWlTY3JvbGxTZXJ2aWNlLFxuICAgICkge31cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IHNjcm9sbGVkSW5kZXhDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXgkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgYXR0YWNoKHZpZXdwb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpIHtcbiAgICAgICAgY29uc3QgY3ljbGUgPSB0aGlzLmlzSW9zID8gSU9TX0NZQ0xFX0hFSUdIVCA6IEFORFJPSURfQ1lDTEVfSEVJR0hUO1xuXG4gICAgICAgIHRoaXMudmlld3BvcnQgPSB2aWV3cG9ydDtcbiAgICAgICAgdGhpcy52aWV3cG9ydC5zZXRUb3RhbENvbnRlbnRTaXplKGN5Y2xlICogNyk7XG4gICAgICAgIHRoaXMudXBkYXRlUmVuZGVyZWRSYW5nZSh0aGlzLnZpZXdwb3J0KTtcbiAgICB9XG5cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIHRoaXMuaW5kZXgkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMudmlld3BvcnQgPSBudWxsO1xuICAgIH1cblxuICAgIG9uQ29udGVudFNjcm9sbGVkKCkge1xuICAgICAgICBpZiAodGhpcy52aWV3cG9ydCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJlZFJhbmdlKHRoaXMudmlld3BvcnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFRoZXNlIGRvIG5vdCBtYXR0ZXIgZm9yIHRoaXMgY2FzZSAqL1xuICAgIG9uRGF0YUxlbmd0aENoYW5nZWQoKSB7fVxuICAgIG9uQ29udGVudFJlbmRlcmVkKCkge31cbiAgICBvblJlbmRlcmVkT2Zmc2V0Q2hhbmdlZCgpIHt9XG5cbiAgICBzY3JvbGxUb0luZGV4KGluZGV4OiBudW1iZXIsIGJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvcikge1xuICAgICAgICBpZiAoIXRoaXMudmlld3BvcnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuZ2V0T2Zmc2V0Rm9ySW5kZXgoaW5kZXgpO1xuXG4gICAgICAgIGlmIChiZWhhdmlvciAhPT0gJ3Ntb290aCcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsVG9wLCBiZWhhdmlvcik7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2Nyb2xsU2VydmljZVxuICAgICAgICAgICAgLnNjcm9sbCQodGhpcy52aWV3cG9ydC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNjcm9sbFRvcClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9mZnNldEZvckluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBtb250aCA9IGluZGV4ICUgTU9OVEhTX0lOX1lFQVI7XG4gICAgICAgIGNvbnN0IHllYXIgPSAoaW5kZXggLSBtb250aCkgLyBNT05USFNfSU5fWUVBUjtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlSGVpZ2h0KHllYXIsIG1vbnRoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEluZGV4Rm9yT2Zmc2V0KG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY3ljbGUgPSB0aGlzLmlzSW9zID8gSU9TX0NZQ0xFIDogQU5EUk9JRF9DWUNMRTtcbiAgICAgICAgY29uc3QgY3ljbGVIZWlnaHQgPSB0aGlzLmlzSW9zID8gSU9TX0NZQ0xFX0hFSUdIVCA6IEFORFJPSURfQ1lDTEVfSEVJR0hUO1xuICAgICAgICBjb25zdCByZW1haW5kZXIgPSBvZmZzZXQgJSBjeWNsZUhlaWdodDtcbiAgICAgICAgY29uc3QgeWVhcnMgPSAoKG9mZnNldCAtIHJlbWFpbmRlcikgLyBjeWNsZUhlaWdodCkgKiBZRUFSTFlfQ1lDTEU7XG5cbiAgICAgICAgbGV0IGFjY3VtdWxhdG9yID0gMDtcblxuICAgICAgICBmb3IgKGxldCB5ZWFyID0gMDsgeWVhciA8IGN5Y2xlLmxlbmd0aDsgeWVhcisrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBtb250aCA9IDA7IG1vbnRoIDwgY3ljbGVbeWVhcl0ubGVuZ3RoOyBtb250aCsrKSB7XG4gICAgICAgICAgICAgICAgYWNjdW11bGF0b3IgKz0gY3ljbGVbeWVhcl1bbW9udGhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjY3VtdWxhdG9yIC0gY3ljbGVbeWVhcl1bbW9udGhdIC8gMiA+IHJlbWFpbmRlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoKHllYXJzICsgeWVhcikgKiBNT05USFNfSU5fWUVBUiArIG1vbnRoLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUkFOR0U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlSGVpZ2h0KHllYXI6IG51bWJlciwgbW9udGg/OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjeWNsZSA9IHRoaXMuaXNJb3MgPyBJT1NfQ1lDTEUgOiBBTkRST0lEX0NZQ0xFO1xuICAgICAgICBjb25zdCByZW1haW5kZXIgPSB5ZWFyICUgWUVBUkxZX0NZQ0xFO1xuICAgICAgICBjb25zdCByZW1haW5kZXJIZWlnaHQgPSByZWR1Y2VDeWNsZShjeWNsZSwgcmVtYWluZGVyLCBtb250aCk7XG4gICAgICAgIGNvbnN0IGZ1bGxDeWNsZXMgPSAoeWVhciAtIHJlbWFpbmRlcikgLyBZRUFSTFlfQ1lDTEU7XG4gICAgICAgIGNvbnN0IGZ1bGxDeWNsZXNIZWlnaHQgPSB0aGlzLmlzSW9zXG4gICAgICAgICAgICA/IGZ1bGxDeWNsZXMgKiBJT1NfQ1lDTEVfSEVJR0hUXG4gICAgICAgICAgICA6IGZ1bGxDeWNsZXMgKiBBTkRST0lEX0NZQ0xFX0hFSUdIVDtcblxuICAgICAgICByZXR1cm4gZnVsbEN5Y2xlc0hlaWdodCArIHJlbWFpbmRlckhlaWdodDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJlbmRlcmVkUmFuZ2Uodmlld3BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCkge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB2aWV3cG9ydC5tZWFzdXJlU2Nyb2xsT2Zmc2V0KCk7XG4gICAgICAgIGNvbnN0IHtzdGFydCwgZW5kfSA9IHZpZXdwb3J0LmdldFJlbmRlcmVkUmFuZ2UoKTtcbiAgICAgICAgY29uc3Qgdmlld3BvcnRTaXplID0gdmlld3BvcnQuZ2V0Vmlld3BvcnRTaXplKCk7XG4gICAgICAgIGNvbnN0IGRhdGFMZW5ndGggPSB2aWV3cG9ydC5nZXREYXRhTGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IG5ld1JhbmdlID0ge3N0YXJ0LCBlbmR9O1xuICAgICAgICBjb25zdCBmaXJzdFZpc2libGVJbmRleCA9IHRoaXMuZ2V0SW5kZXhGb3JPZmZzZXQob2Zmc2V0KTtcbiAgICAgICAgY29uc3Qgc3RhcnRCdWZmZXIgPSBvZmZzZXQgLSB0aGlzLmdldE9mZnNldEZvckluZGV4KHN0YXJ0KTtcblxuICAgICAgICBpZiAoc3RhcnRCdWZmZXIgPCBCVUZGRVIgJiYgc3RhcnQgIT09IDApIHtcbiAgICAgICAgICAgIG5ld1JhbmdlLnN0YXJ0ID0gTWF0aC5tYXgoMCwgdGhpcy5nZXRJbmRleEZvck9mZnNldChvZmZzZXQgLSBCVUZGRVIgKiAyKSk7XG4gICAgICAgICAgICBuZXdSYW5nZS5lbmQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICBkYXRhTGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0SW5kZXhGb3JPZmZzZXQob2Zmc2V0ICsgdmlld3BvcnRTaXplICsgQlVGRkVSKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBlbmRCdWZmZXIgPSB0aGlzLmdldE9mZnNldEZvckluZGV4KGVuZCkgLSBvZmZzZXQgLSB2aWV3cG9ydFNpemU7XG5cbiAgICAgICAgICAgIGlmIChlbmRCdWZmZXIgPCBCVUZGRVIgJiYgZW5kICE9PSBkYXRhTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbmV3UmFuZ2Uuc3RhcnQgPSBNYXRoLm1heCgwLCB0aGlzLmdldEluZGV4Rm9yT2Zmc2V0KG9mZnNldCAtIEJVRkZFUikpO1xuICAgICAgICAgICAgICAgIG5ld1JhbmdlLmVuZCA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgICBkYXRhTGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEluZGV4Rm9yT2Zmc2V0KG9mZnNldCArIHZpZXdwb3J0U2l6ZSArIEJVRkZFUiAqIDIpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2aWV3cG9ydC5zZXRSZW5kZXJlZFJhbmdlKG5ld1JhbmdlKTtcbiAgICAgICAgdmlld3BvcnQuc2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KHRoaXMuZ2V0T2Zmc2V0Rm9ySW5kZXgobmV3UmFuZ2Uuc3RhcnQpKTtcbiAgICAgICAgdGhpcy5pbmRleCQubmV4dChmaXJzdFZpc2libGVJbmRleCk7XG4gICAgfVxufVxuIl19
|
|
@@ -131,7 +131,7 @@ var TuiSheetComponent = /** @class */ (function () {
|
|
|
131
131
|
'[$.class._stuck]': 'stuck$',
|
|
132
132
|
'($.class._stuck)': 'stuck$',
|
|
133
133
|
},
|
|
134
|
-
styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:0;bottom:0;right:0;transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;top:auto;border-radius:.75rem .75rem 0 0;overflow-y:auto;overflow-x:hidden;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;box-shadow:0 4rem var(--tui-base-01);padding-right:1rem;margin-left:-1rem;transform:scaleX(-1);-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._stuck{-ms-scroll-snap-type:none;scroll-snap-type:none}.t-bumpers{display:flex;height:100%}:host-context(.t-wrapper_closeable) .t-bumpers{scroll-snap-stop:always;scroll-snap-align:start;scroll-margin:-1px}.t-bumper{scroll-snap-stop:always;scroll-snap-align:start;height:1rem}.t-wrapper{border-radius:inherit;pointer-events:auto;scroll-snap-stop:always;scroll-snap-align:start}.t-wrapper_shadow{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12)}.t-top{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:sticky;top:0;pointer-events:auto;border-radius:.8rem .8rem 0 0;transform:scaleX(-1);overflow:hidden}.t-top._clickthrough{pointer-events:none}:host-context(._overlay:not(._visible)) .t-top{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;transform:scaleX(-1)!important}.t-image{display:block;width:100%}.t-sheet{position:relative;border-radius:inherit;scroll-snap-stop:always;scroll-snap-align:start;transform:scaleX(-1);box-shadow:0 4rem var(--tui-base-01)}.t-top:not(._rounded)~.t-sheet .t-bar{border-radius:0}.t-bar{transition-property:border-radius;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:sticky;top:0;z-index:1;height:1.5rem;margin-bottom:-1.5rem;border-radius:inherit;background:var(--tui-base-01);box-shadow:inset 0 1px rgba(255,255,255,.25)}.t-button{position:absolute;top:0;height:1.5rem;width:3rem;padding:0;border:0;opacity:0}.t-content{padding:0 1rem 1rem;border-radius:inherit;background:var(--tui-base-01)}.t-heading{padding-bottom:.5rem}"]
|
|
134
|
+
styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:0;bottom:0;right:0;transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;top:auto;border-radius:.75rem .75rem 0 0;overflow-y:auto;overflow-x:hidden;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;box-shadow:0 4rem var(--tui-base-01);padding-right:1rem;margin-left:-1rem;transform:scaleX(-1);-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._stuck{-ms-scroll-snap-type:none;scroll-snap-type:none}.t-bumpers{display:flex;height:100%}:host-context(.t-wrapper_closeable) .t-bumpers{scroll-snap-stop:always;scroll-snap-align:start;scroll-margin:-1px}.t-bumper{scroll-snap-stop:always;scroll-snap-align:start;height:1rem;width:1rem}.t-wrapper{border-radius:inherit;pointer-events:auto;scroll-snap-stop:always;scroll-snap-align:start}.t-wrapper_shadow{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12)}.t-top{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:sticky;top:0;pointer-events:auto;border-radius:.8rem .8rem 0 0;transform:scaleX(-1);overflow:hidden}.t-top._clickthrough{pointer-events:none}:host-context(._overlay:not(._visible)) .t-top{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;transform:scaleX(-1)!important}.t-image{display:block;width:100%}.t-sheet{position:relative;border-radius:inherit;scroll-snap-stop:always;scroll-snap-align:start;transform:scaleX(-1);box-shadow:0 4rem var(--tui-base-01)}.t-top:not(._rounded)~.t-sheet .t-bar{border-radius:0}.t-bar{transition-property:border-radius;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:sticky;top:0;z-index:1;height:1.5rem;margin-bottom:-1.5rem;border-radius:inherit;background:var(--tui-base-01);box-shadow:inset 0 1px rgba(255,255,255,.25)}.t-button{position:absolute;top:0;height:1.5rem;width:3rem;padding:0;border:0;opacity:0}.t-content{padding:0 1rem 1rem;border-radius:inherit;background:var(--tui-base-01)}.t-heading{padding-bottom:.5rem}"]
|
|
135
135
|
}),
|
|
136
136
|
__param(0, Inject(TUI_SHEET_SCROLL)),
|
|
137
137
|
__param(1, Inject(ElementRef)),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ElementRef, InjectionToken, Renderer2 } from '@angular/core';
|
|
2
|
-
import { isPresent,
|
|
2
|
+
import { isPresent, TUI_IS_IOS, TUI_TOUCH_SUPPORTED, TuiDestroyService, typedFromEvent, } from '@taiga-ui/cdk';
|
|
3
3
|
import { EMPTY } from 'rxjs';
|
|
4
4
|
import { filter, map, takeUntil } from 'rxjs/operators';
|
|
5
5
|
export var RIPPLE_ON = 'tuiRippleOn';
|
|
@@ -10,18 +10,18 @@ export var TUI_RIPPLE_PROVIDERS = [
|
|
|
10
10
|
TuiDestroyService,
|
|
11
11
|
{
|
|
12
12
|
provide: TUI_RIPPLE_START,
|
|
13
|
-
deps: [
|
|
13
|
+
deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, Renderer2],
|
|
14
14
|
useFactory: rippleStartFactory,
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
provide: TUI_RIPPLE_END,
|
|
18
|
-
deps: [
|
|
18
|
+
deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, TuiDestroyService],
|
|
19
19
|
useFactory: rippleEndFactory,
|
|
20
20
|
},
|
|
21
21
|
];
|
|
22
|
-
export function rippleStartFactory(
|
|
22
|
+
export function rippleStartFactory(touchSupported, isIOS, _a, renderer) {
|
|
23
23
|
var nativeElement = _a.nativeElement;
|
|
24
|
-
return !
|
|
24
|
+
return isIOS || !touchSupported
|
|
25
25
|
? EMPTY
|
|
26
26
|
: typedFromEvent(nativeElement, 'touchstart').pipe(map(function (_a) {
|
|
27
27
|
var touches = _a.touches;
|
|
@@ -37,9 +37,9 @@ export function rippleStartFactory(isAndroid, _a, renderer) {
|
|
|
37
37
|
return ripple;
|
|
38
38
|
}));
|
|
39
39
|
}
|
|
40
|
-
export function rippleEndFactory(
|
|
40
|
+
export function rippleEndFactory(touchSupported, isIOS, _a, destroy$) {
|
|
41
41
|
var nativeElement = _a.nativeElement;
|
|
42
|
-
return !
|
|
42
|
+
return isIOS || !touchSupported
|
|
43
43
|
? EMPTY
|
|
44
44
|
: typedFromEvent(nativeElement, 'animationend').pipe(filter(function (_a) {
|
|
45
45
|
var animationName = _a.animationName;
|
|
@@ -49,4 +49,4 @@ export function rippleEndFactory(isAndroid, _a, destroy$) {
|
|
|
49
49
|
return target;
|
|
50
50
|
}), filter(isPresent), takeUntil(destroy$));
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1tb2JpbGUvZGlyZWN0aXZlcy9yaXBwbGUvIiwic291cmNlcyI6WyJyaXBwbGUucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsY0FBYyxFQUFZLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBRyxjQUFjLENBQUM7QUFDekMsTUFBTSxDQUFDLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQzlDLGtDQUFrQyxDQUNyQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUM1QyxxQ0FBcUMsQ0FDeEMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFlO0lBQzVDLGlCQUFpQjtJQUNqQjtRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7UUFDOUQsVUFBVSxFQUFFLGtCQUFrQjtLQUNqQztJQUNEO1FBQ0ksT0FBTyxFQUFFLGNBQWM7UUFDdkIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztRQUN0RSxVQUFVLEVBQUUsZ0JBQWdCO0tBQy9CO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsY0FBdUIsRUFDdkIsS0FBYyxFQUNkLEVBQXdDLEVBQ3hDLFFBQW1CO1FBRGxCLGdDQUFhO0lBR2QsT0FBTyxLQUFLLElBQUksQ0FBQyxjQUFjO1FBQzNCLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsVUFBQyxFQUFTO2dCQUFSLG9CQUFPO1lBQ0gsSUFBQSxnQ0FBZ0QsRUFBL0Msb0JBQU8sRUFBRSxvQkFBc0MsQ0FBQztZQUNqRCxJQUFBLDBDQUNtQyxFQURsQyxnQkFBSyxFQUFFLGtCQUFNLEVBQUUsWUFBRyxFQUFFLGNBQ2MsQ0FBQztZQUMxQyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQzFELElBQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBTSxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUM7WUFDbEMsSUFBTSxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7WUFDakMsSUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN4QyxRQUFRLENBQUMsWUFBWSxDQUNqQixNQUFNLEVBQ04sT0FBTyxFQUNQLHNDQUNXLFNBQVMsNkNBQ1IsU0FBUywyQ0FDWCxDQUFDLDBDQUNGLENBQUMscURBQ1UsU0FBUyw0QkFDOUIsQ0FDRixDQUFDO1lBRUYsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLGNBQXVCLEVBQ3ZCLEtBQWMsRUFDZCxFQUF3QyxFQUN4QyxRQUEwQjtRQUR6QixnQ0FBYTtJQUdkLE9BQU8sS0FBSyxJQUFJLENBQUMsY0FBYztRQUMzQixDQUFDLENBQUMsS0FBSztRQUNQLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDOUMsTUFBTSxDQUFDLFVBQUMsRUFBZTtnQkFBZCxnQ0FBYTtZQUFNLE9BQUEsYUFBYSxLQUFLLFVBQVU7UUFBNUIsQ0FBNEIsQ0FBQyxFQUN6RCxHQUFHLENBQUMsVUFBQyxFQUFRO2dCQUFQLGtCQUFNO1lBQU0sT0FBQSxNQUFNO1FBQU4sQ0FBTSxDQUFDLEVBQ3pCLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFDakIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWxlbWVudFJlZiwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBpc1ByZXNlbnQsXG4gICAgVFVJX0lTX0lPUyxcbiAgICBUVUlfVE9VQ0hfU1VQUE9SVEVELFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7RU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBSSVBQTEVfT04gPSAndHVpUmlwcGxlT24nO1xuZXhwb3J0IGNvbnN0IFJJUFBMRV9PRkYgPSAndHVpUmlwcGxlT2ZmJztcbmV4cG9ydCBjb25zdCBUVUlfUklQUExFX1NUQVJUID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8SFRNTEVsZW1lbnQ+PihcbiAgICAnU3RyZWFtIG9mIHJpcHBsZSBlbGVtZW50cyB0byBhZGQnLFxuKTtcbmV4cG9ydCBjb25zdCBUVUlfUklQUExFX0VORCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPEhUTUxFbGVtZW50Pj4oXG4gICAgJ1N0cmVhbSBvZiByaXBwbGUgZWxlbWVudHMgdG8gcmVtb3ZlJyxcbik7XG5leHBvcnQgY29uc3QgVFVJX1JJUFBMRV9QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAge1xuICAgICAgICBwcm92aWRlOiBUVUlfUklQUExFX1NUQVJULFxuICAgICAgICBkZXBzOiBbVFVJX1RPVUNIX1NVUFBPUlRFRCwgVFVJX0lTX0lPUywgRWxlbWVudFJlZiwgUmVuZGVyZXIyXSxcbiAgICAgICAgdXNlRmFjdG9yeTogcmlwcGxlU3RhcnRGYWN0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgICBwcm92aWRlOiBUVUlfUklQUExFX0VORCxcbiAgICAgICAgZGVwczogW1RVSV9UT1VDSF9TVVBQT1JURUQsIFRVSV9JU19JT1MsIEVsZW1lbnRSZWYsIFR1aURlc3Ryb3lTZXJ2aWNlXSxcbiAgICAgICAgdXNlRmFjdG9yeTogcmlwcGxlRW5kRmFjdG9yeSxcbiAgICB9LFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJpcHBsZVN0YXJ0RmFjdG9yeShcbiAgICB0b3VjaFN1cHBvcnRlZDogYm9vbGVhbixcbiAgICBpc0lPUzogYm9vbGVhbixcbiAgICB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4pOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiB7XG4gICAgcmV0dXJuIGlzSU9TIHx8ICF0b3VjaFN1cHBvcnRlZFxuICAgICAgICA/IEVNUFRZXG4gICAgICAgIDogdHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgJ3RvdWNoc3RhcnQnKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKHt0b3VjaGVzfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qge2NsaWVudFgsIGNsaWVudFl9ID0gdG91Y2hlc1t0b3VjaGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHQsIHRvcCwgbGVmdH0gPVxuICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCByYWRpdXMgPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkaW1lbnNpb24gPSByYWRpdXMgKiAyO1xuICAgICAgICAgICAgICAgICAgY29uc3QgeCA9IGNsaWVudFggLSBsZWZ0IC0gcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IGNsaWVudFkgLSB0b3AgLSByYWRpdXM7XG4gICAgICAgICAgICAgICAgICBjb25zdCByaXBwbGUgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MocmlwcGxlLCAndHVpLXJpcHBsZScpO1xuICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgIHJpcHBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAke2RpbWVuc2lvbn1weDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHtkaW1lbnNpb259cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAke3h9cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6ICR7eX1weDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiAke1JJUFBMRV9PTn07XG4gICAgICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmlwcGxlO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmlwcGxlRW5kRmFjdG9yeShcbiAgICB0b3VjaFN1cHBvcnRlZDogYm9vbGVhbixcbiAgICBpc0lPUzogYm9vbGVhbixcbiAgICB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuKTogT2JzZXJ2YWJsZTxFdmVudFRhcmdldD4ge1xuICAgIHJldHVybiBpc0lPUyB8fCAhdG91Y2hTdXBwb3J0ZWRcbiAgICAgICAgPyBFTVBUWVxuICAgICAgICA6IHR5cGVkRnJvbUV2ZW50KG5hdGl2ZUVsZW1lbnQsICdhbmltYXRpb25lbmQnKS5waXBlKFxuICAgICAgICAgICAgICBmaWx0ZXIoKHthbmltYXRpb25OYW1lfSkgPT4gYW5pbWF0aW9uTmFtZSA9PT0gUklQUExFX09GRiksXG4gICAgICAgICAgICAgIG1hcCgoe3RhcmdldH0pID0+IHRhcmdldCksXG4gICAgICAgICAgICAgIGZpbHRlcihpc1ByZXNlbnQpLFxuICAgICAgICAgICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgICAgICk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-components-mobile-calendar.js","sources":["ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.const.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.strategy.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.providers.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.component.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.module.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.ts"],"sourcesContent":["import {MONTHS_IN_YEAR} from '@taiga-ui/cdk';\n\nexport const SCROLL_DEBOUNCE_TIME = 80;\nexport const YEARS_IN_ROW = 5;\nexport const STARTING_YEAR = 1900;\nexport const RANGE = 196;\nexport const BUFFER = 500;\nexport const ANDROID_LABEL = 64;\nexport const ANDROID_WEEK = 48;\nexport const IOS_LABEL = 50;\nexport const IOS_WEEK = 50;\nexport const YEARLY_CYCLE = 28;\nexport const ANDROID_CYCLE = getCycle(ANDROID_LABEL, ANDROID_WEEK);\nexport const IOS_CYCLE = getCycle(IOS_LABEL, IOS_WEEK);\n\nfunction getCycle(label: number, week: number): ReadonlyArray<readonly number[]> {\n return Array.from({length: YEARLY_CYCLE}, (_, i) =>\n Array.from(\n {length: MONTHS_IN_YEAR},\n (_, month) => label + weekCount(i, month) * week,\n ),\n );\n}\n\nfunction weekCount(year: number, month: number): number {\n const firstOfMonth = new Date(year + STARTING_YEAR, month, 1);\n const lastOfMonth = new Date(year + STARTING_YEAR, month + 1, 0);\n const days = lastOfMonth.getDate() + (firstOfMonth.getDay() || 7) - 1;\n\n return Math.ceil(days / 7);\n}\n","import {CdkVirtualScrollViewport, VirtualScrollStrategy} from '@angular/cdk/scrolling';\nimport {MONTHS_IN_YEAR, tuiPure, TuiScrollService} from '@taiga-ui/cdk';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nimport {\n ANDROID_CYCLE,\n BUFFER,\n IOS_CYCLE,\n RANGE,\n YEARLY_CYCLE,\n} from './mobile-calendar.const';\n\nconst ANDROID_CYCLE_HEIGHT = reduceCycle(ANDROID_CYCLE);\nconst IOS_CYCLE_HEIGHT = reduceCycle(IOS_CYCLE);\n\nfunction reduceCycle(\n cycle: ReadonlyArray<readonly number[]>,\n lastYear: number = 28,\n lastMonth: number = 12,\n): number {\n return cycle.reduce(\n (total, year, yearIndex) =>\n yearIndex <= lastYear\n ? total +\n year.reduce(\n (sum, month, monthIndex) =>\n yearIndex < lastYear ||\n (yearIndex === lastYear && monthIndex < lastMonth)\n ? sum + month\n : sum,\n 0,\n )\n : total,\n 0,\n );\n}\n\n/**\n * This scroll strategy is hard wired with styles for iOS and Android.\n * It is dependent on month height on those platforms and is designed to\n * work for {@link TuiMobileCalendarComponent} with years 1906 to 2102\n */\nexport class TuiMobileCalendarStrategy implements VirtualScrollStrategy {\n private index$ = new Subject<number>();\n\n private viewport: CdkVirtualScrollViewport | null = null;\n\n constructor(\n private readonly isIos: boolean,\n private readonly scrollService: TuiScrollService,\n ) {}\n\n @tuiPure\n get scrolledIndexChange(): Observable<number> {\n return this.index$.pipe(distinctUntilChanged());\n }\n\n attach(viewport: CdkVirtualScrollViewport) {\n const cycle = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n\n this.viewport = viewport;\n this.viewport.setTotalContentSize(cycle * 7);\n this.updateRenderedRange(this.viewport);\n }\n\n detach() {\n this.index$.complete();\n this.viewport = null;\n }\n\n onContentScrolled() {\n if (this.viewport) {\n this.updateRenderedRange(this.viewport);\n }\n }\n\n /** These do not matter for this case */\n onDataLengthChanged() {}\n onContentRendered() {}\n onRenderedOffsetChanged() {}\n\n scrollToIndex(index: number, behavior: ScrollBehavior) {\n if (!this.viewport) {\n return;\n }\n\n const scrollTop = this.getOffsetForIndex(index);\n\n if (behavior !== 'smooth') {\n this.viewport.scrollToOffset(scrollTop, behavior);\n\n return;\n }\n\n this.scrollService\n .scroll$(this.viewport.elementRef.nativeElement, scrollTop)\n .subscribe();\n }\n\n private getOffsetForIndex(index: number): number {\n const month = index % MONTHS_IN_YEAR;\n const year = (index - month) / MONTHS_IN_YEAR;\n\n return this.computeHeight(year, month);\n }\n\n private getIndexForOffset(offset: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const cycleHeight = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n const remainder = offset % cycleHeight;\n const years = ((offset - remainder) / cycleHeight) * YEARLY_CYCLE;\n\n let accumulator = 0;\n\n for (let year = 0; year < cycle.length; year++) {\n for (let month = 0; month < cycle[year].length; month++) {\n accumulator += cycle[year][month];\n\n if (accumulator - cycle[year][month] / 2 > remainder) {\n return Math.max((years + year) * MONTHS_IN_YEAR + month, 0);\n }\n }\n }\n\n return RANGE;\n }\n\n private computeHeight(year: number, month?: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const remainder = year % YEARLY_CYCLE;\n const remainderHeight = reduceCycle(cycle, remainder, month);\n const fullCycles = (year - remainder) / YEARLY_CYCLE;\n const fullCyclesHeight = this.isIos\n ? fullCycles * IOS_CYCLE_HEIGHT\n : fullCycles * ANDROID_CYCLE_HEIGHT;\n\n return fullCyclesHeight + remainderHeight;\n }\n\n private updateRenderedRange(viewport: CdkVirtualScrollViewport) {\n const offset = viewport.measureScrollOffset();\n const {start, end} = viewport.getRenderedRange();\n const viewportSize = viewport.getViewportSize();\n const dataLength = viewport.getDataLength();\n const newRange = {start, end};\n const firstVisibleIndex = this.getIndexForOffset(offset);\n const startBuffer = offset - this.getOffsetForIndex(start);\n\n if (startBuffer < BUFFER && start !== 0) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER * 2));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER),\n );\n } else {\n const endBuffer = this.getOffsetForIndex(end) - offset - viewportSize;\n\n if (endBuffer < BUFFER && end !== dataLength) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER * 2),\n );\n }\n }\n\n viewport.setRenderedRange(newRange);\n viewport.setRenderedContentOffset(this.getOffsetForIndex(newRange.start));\n this.index$.next(firstVisibleIndex);\n }\n}\n","import {VIRTUAL_SCROLL_STRATEGY} from '@angular/cdk/scrolling';\nimport {ChangeDetectorRef, InjectionToken, Optional, Provider} from '@angular/core';\nimport {\n TUI_IS_IOS,\n TuiDayRange,\n TuiDestroyService,\n TuiScrollService,\n watch,\n} from '@taiga-ui/cdk';\nimport {TUI_CALENDAR_DATA_STREAM} from '@taiga-ui/kit';\nimport {EMPTY, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiMobileCalendarStrategy} from './mobile-calendar.strategy';\n\nexport const TUI_VALUE_STREAM = new InjectionToken<Observable<TuiDayRange | null>>(\n 'Stream for updating value',\n);\nexport const TUI_MOBILE_CALENDAR_PROVIDERS: Provider[] = [\n TuiDestroyService,\n TuiScrollService,\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n deps: [TUI_IS_IOS, TuiScrollService],\n useClass: TuiMobileCalendarStrategy,\n },\n {\n provide: TUI_VALUE_STREAM,\n deps: [\n [new Optional(), TUI_CALENDAR_DATA_STREAM],\n TuiDestroyService,\n ChangeDetectorRef,\n ],\n useFactory: valueStreamFactory,\n },\n];\n\nexport function valueStreamFactory(\n value$: Observable<TuiDayRange | null> | null,\n destroy$: Observable<void>,\n changeDetectorRef: ChangeDetectorRef,\n): Observable<TuiDayRange | null> {\n return (value$ || EMPTY).pipe(takeUntil(destroy$), watch(changeDetectorRef));\n}\n","import {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n MONTHS_IN_YEAR,\n TUI_FIRST_DAY,\n TUI_IS_IOS,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiDestroyService,\n TuiMapper,\n TuiMonth,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD, TUI_ORDERED_SHORT_WEEK_DAYS} from '@taiga-ui/core';\nimport {\n TUI_CANCEL_WORD,\n TUI_CHOOSE_DAY_OR_RANGE_TEXTS,\n TUI_DONE_WORD,\n} from '@taiga-ui/kit';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n flatMap,\n map,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n windowToggle,\n} from 'rxjs/operators';\n\nimport {\n RANGE,\n SCROLL_DEBOUNCE_TIME,\n STARTING_YEAR,\n YEARS_IN_ROW,\n} from './mobile-calendar.const';\nimport {\n TUI_MOBILE_CALENDAR_PROVIDERS,\n TUI_VALUE_STREAM,\n} from './mobile-calendar.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-mobile-calendar',\n templateUrl: './mobile-calendar.template.html',\n styleUrls: ['./mobile-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_MOBILE_CALENDAR_PROVIDERS,\n})\nexport class TuiMobileCalendarComponent {\n @ViewChild('yearsScrollRef')\n private readonly yearsScrollRef?: CdkVirtualScrollViewport;\n\n @ViewChild('monthsScrollRef')\n private readonly monthsScrollRef?: CdkVirtualScrollViewport;\n\n private readonly today = TuiDay.currentLocal();\n private activeYear = this.initialYear;\n private activeMonth = this.initialMonth;\n\n @Input()\n @tuiDefaultProp()\n single = true;\n\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Output()\n readonly confirm = new EventEmitter<TuiDayRange | TuiDay>();\n\n @HostBinding('class._ios')\n readonly isIOS: boolean;\n\n value: TuiDay | TuiDayRange | null = null;\n\n readonly years = Array.from({length: RANGE}, (_, i) => i + STARTING_YEAR);\n\n readonly months = Array.from(\n {length: RANGE * 12},\n (_, i) =>\n new TuiMonth(\n Math.floor(i / MONTHS_IN_YEAR) + STARTING_YEAR,\n i % MONTHS_IN_YEAR,\n ),\n );\n\n constructor(\n @Inject(TUI_IS_IOS) isIOS: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n @Inject(TUI_VALUE_STREAM)\n valueChanges: Observable<TuiDayRange | null>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n @Inject(TUI_CANCEL_WORD) readonly cancelWord$: Observable<string>,\n @Inject(TUI_DONE_WORD) readonly doneWord$: Observable<string>,\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<\n [string, string, string, string, string, string, string]\n >,\n @Inject(TUI_CHOOSE_DAY_OR_RANGE_TEXTS)\n readonly chooseDayOrRangeTexts$: Observable<[string, string]>,\n ) {\n this.isIOS = isIOS;\n\n valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.value = value;\n });\n }\n\n get yearWidth(): number {\n return this.documentRef.documentElement.clientWidth / YEARS_IN_ROW;\n }\n\n ngAfterViewInit() {\n if (!this.monthsScrollRef) {\n return;\n }\n\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.monthsScrollRef.scrolledIndexChange\n .pipe(take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n this.initYearScroll();\n this.initMonthScroll();\n });\n }\n\n onClose() {\n this.cancel.emit();\n }\n\n onConfirm() {\n if (this.value) {\n this.confirm.emit(this.value);\n } else {\n this.cancel.emit();\n }\n }\n\n onDayClick(day: TuiDay) {\n if (this.single) {\n this.value = day;\n\n return;\n }\n\n if (\n this.value === null ||\n this.value instanceof TuiDay ||\n !this.value.isSingleDay\n ) {\n this.value = new TuiDayRange(day, day);\n\n return;\n }\n\n this.value = TuiDayRange.sort(this.value.from, day);\n }\n\n getState(index: number): 'active' | 'adjacent' | null {\n if (this.isYearActive(index)) {\n return 'active';\n }\n\n if (this.isYearActive(index - 1) || this.isYearActive(index + 1)) {\n return 'adjacent';\n }\n\n return null;\n }\n\n onMonthChange(month: number) {\n // Skipping initial callback where index === 0\n if (!month || this.activeMonth === month) {\n return;\n }\n\n this.activeMonth = month;\n\n const activeYear = this.monthToYear(month);\n\n if (activeYear === this.activeYear) {\n return;\n }\n\n this.activeYear = activeYear;\n this.scrollToActiveYear();\n }\n\n setYear(year: number) {\n if (this.activeYear === year) {\n return;\n }\n\n this.activeMonth += this.getMonthOffset(year);\n this.activeYear = year;\n this.scrollToActiveYear('smooth');\n\n // Delay is required to run months scroll in the next frame to prevent flicker\n setTimeout(() => {\n this.scrollToActiveMonth();\n });\n }\n\n readonly disabledItemHandlerMapper: TuiMapper<\n TuiBooleanHandler<TuiDay>,\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min: TuiDay, max: TuiDay) => item =>\n item.dayBefore(min) ||\n (max !== null && item.dayAfter(max)) ||\n disabledItemHandler(item);\n\n private get initialYear(): number {\n if (!this.value) {\n return this.today.year;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.year;\n }\n\n return this.value.from.year;\n }\n\n private get initialMonth(): number {\n if (!this.value) {\n return this.today.month + (this.today.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.month + (this.value.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n return (\n this.value.from.month +\n (this.value.from.year - STARTING_YEAR) * MONTHS_IN_YEAR\n );\n }\n\n private initYearScroll() {\n const {yearsScrollRef} = this;\n\n if (!yearsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchstart',\n );\n const touchend$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n const click$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, 'click');\n\n // Refresh activeYear\n yearsScrollRef\n .elementScrolled()\n .pipe(\n // Ignore smooth scroll resulting from click on the exact year\n windowToggle(touchstart$, () => click$),\n flatMap(x => x),\n // Delay is required to run months scroll in the next frame to prevent flicker\n delay(0),\n map(\n () =>\n Math.round(\n yearsScrollRef.measureScrollOffset() / this.yearWidth,\n ) +\n Math.floor(YEARS_IN_ROW / 2) +\n STARTING_YEAR,\n ),\n filter(activeYear => activeYear !== this.activeYear),\n takeUntil(this.destroy$),\n )\n .subscribe(activeYear => {\n this.activeMonth += this.getMonthOffset(activeYear);\n this.activeYear = activeYear;\n this.scrollToActiveMonth();\n });\n\n // Smooth scroll to activeYear after scrolling is done\n touchstart$\n .pipe(\n switchMap(() => touchend$),\n switchMap(() =>\n race<unknown>(\n yearsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveYear('smooth');\n });\n }\n\n private initMonthScroll() {\n const {monthsScrollRef} = this;\n\n if (!monthsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchstart',\n {passive: true},\n );\n const touchend$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n\n // Smooth scroll to closest month after scrolling is done\n touchstart$\n .pipe(\n switchMapTo(touchend$),\n switchMapTo(\n race<unknown>(\n monthsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveMonth('smooth');\n });\n }\n\n private scrollToActiveYear(behavior?: ScrollBehavior) {\n if (this.yearsScrollRef) {\n this.yearsScrollRef.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n behavior,\n );\n }\n }\n\n private scrollToActiveMonth(behavior?: ScrollBehavior) {\n if (this.monthsScrollRef) {\n this.monthsScrollRef.scrollToIndex(this.activeMonth, behavior);\n }\n }\n\n private isYearActive(index: number): boolean {\n return index === this.activeYear;\n }\n\n private monthToYear(month: number): number {\n return Math.ceil((month + 1) / MONTHS_IN_YEAR) + STARTING_YEAR - 1;\n }\n\n private getMonthOffset(year: number): number {\n return (year - this.activeYear) * MONTHS_IN_YEAR;\n }\n}\n","import {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRippleModule} from '@taiga-ui/addon-mobile/directives/ripple';\nimport {TuiTouchableModule} from '@taiga-ui/addon-mobile/directives/touchable';\nimport {TuiPrimitiveCalendarMobileModule} from '@taiga-ui/addon-mobile/internal/primitive-calendar-mobile';\nimport {TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiLinkModule, TuiMonthPipeModule} from '@taiga-ui/core';\n\nimport {TuiMobileCalendarComponent} from './mobile-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n TuiTouchableModule,\n TuiRippleModule,\n TuiMapperPipeModule,\n TuiLinkModule,\n TuiPrimitiveCalendarMobileModule,\n TuiButtonModule,\n TuiMonthPipeModule,\n ],\n declarations: [TuiMobileCalendarComponent],\n exports: [TuiMobileCalendarComponent],\n})\nexport class TuiMobileCalendarModule {}\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-components-mobile-calendar.js","sources":["ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.const.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.strategy.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.providers.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.component.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.module.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.ts"],"sourcesContent":["import {MONTHS_IN_YEAR} from '@taiga-ui/cdk';\n\nexport const SCROLL_DEBOUNCE_TIME = 80;\nexport const YEARS_IN_ROW = 5;\nexport const STARTING_YEAR = 1900;\nexport const RANGE = 196;\nexport const BUFFER = 500;\nexport const ANDROID_LABEL = 64;\nexport const ANDROID_WEEK = 48;\nexport const IOS_LABEL = 50;\nexport const IOS_WEEK = 50;\nexport const YEARLY_CYCLE = 28;\nexport const ANDROID_CYCLE = getCycle(ANDROID_LABEL, ANDROID_WEEK);\nexport const IOS_CYCLE = getCycle(IOS_LABEL, IOS_WEEK);\n\nfunction getCycle(label: number, week: number): ReadonlyArray<readonly number[]> {\n return Array.from({length: YEARLY_CYCLE}, (_, i) =>\n Array.from(\n {length: MONTHS_IN_YEAR},\n (_, month) => label + weekCount(i, month) * week,\n ),\n );\n}\n\nfunction weekCount(year: number, month: number): number {\n const firstOfMonth = new Date(year + STARTING_YEAR, month, 1);\n const lastOfMonth = new Date(year + STARTING_YEAR, month + 1, 0);\n const days = lastOfMonth.getDate() + (firstOfMonth.getDay() || 7) - 1;\n\n return Math.ceil(days / 7);\n}\n","import {CdkVirtualScrollViewport, VirtualScrollStrategy} from '@angular/cdk/scrolling';\nimport {MONTHS_IN_YEAR, tuiPure, TuiScrollService} from '@taiga-ui/cdk';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nimport {\n ANDROID_CYCLE,\n BUFFER,\n IOS_CYCLE,\n RANGE,\n YEARLY_CYCLE,\n} from './mobile-calendar.const';\n\nconst ANDROID_CYCLE_HEIGHT = reduceCycle(ANDROID_CYCLE);\nconst IOS_CYCLE_HEIGHT = reduceCycle(IOS_CYCLE);\n\nfunction reduceCycle(\n cycle: ReadonlyArray<readonly number[]>,\n lastYear: number = 28,\n lastMonth: number = 12,\n): number {\n return cycle.reduce(\n (total, year, yearIndex) =>\n yearIndex <= lastYear\n ? total +\n year.reduce(\n (sum, month, monthIndex) =>\n yearIndex < lastYear ||\n (yearIndex === lastYear && monthIndex < lastMonth)\n ? sum + month\n : sum,\n 0,\n )\n : total,\n 0,\n );\n}\n\n/**\n * This scroll strategy is hard wired with styles for iOS and Android.\n * It is dependent on month height on those platforms and is designed to\n * work for {@link TuiMobileCalendarComponent} with years 1906 to 2102\n */\nexport class TuiMobileCalendarStrategy implements VirtualScrollStrategy {\n private readonly index$ = new Subject<number>();\n\n private viewport: CdkVirtualScrollViewport | null = null;\n\n constructor(\n private readonly isIos: boolean,\n private readonly scrollService: TuiScrollService,\n ) {}\n\n @tuiPure\n get scrolledIndexChange(): Observable<number> {\n return this.index$.pipe(distinctUntilChanged());\n }\n\n attach(viewport: CdkVirtualScrollViewport) {\n const cycle = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n\n this.viewport = viewport;\n this.viewport.setTotalContentSize(cycle * 7);\n this.updateRenderedRange(this.viewport);\n }\n\n detach() {\n this.index$.complete();\n this.viewport = null;\n }\n\n onContentScrolled() {\n if (this.viewport) {\n this.updateRenderedRange(this.viewport);\n }\n }\n\n /** These do not matter for this case */\n onDataLengthChanged() {}\n onContentRendered() {}\n onRenderedOffsetChanged() {}\n\n scrollToIndex(index: number, behavior: ScrollBehavior) {\n if (!this.viewport) {\n return;\n }\n\n const scrollTop = this.getOffsetForIndex(index);\n\n if (behavior !== 'smooth') {\n this.viewport.scrollToOffset(scrollTop, behavior);\n\n return;\n }\n\n this.scrollService\n .scroll$(this.viewport.elementRef.nativeElement, scrollTop)\n .subscribe();\n }\n\n private getOffsetForIndex(index: number): number {\n const month = index % MONTHS_IN_YEAR;\n const year = (index - month) / MONTHS_IN_YEAR;\n\n return this.computeHeight(year, month);\n }\n\n private getIndexForOffset(offset: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const cycleHeight = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n const remainder = offset % cycleHeight;\n const years = ((offset - remainder) / cycleHeight) * YEARLY_CYCLE;\n\n let accumulator = 0;\n\n for (let year = 0; year < cycle.length; year++) {\n for (let month = 0; month < cycle[year].length; month++) {\n accumulator += cycle[year][month];\n\n if (accumulator - cycle[year][month] / 2 > remainder) {\n return Math.max((years + year) * MONTHS_IN_YEAR + month, 0);\n }\n }\n }\n\n return RANGE;\n }\n\n private computeHeight(year: number, month?: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const remainder = year % YEARLY_CYCLE;\n const remainderHeight = reduceCycle(cycle, remainder, month);\n const fullCycles = (year - remainder) / YEARLY_CYCLE;\n const fullCyclesHeight = this.isIos\n ? fullCycles * IOS_CYCLE_HEIGHT\n : fullCycles * ANDROID_CYCLE_HEIGHT;\n\n return fullCyclesHeight + remainderHeight;\n }\n\n private updateRenderedRange(viewport: CdkVirtualScrollViewport) {\n const offset = viewport.measureScrollOffset();\n const {start, end} = viewport.getRenderedRange();\n const viewportSize = viewport.getViewportSize();\n const dataLength = viewport.getDataLength();\n const newRange = {start, end};\n const firstVisibleIndex = this.getIndexForOffset(offset);\n const startBuffer = offset - this.getOffsetForIndex(start);\n\n if (startBuffer < BUFFER && start !== 0) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER * 2));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER),\n );\n } else {\n const endBuffer = this.getOffsetForIndex(end) - offset - viewportSize;\n\n if (endBuffer < BUFFER && end !== dataLength) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER * 2),\n );\n }\n }\n\n viewport.setRenderedRange(newRange);\n viewport.setRenderedContentOffset(this.getOffsetForIndex(newRange.start));\n this.index$.next(firstVisibleIndex);\n }\n}\n","import {VIRTUAL_SCROLL_STRATEGY} from '@angular/cdk/scrolling';\nimport {ChangeDetectorRef, InjectionToken, Optional, Provider} from '@angular/core';\nimport {\n TUI_IS_IOS,\n TuiDayRange,\n TuiDestroyService,\n TuiScrollService,\n watch,\n} from '@taiga-ui/cdk';\nimport {TUI_CALENDAR_DATA_STREAM} from '@taiga-ui/kit';\nimport {EMPTY, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiMobileCalendarStrategy} from './mobile-calendar.strategy';\n\nexport const TUI_VALUE_STREAM = new InjectionToken<Observable<TuiDayRange | null>>(\n 'Stream for updating value',\n);\nexport const TUI_MOBILE_CALENDAR_PROVIDERS: Provider[] = [\n TuiDestroyService,\n TuiScrollService,\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n deps: [TUI_IS_IOS, TuiScrollService],\n useClass: TuiMobileCalendarStrategy,\n },\n {\n provide: TUI_VALUE_STREAM,\n deps: [\n [new Optional(), TUI_CALENDAR_DATA_STREAM],\n TuiDestroyService,\n ChangeDetectorRef,\n ],\n useFactory: valueStreamFactory,\n },\n];\n\nexport function valueStreamFactory(\n value$: Observable<TuiDayRange | null> | null,\n destroy$: Observable<void>,\n changeDetectorRef: ChangeDetectorRef,\n): Observable<TuiDayRange | null> {\n return (value$ || EMPTY).pipe(takeUntil(destroy$), watch(changeDetectorRef));\n}\n","import {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n MONTHS_IN_YEAR,\n TUI_FIRST_DAY,\n TUI_IS_IOS,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiDestroyService,\n TuiMapper,\n TuiMonth,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD, TUI_ORDERED_SHORT_WEEK_DAYS} from '@taiga-ui/core';\nimport {\n TUI_CANCEL_WORD,\n TUI_CHOOSE_DAY_OR_RANGE_TEXTS,\n TUI_DONE_WORD,\n} from '@taiga-ui/kit';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n flatMap,\n map,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n windowToggle,\n} from 'rxjs/operators';\n\nimport {\n RANGE,\n SCROLL_DEBOUNCE_TIME,\n STARTING_YEAR,\n YEARS_IN_ROW,\n} from './mobile-calendar.const';\nimport {\n TUI_MOBILE_CALENDAR_PROVIDERS,\n TUI_VALUE_STREAM,\n} from './mobile-calendar.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-mobile-calendar',\n templateUrl: './mobile-calendar.template.html',\n styleUrls: ['./mobile-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_MOBILE_CALENDAR_PROVIDERS,\n})\nexport class TuiMobileCalendarComponent {\n @ViewChild('yearsScrollRef')\n private readonly yearsScrollRef?: CdkVirtualScrollViewport;\n\n @ViewChild('monthsScrollRef')\n private readonly monthsScrollRef?: CdkVirtualScrollViewport;\n\n private readonly today = TuiDay.currentLocal();\n private activeYear = this.initialYear;\n private activeMonth = this.initialMonth;\n\n @Input()\n @tuiDefaultProp()\n single = true;\n\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Output()\n readonly confirm = new EventEmitter<TuiDayRange | TuiDay>();\n\n @HostBinding('class._ios')\n readonly isIOS: boolean;\n\n value: TuiDay | TuiDayRange | null = null;\n\n readonly years = Array.from({length: RANGE}, (_, i) => i + STARTING_YEAR);\n\n readonly months = Array.from(\n {length: RANGE * 12},\n (_, i) =>\n new TuiMonth(\n Math.floor(i / MONTHS_IN_YEAR) + STARTING_YEAR,\n i % MONTHS_IN_YEAR,\n ),\n );\n\n constructor(\n @Inject(TUI_IS_IOS) isIOS: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n @Inject(TUI_VALUE_STREAM)\n valueChanges: Observable<TuiDayRange | null>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n @Inject(TUI_CANCEL_WORD) readonly cancelWord$: Observable<string>,\n @Inject(TUI_DONE_WORD) readonly doneWord$: Observable<string>,\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<\n [string, string, string, string, string, string, string]\n >,\n @Inject(TUI_CHOOSE_DAY_OR_RANGE_TEXTS)\n readonly chooseDayOrRangeTexts$: Observable<[string, string]>,\n ) {\n this.isIOS = isIOS;\n\n valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.value = value;\n });\n }\n\n get yearWidth(): number {\n return this.documentRef.documentElement.clientWidth / YEARS_IN_ROW;\n }\n\n ngAfterViewInit() {\n if (!this.monthsScrollRef) {\n return;\n }\n\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.monthsScrollRef.scrolledIndexChange\n .pipe(take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n this.initYearScroll();\n this.initMonthScroll();\n });\n }\n\n onClose() {\n this.cancel.emit();\n }\n\n onConfirm() {\n if (this.value) {\n this.confirm.emit(this.value);\n } else {\n this.cancel.emit();\n }\n }\n\n onDayClick(day: TuiDay) {\n if (this.single) {\n this.value = day;\n\n return;\n }\n\n if (\n this.value === null ||\n this.value instanceof TuiDay ||\n !this.value.isSingleDay\n ) {\n this.value = new TuiDayRange(day, day);\n\n return;\n }\n\n this.value = TuiDayRange.sort(this.value.from, day);\n }\n\n getState(index: number): 'active' | 'adjacent' | null {\n if (this.isYearActive(index)) {\n return 'active';\n }\n\n if (this.isYearActive(index - 1) || this.isYearActive(index + 1)) {\n return 'adjacent';\n }\n\n return null;\n }\n\n onMonthChange(month: number) {\n // Skipping initial callback where index === 0\n if (!month || this.activeMonth === month) {\n return;\n }\n\n this.activeMonth = month;\n\n const activeYear = this.monthToYear(month);\n\n if (activeYear === this.activeYear) {\n return;\n }\n\n this.activeYear = activeYear;\n this.scrollToActiveYear();\n }\n\n setYear(year: number) {\n if (this.activeYear === year) {\n return;\n }\n\n this.activeMonth += this.getMonthOffset(year);\n this.activeYear = year;\n this.scrollToActiveYear('smooth');\n\n // Delay is required to run months scroll in the next frame to prevent flicker\n setTimeout(() => {\n this.scrollToActiveMonth();\n });\n }\n\n readonly disabledItemHandlerMapper: TuiMapper<\n TuiBooleanHandler<TuiDay>,\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min: TuiDay, max: TuiDay) => item =>\n item.dayBefore(min) ||\n (max !== null && item.dayAfter(max)) ||\n disabledItemHandler(item);\n\n private get initialYear(): number {\n if (!this.value) {\n return this.today.year;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.year;\n }\n\n return this.value.from.year;\n }\n\n private get initialMonth(): number {\n if (!this.value) {\n return this.today.month + (this.today.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.month + (this.value.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n return (\n this.value.from.month +\n (this.value.from.year - STARTING_YEAR) * MONTHS_IN_YEAR\n );\n }\n\n private initYearScroll() {\n const {yearsScrollRef} = this;\n\n if (!yearsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchstart',\n );\n const touchend$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n const click$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, 'click');\n\n // Refresh activeYear\n yearsScrollRef\n .elementScrolled()\n .pipe(\n // Ignore smooth scroll resulting from click on the exact year\n windowToggle(touchstart$, () => click$),\n flatMap(x => x),\n // Delay is required to run months scroll in the next frame to prevent flicker\n delay(0),\n map(\n () =>\n Math.round(\n yearsScrollRef.measureScrollOffset() / this.yearWidth,\n ) +\n Math.floor(YEARS_IN_ROW / 2) +\n STARTING_YEAR,\n ),\n filter(activeYear => activeYear !== this.activeYear),\n takeUntil(this.destroy$),\n )\n .subscribe(activeYear => {\n this.activeMonth += this.getMonthOffset(activeYear);\n this.activeYear = activeYear;\n this.scrollToActiveMonth();\n });\n\n // Smooth scroll to activeYear after scrolling is done\n touchstart$\n .pipe(\n switchMap(() => touchend$),\n switchMap(() =>\n race<unknown>(\n yearsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveYear('smooth');\n });\n }\n\n private initMonthScroll() {\n const {monthsScrollRef} = this;\n\n if (!monthsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchstart',\n {passive: true},\n );\n const touchend$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n\n // Smooth scroll to closest month after scrolling is done\n touchstart$\n .pipe(\n switchMapTo(touchend$),\n switchMapTo(\n race<unknown>(\n monthsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveMonth('smooth');\n });\n }\n\n private scrollToActiveYear(behavior?: ScrollBehavior) {\n if (this.yearsScrollRef) {\n this.yearsScrollRef.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n behavior,\n );\n }\n }\n\n private scrollToActiveMonth(behavior?: ScrollBehavior) {\n if (this.monthsScrollRef) {\n this.monthsScrollRef.scrollToIndex(this.activeMonth, behavior);\n }\n }\n\n private isYearActive(index: number): boolean {\n return index === this.activeYear;\n }\n\n private monthToYear(month: number): number {\n return Math.ceil((month + 1) / MONTHS_IN_YEAR) + STARTING_YEAR - 1;\n }\n\n private getMonthOffset(year: number): number {\n return (year - this.activeYear) * MONTHS_IN_YEAR;\n }\n}\n","import {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRippleModule} from '@taiga-ui/addon-mobile/directives/ripple';\nimport {TuiTouchableModule} from '@taiga-ui/addon-mobile/directives/touchable';\nimport {TuiPrimitiveCalendarMobileModule} from '@taiga-ui/addon-mobile/internal/primitive-calendar-mobile';\nimport {TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiLinkModule, TuiMonthPipeModule} from '@taiga-ui/core';\n\nimport {TuiMobileCalendarComponent} from './mobile-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n TuiTouchableModule,\n TuiRippleModule,\n TuiMapperPipeModule,\n TuiLinkModule,\n TuiPrimitiveCalendarMobileModule,\n TuiButtonModule,\n TuiMonthPipeModule,\n ],\n declarations: [TuiMobileCalendarComponent],\n exports: [TuiMobileCalendarComponent],\n})\nexport class TuiMobileCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -197,7 +197,7 @@ TuiSheetComponent = __decorate([
|
|
|
197
197
|
'[$.class._stuck]': 'stuck$',
|
|
198
198
|
'($.class._stuck)': 'stuck$',
|
|
199
199
|
},
|
|
200
|
-
styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:0;bottom:0;right:0;transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;top:auto;border-radius:.75rem .75rem 0 0;overflow-y:auto;overflow-x:hidden;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;box-shadow:0 4rem var(--tui-base-01);padding-right:1rem;margin-left:-1rem;transform:scaleX(-1);-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._stuck{-ms-scroll-snap-type:none;scroll-snap-type:none}.t-bumpers{display:flex;height:100%}:host-context(.t-wrapper_closeable) .t-bumpers{scroll-snap-stop:always;scroll-snap-align:start;scroll-margin:-1px}.t-bumper{scroll-snap-stop:always;scroll-snap-align:start;height:1rem}.t-wrapper{border-radius:inherit;pointer-events:auto;scroll-snap-stop:always;scroll-snap-align:start}.t-wrapper_shadow{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12)}.t-top{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:sticky;top:0;pointer-events:auto;border-radius:.8rem .8rem 0 0;transform:scaleX(-1);overflow:hidden}.t-top._clickthrough{pointer-events:none}:host-context(._overlay:not(._visible)) .t-top{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;transform:scaleX(-1)!important}.t-image{display:block;width:100%}.t-sheet{position:relative;border-radius:inherit;scroll-snap-stop:always;scroll-snap-align:start;transform:scaleX(-1);box-shadow:0 4rem var(--tui-base-01)}.t-top:not(._rounded)~.t-sheet .t-bar{border-radius:0}.t-bar{transition-property:border-radius;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:sticky;top:0;z-index:1;height:1.5rem;margin-bottom:-1.5rem;border-radius:inherit;background:var(--tui-base-01);box-shadow:inset 0 1px rgba(255,255,255,.25)}.t-button{position:absolute;top:0;height:1.5rem;width:3rem;padding:0;border:0;opacity:0}.t-content{padding:0 1rem 1rem;border-radius:inherit;background:var(--tui-base-01)}.t-heading{padding-bottom:.5rem}"]
|
|
200
|
+
styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:0;bottom:0;right:0;transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;top:auto;border-radius:.75rem .75rem 0 0;overflow-y:auto;overflow-x:hidden;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;box-shadow:0 4rem var(--tui-base-01);padding-right:1rem;margin-left:-1rem;transform:scaleX(-1);-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._stuck{-ms-scroll-snap-type:none;scroll-snap-type:none}.t-bumpers{display:flex;height:100%}:host-context(.t-wrapper_closeable) .t-bumpers{scroll-snap-stop:always;scroll-snap-align:start;scroll-margin:-1px}.t-bumper{scroll-snap-stop:always;scroll-snap-align:start;height:1rem;width:1rem}.t-wrapper{border-radius:inherit;pointer-events:auto;scroll-snap-stop:always;scroll-snap-align:start}.t-wrapper_shadow{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12)}.t-top{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:sticky;top:0;pointer-events:auto;border-radius:.8rem .8rem 0 0;transform:scaleX(-1);overflow:hidden}.t-top._clickthrough{pointer-events:none}:host-context(._overlay:not(._visible)) .t-top{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;transform:scaleX(-1)!important}.t-image{display:block;width:100%}.t-sheet{position:relative;border-radius:inherit;scroll-snap-stop:always;scroll-snap-align:start;transform:scaleX(-1);box-shadow:0 4rem var(--tui-base-01)}.t-top:not(._rounded)~.t-sheet .t-bar{border-radius:0}.t-bar{transition-property:border-radius;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:sticky;top:0;z-index:1;height:1.5rem;margin-bottom:-1.5rem;border-radius:inherit;background:var(--tui-base-01);box-shadow:inset 0 1px rgba(255,255,255,.25)}.t-button{position:absolute;top:0;height:1.5rem;width:3rem;padding:0;border:0;opacity:0}.t-content{padding:0 1rem 1rem;border-radius:inherit;background:var(--tui-base-01)}.t-heading{padding-bottom:.5rem}"]
|
|
201
201
|
}),
|
|
202
202
|
__param(0, Inject(TUI_SHEET_SCROLL)),
|
|
203
203
|
__param(1, Inject(ElementRef)),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
2
|
import { InjectionToken, ElementRef, Renderer2, Inject, Input, Directive, NgModule } from '@angular/core';
|
|
3
|
-
import { TuiDestroyService,
|
|
3
|
+
import { TuiDestroyService, TUI_TOUCH_SUPPORTED, TUI_IS_IOS, typedFromEvent, isPresent, TuiDirectiveStylesService } from '@taiga-ui/cdk';
|
|
4
4
|
import { EMPTY, race, timer, Observable } from 'rxjs';
|
|
5
5
|
import { map, filter, takeUntil, mergeMap, mapTo, take, tap, switchMap, switchMapTo } from 'rxjs/operators';
|
|
6
6
|
|
|
@@ -12,17 +12,17 @@ const TUI_RIPPLE_PROVIDERS = [
|
|
|
12
12
|
TuiDestroyService,
|
|
13
13
|
{
|
|
14
14
|
provide: TUI_RIPPLE_START,
|
|
15
|
-
deps: [
|
|
15
|
+
deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, Renderer2],
|
|
16
16
|
useFactory: rippleStartFactory,
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
provide: TUI_RIPPLE_END,
|
|
20
|
-
deps: [
|
|
20
|
+
deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, TuiDestroyService],
|
|
21
21
|
useFactory: rippleEndFactory,
|
|
22
22
|
},
|
|
23
23
|
];
|
|
24
|
-
function rippleStartFactory(
|
|
25
|
-
return !
|
|
24
|
+
function rippleStartFactory(touchSupported, isIOS, { nativeElement }, renderer) {
|
|
25
|
+
return isIOS || !touchSupported
|
|
26
26
|
? EMPTY
|
|
27
27
|
: typedFromEvent(nativeElement, 'touchstart').pipe(map(({ touches }) => {
|
|
28
28
|
const { clientX, clientY } = touches[touches.length - 1];
|
|
@@ -43,8 +43,8 @@ function rippleStartFactory(isAndroid, { nativeElement }, renderer) {
|
|
|
43
43
|
return ripple;
|
|
44
44
|
}));
|
|
45
45
|
}
|
|
46
|
-
function rippleEndFactory(
|
|
47
|
-
return !
|
|
46
|
+
function rippleEndFactory(touchSupported, isIOS, { nativeElement }, destroy$) {
|
|
47
|
+
return isIOS || !touchSupported
|
|
48
48
|
? EMPTY
|
|
49
49
|
: typedFromEvent(nativeElement, 'animationend').pipe(filter(({ animationName }) => animationName === RIPPLE_OFF), map(({ target }) => target), filter(isPresent), takeUntil(destroy$));
|
|
50
50
|
}
|
|
@@ -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_ANDROID,\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_IS_ANDROID, ElementRef, Renderer2],\n useFactory: rippleStartFactory,\n },\n {\n provide: TUI_RIPPLE_END,\n deps: [TUI_IS_ANDROID, ElementRef, TuiDestroyService],\n useFactory: rippleEndFactory,\n },\n];\n\nexport function rippleStartFactory(\n isAndroid: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n renderer: Renderer2,\n): Observable<HTMLElement> {\n return !isAndroid\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 isAndroid: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n destroy$: Observable<void>,\n): Observable<EventTarget> {\n return !isAndroid\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 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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"}
|