@taiga-ui/cdk 3.0.0-rc.2 → 3.0.0-rc.5
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-cdk-constants.umd.js +1 -1
- package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js +8 -0
- package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
- package/constants/version.d.ts +1 -1
- package/constants/version.js +1 -1
- package/esm2015/constants/version.js +2 -2
- package/esm2015/observables/index.js +2 -1
- package/esm2015/observables/is-observed.js +7 -0
- package/fesm2015/taiga-ui-cdk-constants.js +1 -1
- package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js +8 -1
- package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
- package/observables/index.d.ts +1 -0
- package/observables/is-observed.d.ts +5 -0
- package/package.json +1 -1
- package/schematics/constants/taiga-styles.d.ts +2 -3
- package/schematics/constants/taiga-styles.js +3 -4
- package/schematics/ng-add/steps/add-taiga-styles.js +3 -3
- package/schematics/ng-update/constants/consts.js +70 -0
- package/schematics/ng-update/constants/enums.js +2 -2
- package/schematics/ng-update/constants/templates.js +5 -0
- package/schematics/ng-update/index.js +12 -7
- package/schematics/ng-update/steps/migrate-polymorpheus.js +1 -1
- package/schematics/ng-update/steps/migrate-taiga-proprietary-icons.js +11 -2
- package/schematics/ng-update/steps/replace-styles.js +1 -1
- package/schematics/utils/{add-styles.d.ts → angular-json-manipulations.d.ts} +4 -3
- package/schematics/utils/angular-json-manipulations.js +58 -0
- package/schematics/utils/add-styles.js +0 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-constants.umd.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `3.0.0-rc.
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-constants.umd.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `3.0.0-rc.5`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["QueryList","trigger","transition","style","query","animateChild"],"mappings":"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"}
|
|
@@ -69,6 +69,13 @@
|
|
|
69
69
|
elementBlur$.pipe(operators.filter(function () { return !focus.tuiIsNativeFocused(element); }), operators.take(1), operators.ignoreElements())).pipe(operators.repeat(), operators.withLatestFrom(documentMouseDownIsAlive$, documentMouseUpIsAlive$, function (_event, elementActual, documentActual) { return elementActual || documentActual; }), operators.filter(function (isUserFocus) { return !isUserFocus; }))).pipe(operators.switchMapTo(elementBlur$.pipe(operators.mapTo(false), operators.take(1), operators.startWith(true))), operators.distinctUntilChanged());
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
/**
|
|
73
|
+
* In RxJS 8 `observers` will be removed, this util is for future safety
|
|
74
|
+
*/
|
|
75
|
+
function tuiIsObserved(observable) {
|
|
76
|
+
return observable.observed || !!observable.observers.length;
|
|
77
|
+
}
|
|
78
|
+
|
|
72
79
|
/**
|
|
73
80
|
* Converts changes observable of a QueryList to an Observable of arrays
|
|
74
81
|
*/
|
|
@@ -148,6 +155,7 @@
|
|
|
148
155
|
exports.tuiDragAndDropFrom = tuiDragAndDropFrom;
|
|
149
156
|
exports.tuiFocusVisibleObservable = tuiFocusVisibleObservable;
|
|
150
157
|
exports.tuiIsAlive = tuiIsAlive;
|
|
158
|
+
exports.tuiIsObserved = tuiIsObserved;
|
|
151
159
|
exports.tuiItemsQueryListObservable = tuiItemsQueryListObservable;
|
|
152
160
|
exports.tuiMouseDragFinishFrom = tuiMouseDragFinishFrom;
|
|
153
161
|
exports.tuiMustBePresent = tuiMustBePresent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-observables.umd.js","sources":["../../../projects/cdk/observables/typed-from-event.ts","../../../projects/cdk/observables/mouse-drag-finish-from.ts","../../../projects/cdk/observables/drag-and-drop-from.ts","../../../projects/cdk/observables/is-alive.ts","../../../projects/cdk/observables/focus-visible-observable.ts","../../../projects/cdk/observables/items-query-list-observable.ts","../../../projects/cdk/observables/must-be-present.ts","../../../projects/cdk/observables/pressed-observable.ts","../../../projects/cdk/observables/prevent-default.ts","../../../projects/cdk/observables/replay-control-value-changes.ts","../../../projects/cdk/observables/stop-propagation.ts","../../../projects/cdk/observables/watch.ts","../../../projects/cdk/observables/zone-free.ts","../../../projects/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function tuiTypedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n return fromEvent(target, event, options);\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {tuiTypedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function tuiMouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(\n tuiTypedFromEvent(target, `mouseup`),\n tuiTypedFromEvent(target, `dragend`),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function tuiDragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n tuiTypedFromEvent(element, `mousedown`).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n tuiTypedFromEvent(ownerDocument, `mousemove`).pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(tuiIsPresent)),\n ).pipe(repeat());\n}\n","import {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<unknown, boolean> {\n return pipe(\n switchMapTo(timer(lifespan).pipe(mapTo(false), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n mapTo,\n repeat,\n shareReplay,\n startWith,\n switchMapTo,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function tuiFocusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = tuiTypedFromEvent(element, `blur`);\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = tuiTypedFromEvent(ownerDocument, `mouseup`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = tuiTypedFromEvent(ownerDocument, `mousedown`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n tuiTypedFromEvent(element, `focus`).pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !tuiIsNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(isUserFocus => !isUserFocus),\n ),\n ).pipe(\n switchMapTo(elementBlur$.pipe(mapTo(false), take(1), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {QueryList} from '@angular/core';\nimport {tuiGetOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function tuiItemsQueryListObservable<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n startWith(null),\n map(() => tuiGetOriginalArrayFromQueryList(queryList)),\n );\n}\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function tuiMustBePresent<T>(): OperatorFunction<T | undefined | null, T> {\n return map(value => {\n if (!tuiIsPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, mapTo, startWith, switchMapTo, take} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function tuiPressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return tuiTypedFromEvent(element, `mousedown`).pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMapTo(\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n mapTo(false),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiPreventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n */\nexport function tuiControlValue<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiStopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiWatch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["fromEvent","merge","TuiDragStage","TuiOwnerDocumentException","concat","take","map","endWith","takeWhile","tuiIsPresent","repeat","pipe","switchMapTo","timer","mapTo","startWith","distinctUntilChanged","shareReplay","filter","tuiIsNativeFocused","ignoreElements","withLatestFrom","tuiGetOriginalArrayFromQueryList","TuiValuePresentException","tap","Observable","TuiValueChangesException"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-observables.umd.js","sources":["../../../projects/cdk/observables/typed-from-event.ts","../../../projects/cdk/observables/mouse-drag-finish-from.ts","../../../projects/cdk/observables/drag-and-drop-from.ts","../../../projects/cdk/observables/is-alive.ts","../../../projects/cdk/observables/focus-visible-observable.ts","../../../projects/cdk/observables/is-observed.ts","../../../projects/cdk/observables/items-query-list-observable.ts","../../../projects/cdk/observables/must-be-present.ts","../../../projects/cdk/observables/pressed-observable.ts","../../../projects/cdk/observables/prevent-default.ts","../../../projects/cdk/observables/replay-control-value-changes.ts","../../../projects/cdk/observables/stop-propagation.ts","../../../projects/cdk/observables/watch.ts","../../../projects/cdk/observables/zone-free.ts","../../../projects/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function tuiTypedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n return fromEvent(target, event, options);\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {tuiTypedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function tuiMouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(\n tuiTypedFromEvent(target, `mouseup`),\n tuiTypedFromEvent(target, `dragend`),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function tuiDragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n tuiTypedFromEvent(element, `mousedown`).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n tuiTypedFromEvent(ownerDocument, `mousemove`).pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(tuiIsPresent)),\n ).pipe(repeat());\n}\n","import {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<unknown, boolean> {\n return pipe(\n switchMapTo(timer(lifespan).pipe(mapTo(false), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n mapTo,\n repeat,\n shareReplay,\n startWith,\n switchMapTo,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function tuiFocusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = tuiTypedFromEvent(element, `blur`);\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = tuiTypedFromEvent(ownerDocument, `mouseup`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = tuiTypedFromEvent(ownerDocument, `mousedown`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n tuiTypedFromEvent(element, `focus`).pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !tuiIsNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(isUserFocus => !isUserFocus),\n ),\n ).pipe(\n switchMapTo(elementBlur$.pipe(mapTo(false), take(1), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {Subject} from 'rxjs';\n\n/**\n * In RxJS 8 `observers` will be removed, this util is for future safety\n */\nexport function tuiIsObserved<T>(observable: Subject<T>): boolean {\n return (observable as any).observed || !!observable.observers.length;\n}\n","import {QueryList} from '@angular/core';\nimport {tuiGetOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function tuiItemsQueryListObservable<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n startWith(null),\n map(() => tuiGetOriginalArrayFromQueryList(queryList)),\n );\n}\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function tuiMustBePresent<T>(): OperatorFunction<T | undefined | null, T> {\n return map(value => {\n if (!tuiIsPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, mapTo, startWith, switchMapTo, take} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function tuiPressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return tuiTypedFromEvent(element, `mousedown`).pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMapTo(\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n mapTo(false),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiPreventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n */\nexport function tuiControlValue<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiStopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiWatch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["fromEvent","merge","TuiDragStage","TuiOwnerDocumentException","concat","take","map","endWith","takeWhile","tuiIsPresent","repeat","pipe","switchMapTo","timer","mapTo","startWith","distinctUntilChanged","shareReplay","filter","tuiIsNativeFocused","ignoreElements","withLatestFrom","tuiGetOriginalArrayFromQueryList","TuiValuePresentException","tap","Observable","TuiValueChangesException"],"mappings":"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"}
|
package/constants/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TUI_VERSION = "3.0.0-rc.
|
|
1
|
+
export declare const TUI_VERSION = "3.0.0-rc.5";
|
package/constants/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const TUI_VERSION = `3.0.0-rc.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const TUI_VERSION = `3.0.0-rc.5`;
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gYDMuMC4wLXJjLjVgO1xuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './drag-and-drop-from';
|
|
2
2
|
export * from './focus-visible-observable';
|
|
3
3
|
export * from './is-alive';
|
|
4
|
+
export * from './is-observed';
|
|
4
5
|
export * from './items-query-list-observable';
|
|
5
6
|
export * from './mouse-drag-finish-from';
|
|
6
7
|
export * from './must-be-present';
|
|
@@ -11,4 +12,4 @@ export * from './stop-propagation';
|
|
|
11
12
|
export * from './typed-from-event';
|
|
12
13
|
export * from './watch';
|
|
13
14
|
export * from './zone-free';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvb2JzZXJ2YWJsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC1mcm9tJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMtdmlzaWJsZS1vYnNlcnZhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtYWxpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1vYnNlcnZlZCc7XG5leHBvcnQgKiBmcm9tICcuL2l0ZW1zLXF1ZXJ5LWxpc3Qtb2JzZXJ2YWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vdXNlLWRyYWctZmluaXNoLWZyb20nO1xuZXhwb3J0ICogZnJvbSAnLi9tdXN0LWJlLXByZXNlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVzc2VkLW9ic2VydmFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmV2ZW50LWRlZmF1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBsYXktY29udHJvbC12YWx1ZS1jaGFuZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcC1wcm9wYWdhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVkLWZyb20tZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi93YXRjaCc7XG5leHBvcnQgKiBmcm9tICcuL3pvbmUtZnJlZSc7XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In RxJS 8 `observers` will be removed, this util is for future safety
|
|
3
|
+
*/
|
|
4
|
+
export function tuiIsObserved(observable) {
|
|
5
|
+
return observable.observed || !!observable.observers.length;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtb2JzZXJ2ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvb2JzZXJ2YWJsZXMvaXMtb2JzZXJ2ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFJLFVBQXNCO0lBQ25ELE9BQVEsVUFBa0IsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEluIFJ4SlMgOCBgb2JzZXJ2ZXJzYCB3aWxsIGJlIHJlbW92ZWQsIHRoaXMgdXRpbCBpcyBmb3IgZnV0dXJlIHNhZmV0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNPYnNlcnZlZDxUPihvYnNlcnZhYmxlOiBTdWJqZWN0PFQ+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvYnNlcnZhYmxlIGFzIGFueSkub2JzZXJ2ZWQgfHwgISFvYnNlcnZhYmxlLm9ic2VydmVycy5sZW5ndGg7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-constants.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `3.0.0-rc.
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-constants.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `3.0.0-rc.5`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;AAEG;MACU,oBAAoB,GAAG,MAAa;;ACHjD;;AAEG;MACU,mBAAmB,GAAG,MAAY;;ACH/C;;;AAGG;AACI,MAAM,2BAA2B,GAAG;;ACF3C;;;;AAIG;AACU,MAAA,WAAW,GAAG,IAAI,SAAS,GAAQ;AACzC,MAAM,WAAW,GAAO,GAAG;MACrB,cAAc,GAA6B,MAAK,IAAI;AACpD,MAAA,iBAAiB,GAAe;AACzC,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,GAAG,EAAE,CAAC;AACN,IAAA,KAAK,EAAE,CAAC;;;ACdZ;;AAEG;AACI,MAAM,qBAAqB,GAA8B,IAAI,IAAI,MAAM,CAAC,IAAI;;ACDnF;;;;;AAKG;AACI,MAAM,mBAAmB,GAAG,CAC/B,IAAO,EACP,MAAc,EACd,SAAA,GAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAE3E;;;;;AAKG;AACU,MAAA,kBAAkB,GAAG,CAC9B,IAAO,EACP,MAAc,EACd,SAAmC,GAAA,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,GAAG;AAErE;;;;;;AAMG;MACU,4BAA4B,GAAgC,CAAC,KAAK,EAAE,KAAK,KAClF,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE;AAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc,EAAA;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1F;;ACtCa,MAAA,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;AACpB,QAAA,KAAK,CAAC,EAAC,QAAQ,EAAE,CAAA,MAAA,CAAQ,EAAC,CAAC;AAC3B,QAAA,KAAK,CAAC,CAAA,UAAA,CAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;AACL,CAAA;;ACPY,MAAA,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;AACO,MAAM,aAAa,IAAgB,CAAC,IAAU,KACjD,CAAiB,eAAA,CAAA,IAAI,IAAI;MACnB,UAAU,CAAC,aAAa;AAC1B,MAAE,UAAU,CAAC,aAAa;;ACLlC;;AAEG;AACI,MAAM,mBAAmB,GAAG,SAAS;AAE5C;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,SAAS;AAErC;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,SAAS;AAErC;;AAEG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;AAEG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;;;;;AAMG;AACI,MAAM,WAAW,GAAG,SAAS;AAEpC;;;;;AAKG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;AAEG;AACI,MAAM,SAAS,GAAG,SAAS;AAElC;;AAEG;AACI,MAAM,WAAW,GAAG,SAAS;AAEpC;;AAEG;AACI,MAAM,aAAa,GAAG,SAAS;AAEtC;;AAEG;AACI,MAAM,kBAAkB,GAAG,SAAS;AAE3C;;AAEG;AACI,MAAM,qBAAqB,GAAG;;ACzE9B,MAAM,WAAW,GAAG;;ACA3B;;AAEG;;;;"}
|
|
@@ -66,6 +66,13 @@ function tuiFocusVisibleObservable(element) {
|
|
|
66
66
|
elementBlur$.pipe(filter(() => !tuiIsNativeFocused(element)), take(1), ignoreElements())).pipe(repeat(), withLatestFrom(documentMouseDownIsAlive$, documentMouseUpIsAlive$, (_event, elementActual, documentActual) => elementActual || documentActual), filter(isUserFocus => !isUserFocus))).pipe(switchMapTo(elementBlur$.pipe(mapTo(false), take(1), startWith(true))), distinctUntilChanged());
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
/**
|
|
70
|
+
* In RxJS 8 `observers` will be removed, this util is for future safety
|
|
71
|
+
*/
|
|
72
|
+
function tuiIsObserved(observable) {
|
|
73
|
+
return observable.observed || !!observable.observers.length;
|
|
74
|
+
}
|
|
75
|
+
|
|
69
76
|
/**
|
|
70
77
|
* Converts changes observable of a QueryList to an Observable of arrays
|
|
71
78
|
*/
|
|
@@ -136,5 +143,5 @@ function tuiZoneOptimized(ngZone) {
|
|
|
136
143
|
* Generated bundle index. Do not edit.
|
|
137
144
|
*/
|
|
138
145
|
|
|
139
|
-
export { TuiDragStage, TuiDragState, tuiControlValue, tuiDragAndDropFrom, tuiFocusVisibleObservable, tuiIsAlive, tuiItemsQueryListObservable, tuiMouseDragFinishFrom, tuiMustBePresent, tuiPressedObservable, tuiPreventDefault, tuiStopPropagation, tuiTypedFromEvent, tuiWatch, tuiZoneOptimized, tuiZonefree, tuiZonefull };
|
|
146
|
+
export { TuiDragStage, TuiDragState, tuiControlValue, tuiDragAndDropFrom, tuiFocusVisibleObservable, tuiIsAlive, tuiIsObserved, tuiItemsQueryListObservable, tuiMouseDragFinishFrom, tuiMustBePresent, tuiPressedObservable, tuiPreventDefault, tuiStopPropagation, tuiTypedFromEvent, tuiWatch, tuiZoneOptimized, tuiZonefree, tuiZonefull };
|
|
140
147
|
//# sourceMappingURL=taiga-ui-cdk-observables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-observables.js","sources":["../../../projects/cdk/observables/typed-from-event.ts","../../../projects/cdk/observables/mouse-drag-finish-from.ts","../../../projects/cdk/observables/drag-and-drop-from.ts","../../../projects/cdk/observables/is-alive.ts","../../../projects/cdk/observables/focus-visible-observable.ts","../../../projects/cdk/observables/items-query-list-observable.ts","../../../projects/cdk/observables/must-be-present.ts","../../../projects/cdk/observables/pressed-observable.ts","../../../projects/cdk/observables/prevent-default.ts","../../../projects/cdk/observables/replay-control-value-changes.ts","../../../projects/cdk/observables/stop-propagation.ts","../../../projects/cdk/observables/watch.ts","../../../projects/cdk/observables/zone-free.ts","../../../projects/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function tuiTypedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n return fromEvent(target, event, options);\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {tuiTypedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function tuiMouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(\n tuiTypedFromEvent(target, `mouseup`),\n tuiTypedFromEvent(target, `dragend`),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function tuiDragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n tuiTypedFromEvent(element, `mousedown`).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n tuiTypedFromEvent(ownerDocument, `mousemove`).pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(tuiIsPresent)),\n ).pipe(repeat());\n}\n","import {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<unknown, boolean> {\n return pipe(\n switchMapTo(timer(lifespan).pipe(mapTo(false), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n mapTo,\n repeat,\n shareReplay,\n startWith,\n switchMapTo,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function tuiFocusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = tuiTypedFromEvent(element, `blur`);\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = tuiTypedFromEvent(ownerDocument, `mouseup`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = tuiTypedFromEvent(ownerDocument, `mousedown`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n tuiTypedFromEvent(element, `focus`).pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !tuiIsNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(isUserFocus => !isUserFocus),\n ),\n ).pipe(\n switchMapTo(elementBlur$.pipe(mapTo(false), take(1), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {QueryList} from '@angular/core';\nimport {tuiGetOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function tuiItemsQueryListObservable<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n startWith(null),\n map(() => tuiGetOriginalArrayFromQueryList(queryList)),\n );\n}\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function tuiMustBePresent<T>(): OperatorFunction<T | undefined | null, T> {\n return map(value => {\n if (!tuiIsPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, mapTo, startWith, switchMapTo, take} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function tuiPressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return tuiTypedFromEvent(element, `mousedown`).pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMapTo(\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n mapTo(false),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiPreventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n */\nexport function tuiControlValue<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiStopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiWatch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAoCM,SAAU,iBAAiB,CAC7B,MAA8B,EAC9B,KAAa,EACb,UAAmC,EAAE,EAAA;IAErC,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7C;;ACrCA;;;AAGG;AACG,SAAU,sBAAsB,CAEpC,MAAwB,EAAA;AACtB,IAAA,OAAO,KAAK,CACR,iBAAiB,CAAC,MAAM,EAAE,CAAS,OAAA,CAAA,CAAC,EACpC,iBAAiB,CAAC,MAAM,EAAE,CAAS,OAAA,CAAA,CAAC,CACvC,CAAC;AACN;;ICRkB,aAIjB;AAJD,CAAA,UAAkB,YAAY,EAAA;AAC1B,IAAA,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACP,CAAC,EAJiB,YAAY,KAAZ,YAAY,GAI7B,EAAA,CAAA,CAAA,CAAA;MAEY,YAAY,CAAA;IACrB,WAAqB,CAAA,KAAmB,EAAW,KAAiB,EAAA;QAA/C,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QAAW,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;KAAI;AAC3E,CAAA;AAEK,SAAU,kBAAkB,CAAC,OAAgB,EAAA;AAC/C,IAAA,MAAM,EAAC,aAAa,EAAC,GAAG,OAAO,CAAC;IAEhC,IAAI,CAAC,aAAa,EAAE;QAChB,MAAM,IAAI,yBAAyB,EAAE,CAAC;AACzC,KAAA;IAED,OAAO,MAAM,CACT,iBAAiB,CAAC,OAAO,EAAE,CAAA,SAAA,CAAW,CAAC,CAAC,IAAI,CACxC,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,KAAK,IAAI,IAAI,YAAY,gBAAqB,KAAK,CAAC,CAAC,CAC5D,EACD,KAAK,CACD,iBAAiB,CAAC,aAAa,EAAE,CAAA,SAAA,CAAW,CAAC,CAAC,IAAI,CAC9C,GAAG,CAAC,KAAK,IAAI,IAAI,YAAY,CAAA,CAAA,kBAAyB,KAAK,CAAC,CAAC,CAChE,EACD,sBAAsB,CAAC,aAAa,CAAC,CAAC,IAAI,CACtC,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,KAAK,IAAI,IAAI,YAAY,CAAA,CAAA,YAAmB,KAAK,CAAC,CAAC,EACvD,OAAO,CAAC,IAAI,CAAC,CAChB,CACJ,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAClC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACrB;;ACtCA;;AAEG;AACa,SAAA,UAAU,CAAC,QAAA,GAAmB,CAAC,EAAA;IAC3C,OAAO,IAAI,CACP,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAChE,oBAAoB,EAAE,CACzB,CAAC;AACN;;ACQA,IAAI,uBAA4C,CAAC;AACjD,IAAI,yBAA8C,CAAC;AAE7C,SAAU,yBAAyB,CAAC,OAAgB,EAAA;IACtD,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAA,IAAA,CAAM,CAAC,CAAC;AACxD,IAAA,MAAM,EAAC,aAAa,EAAC,GAAG,OAAO,CAAC;IAEhC,IAAI,CAAC,aAAa,EAAE;QAChB,MAAM,IAAI,yBAAyB,EAAE,CAAC;AACzC,KAAA;AAED,IAAA,IAAI,CAAC,yBAAyB,IAAI,CAAC,uBAAuB,EAAE;AACxD,QAAA,uBAAuB,GAAG,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE;AAClE,YAAA,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC,IAAI,CACH,UAAU,EAAE,EACZ,SAAS,CAAC,KAAK,CAAC,EAChB,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAC/C,CAAC;AACF,QAAA,yBAAyB,GAAG,iBAAiB,CAAC,aAAa,EAAE,WAAW,EAAE;AACtE,YAAA,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC,IAAI,CACH,UAAU,EAAE,EACZ,SAAS,CAAC,KAAK,CAAC,EAChB,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAC/C,CAAC;AACL,KAAA;AAED,IAAA,OAAO,KAAK;;AAER,IAAA,MAAM,CACF,iBAAiB,CAAC,OAAO,EAAE,CAAO,KAAA,CAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;AAEjD,IAAA,YAAY,CAAC,IAAI,CACb,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAC1C,IAAI,CAAC,CAAC,CAAC,EACP,cAAc,EAAE,CACnB,CACJ,CAAC,IAAI,CACF,MAAM,EAAE,EACR,cAAc,CACV,yBAAyB,EACzB,uBAAuB,EACvB,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,KAClC,aAAa,IAAI,cAAc,CACtC,EACD,MAAM,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,CACtC,CACJ,CAAC,IAAI,CACF,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EACtE,oBAAoB,EAAE,CACzB,CAAC;AACN;;AClEA;;AAEG;AACG,SAAU,2BAA2B,CACvC,SAAuB,EAAA;IAEvB,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CACzB,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAM,gCAAgC,CAAC,SAAS,CAAC,CAAC,CACzD,CAAC;AACN;;SCVgB,gBAAgB,GAAA;AAC5B,IAAA,OAAO,GAAG,CAAC,KAAK,IAAG;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,wBAAwB,EAAE,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;AACjB,KAAC,CAAC,CAAC;AACP;;ACFgB,SAAA,oBAAoB,CAChC,OAAgB,EAChB,EAAC,WAAW,EAAA,GAAiC,EAAC,WAAW,EAAE,IAAI,EAAC,EAAA;AAEhE,IAAA,MAAM,EAAC,aAAa,EAAC,GAAG,OAAO,CAAC;IAEhC,IAAI,CAAC,aAAa,EAAE;QAChB,MAAM,IAAI,yBAAyB,EAAE,CAAC;AACzC,KAAA;IAED,OAAO,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,CAAC,EAAC,SAAS,EAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,EAClD,WAAW,CACP,sBAAsB,CAAC,aAAa,CAAC,CAAC,IAAI,CACtC,KAAK,CAAC,KAAK,CAAC,EACZ,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,IAAI,CAAC,CAClB,CACJ,CACJ,CAAC;AACN;;SC5BgB,iBAAiB,GAAA;IAC7B,OAAO,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;AAChD;;ACAA;;AAEG;AACG,SAAU,eAAe,CAC3B,OAAmD,EAAA;AAEnD,IAAA,OAAO,IAAI,UAAU,CAAC,UAAU,IAAG;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YACvB,MAAM,IAAI,wBAAwB,EAAE,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC9E,KAAC,CAAC,CAAC;AACP;;SCfgB,kBAAkB,GAAA;AAC9B,IAAA,OAAO,GAAG,CAAC,CAAC,IAAG;QACX,CAAC,CAAC,eAAe,EAAE,CAAC;AACxB,KAAC,CAAC,CAAC;AACP;;ACHM,SAAU,QAAQ,CACpB,iBAAoC,EAAA;IAEpC,OAAO,GAAG,CAAC,MAAK;QACZ,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACrC,KAAC,CAAC,CAAC;AACP;;ACPM,SAAU,WAAW,CAAI,MAAc,EAAA;AACzC,IAAA,OAAO,MAAM,IACT,IAAI,UAAU,CAAC,UAAU,IACrB,MAAM,CAAC,SAAS,CAAC;AACb,QAAA,IAAI,EAAE,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpE,QAAA,QAAQ,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC1D,KAAA,CAAC,CACL,CAAC;AACV,CAAC;AAEK,SAAU,WAAW,CAAI,MAAc,EAAA;IACzC,OAAO,MAAM,IACT,IAAI,UAAU,CAAC,UAAU,IACrB,MAAM,CAAC,iBAAiB,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAC/D,CAAC;AACV,CAAC;AAEK,SAAU,gBAAgB,CAAI,MAAc,EAAA;AAC9C,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D;;ACvBA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-observables.js","sources":["../../../projects/cdk/observables/typed-from-event.ts","../../../projects/cdk/observables/mouse-drag-finish-from.ts","../../../projects/cdk/observables/drag-and-drop-from.ts","../../../projects/cdk/observables/is-alive.ts","../../../projects/cdk/observables/focus-visible-observable.ts","../../../projects/cdk/observables/is-observed.ts","../../../projects/cdk/observables/items-query-list-observable.ts","../../../projects/cdk/observables/must-be-present.ts","../../../projects/cdk/observables/pressed-observable.ts","../../../projects/cdk/observables/prevent-default.ts","../../../projects/cdk/observables/replay-control-value-changes.ts","../../../projects/cdk/observables/stop-propagation.ts","../../../projects/cdk/observables/watch.ts","../../../projects/cdk/observables/zone-free.ts","../../../projects/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function tuiTypedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n return fromEvent(target, event, options);\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {tuiTypedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function tuiMouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(\n tuiTypedFromEvent(target, `mouseup`),\n tuiTypedFromEvent(target, `dragend`),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function tuiDragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n tuiTypedFromEvent(element, `mousedown`).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n tuiTypedFromEvent(ownerDocument, `mousemove`).pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(tuiIsPresent)),\n ).pipe(repeat());\n}\n","import {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<unknown, boolean> {\n return pipe(\n switchMapTo(timer(lifespan).pipe(mapTo(false), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n mapTo,\n repeat,\n shareReplay,\n startWith,\n switchMapTo,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function tuiFocusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = tuiTypedFromEvent(element, `blur`);\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = tuiTypedFromEvent(ownerDocument, `mouseup`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = tuiTypedFromEvent(ownerDocument, `mousedown`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n tuiTypedFromEvent(element, `focus`).pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !tuiIsNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(isUserFocus => !isUserFocus),\n ),\n ).pipe(\n switchMapTo(elementBlur$.pipe(mapTo(false), take(1), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {Subject} from 'rxjs';\n\n/**\n * In RxJS 8 `observers` will be removed, this util is for future safety\n */\nexport function tuiIsObserved<T>(observable: Subject<T>): boolean {\n return (observable as any).observed || !!observable.observers.length;\n}\n","import {QueryList} from '@angular/core';\nimport {tuiGetOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function tuiItemsQueryListObservable<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n startWith(null),\n map(() => tuiGetOriginalArrayFromQueryList(queryList)),\n );\n}\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function tuiMustBePresent<T>(): OperatorFunction<T | undefined | null, T> {\n return map(value => {\n if (!tuiIsPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, mapTo, startWith, switchMapTo, take} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function tuiPressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return tuiTypedFromEvent(element, `mousedown`).pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMapTo(\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n mapTo(false),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiPreventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n */\nexport function tuiControlValue<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiStopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiWatch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/observables/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './drag-and-drop-from';
|
|
2
2
|
export * from './focus-visible-observable';
|
|
3
3
|
export * from './is-alive';
|
|
4
|
+
export * from './is-observed';
|
|
4
5
|
export * from './items-query-list-observable';
|
|
5
6
|
export * from './mouse-drag-finish-from';
|
|
6
7
|
export * from './must-be-present';
|
package/package.json
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const TAIGA_GLOBAL_OLD = "node_modules/@taiga-ui/core/styles/taiga-ui-global.less";
|
|
1
|
+
export declare const TAIGA_GLOBAL_OLD_STYLE = "node_modules/@taiga-ui/core/styles/taiga-ui-global.less";
|
|
2
|
+
export declare const TAIGA_GLOBAL_NEW_STYLE = "node_modules/@taiga-ui/styles/taiga-ui-global.less";
|
|
4
3
|
export declare const TAIGA_THEME_STYLE = "node_modules/@taiga-ui/core/styles/taiga-ui-theme.less";
|
|
5
4
|
export declare const TAIGA_THEME_FONTS = "node_modules/@taiga-ui/core/styles/taiga-ui-fonts.less";
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TAIGA_THEME_FONTS = exports.TAIGA_THEME_STYLE = exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.TAIGA_GLOBAL_OLD = 'node_modules/@taiga-ui/core/styles/taiga-ui-global.less';
|
|
3
|
+
exports.TAIGA_THEME_FONTS = exports.TAIGA_THEME_STYLE = exports.TAIGA_GLOBAL_NEW_STYLE = exports.TAIGA_GLOBAL_OLD_STYLE = void 0;
|
|
4
|
+
exports.TAIGA_GLOBAL_OLD_STYLE = 'node_modules/@taiga-ui/core/styles/taiga-ui-global.less';
|
|
5
|
+
exports.TAIGA_GLOBAL_NEW_STYLE = 'node_modules/@taiga-ui/styles/taiga-ui-global.less';
|
|
7
6
|
exports.TAIGA_THEME_STYLE = 'node_modules/@taiga-ui/core/styles/taiga-ui-theme.less';
|
|
8
7
|
exports.TAIGA_THEME_FONTS = 'node_modules/@taiga-ui/core/styles/taiga-ui-fonts.less';
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addTaigaStyles = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
5
|
+
const angular_json_manipulations_1 = require("../../utils/angular-json-manipulations");
|
|
6
6
|
const taiga_styles_1 = require("../../constants/taiga-styles");
|
|
7
7
|
function addTaigaStyles(options) {
|
|
8
8
|
return (_, context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
9
|
const taigaLocalStyles = [taiga_styles_1.TAIGA_THEME_STYLE, taiga_styles_1.TAIGA_THEME_FONTS];
|
|
10
10
|
const taigaStyles = options.addGlobalStyles
|
|
11
|
-
? [...taigaLocalStyles, taiga_styles_1.
|
|
11
|
+
? [...taigaLocalStyles, taiga_styles_1.TAIGA_GLOBAL_NEW_STYLE]
|
|
12
12
|
: taigaLocalStyles;
|
|
13
|
-
return
|
|
13
|
+
return angular_json_manipulations_1.addStylesToAngularJson(options, context, taigaStyles);
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
exports.addTaigaStyles = addTaigaStyles;
|
|
@@ -313,4 +313,74 @@ exports.CONSTS_TO_REPLACE = [
|
|
|
313
313
|
moduleSpecifier: '@taiga-ui/cdk',
|
|
314
314
|
},
|
|
315
315
|
},
|
|
316
|
+
{
|
|
317
|
+
from: {
|
|
318
|
+
name: 'TuiAccountModule',
|
|
319
|
+
moduleSpecifier: '@taiga-ui/proprietary-core',
|
|
320
|
+
},
|
|
321
|
+
to: {
|
|
322
|
+
name: 'TuiAccountModule',
|
|
323
|
+
moduleSpecifier: '@taiga-ui/proprietary-banking',
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
from: {
|
|
328
|
+
name: 'TuiAccountComponent',
|
|
329
|
+
moduleSpecifier: '@taiga-ui/proprietary-core',
|
|
330
|
+
},
|
|
331
|
+
to: {
|
|
332
|
+
name: 'TuiAccountComponent',
|
|
333
|
+
moduleSpecifier: '@taiga-ui/proprietary-banking',
|
|
334
|
+
},
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
from: {
|
|
338
|
+
name: 'TuiAccount',
|
|
339
|
+
moduleSpecifier: '@taiga-ui/proprietary-core',
|
|
340
|
+
},
|
|
341
|
+
to: {
|
|
342
|
+
name: 'TuiAccount',
|
|
343
|
+
moduleSpecifier: '@taiga-ui/proprietary-banking',
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
from: {
|
|
348
|
+
name: 'tuiAccountDelegate',
|
|
349
|
+
moduleSpecifier: '@taiga-ui/proprietary-core',
|
|
350
|
+
},
|
|
351
|
+
to: {
|
|
352
|
+
name: 'tuiAccountDelegate',
|
|
353
|
+
moduleSpecifier: '@taiga-ui/proprietary-banking',
|
|
354
|
+
},
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
from: {
|
|
358
|
+
name: 'TuiAccountDelegateComponent',
|
|
359
|
+
moduleSpecifier: '@taiga-ui/proprietary-core',
|
|
360
|
+
},
|
|
361
|
+
to: {
|
|
362
|
+
name: 'TuiAccountDelegateComponent',
|
|
363
|
+
moduleSpecifier: '@taiga-ui/proprietary-banking',
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
from: {
|
|
368
|
+
name: 'CURRENCY_ICONS',
|
|
369
|
+
moduleSpecifier: '@taiga-ui/proprietary-core',
|
|
370
|
+
},
|
|
371
|
+
to: {
|
|
372
|
+
name: 'CURRENCY_ICONS',
|
|
373
|
+
moduleSpecifier: '@taiga-ui/proprietary-banking',
|
|
374
|
+
},
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
from: {
|
|
378
|
+
name: 'TUI_ACCOUNT_PROJECTOR',
|
|
379
|
+
moduleSpecifier: '@taiga-ui/proprietary-core',
|
|
380
|
+
},
|
|
381
|
+
to: {
|
|
382
|
+
name: 'TUI_ACCOUNT_PROJECTOR',
|
|
383
|
+
moduleSpecifier: '@taiga-ui/proprietary-banking',
|
|
384
|
+
},
|
|
385
|
+
},
|
|
316
386
|
];
|
|
@@ -88,7 +88,7 @@ exports.ENUMS_TO_REPLACE = [
|
|
|
88
88
|
Error: 'error',
|
|
89
89
|
Pass: 'pass',
|
|
90
90
|
},
|
|
91
|
-
keepAsType:
|
|
91
|
+
keepAsType: true,
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
94
|
name: 'TuiStatus',
|
|
@@ -121,7 +121,7 @@ exports.ENUMS_TO_REPLACE = [
|
|
|
121
121
|
Word: 'word',
|
|
122
122
|
Tag: 'tag',
|
|
123
123
|
},
|
|
124
|
-
keepAsType:
|
|
124
|
+
keepAsType: true,
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
name: 'TuiBorders',
|
|
@@ -19,7 +19,7 @@ const replace_functions_1 = require("./steps/replace-functions");
|
|
|
19
19
|
const migrate_progress_1 = require("./steps/migrate-progress");
|
|
20
20
|
const colored_log_1 = require("../utils/colored-log");
|
|
21
21
|
const migrate_date_time_1 = require("./steps/migrate-date-time");
|
|
22
|
-
const
|
|
22
|
+
const angular_json_manipulations_1 = require("../utils/angular-json-manipulations");
|
|
23
23
|
const taiga_styles_1 = require("../constants/taiga-styles");
|
|
24
24
|
const replace_styles_1 = require("./steps/replace-styles");
|
|
25
25
|
const constants_1 = require("../constants");
|
|
@@ -65,12 +65,17 @@ function main(options) {
|
|
|
65
65
|
function addTaigaStyles(options) {
|
|
66
66
|
return (tree, context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
67
67
|
const taigaStyles = [taiga_styles_1.TAIGA_THEME_FONTS];
|
|
68
|
-
const stylesToReplace = {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
const stylesToReplace = {
|
|
69
|
+
from: taiga_styles_1.TAIGA_GLOBAL_OLD_STYLE,
|
|
70
|
+
to: [taiga_styles_1.TAIGA_GLOBAL_NEW_STYLE],
|
|
71
|
+
};
|
|
72
|
+
if (yield angular_json_manipulations_1.isInvalidAngularJson(tree)) {
|
|
73
|
+
context.logger.warn(`[WARNING]: Schematics don't support this version of angular.json.\n` +
|
|
74
|
+
`– Add styles ${taigaStyles.join(',')} to angular.json manually.\n` +
|
|
75
|
+
`– Manually replace "${taiga_styles_1.TAIGA_GLOBAL_OLD_STYLE}" with "${taiga_styles_1.TAIGA_GLOBAL_NEW_STYLE}" inside "styles" of angular.json (don't forget to install "@taiga-ui/styles")`);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
return angular_json_manipulations_1.addStylesToAngularJson(options, context, taigaStyles, existingStyles => !!(existingStyles === null || existingStyles === void 0 ? void 0 : existingStyles.some(s => String(s).includes('tinkoff-theme'))), stylesToReplace, tree);
|
|
74
79
|
});
|
|
75
80
|
}
|
|
76
81
|
function getFileSystem(tree) {
|
|
@@ -57,7 +57,7 @@ function removeOldInputs(recorder, template, templateOffset) {
|
|
|
57
57
|
...ng_component_input_manipulations_1.getInputPropertyOffsets(template, 'polymorpheus-outlet', ['*'], el => elements_1.hasElementAttribute(el, 'polymorpheus-outlet')),
|
|
58
58
|
];
|
|
59
59
|
offsets.forEach(([start, end]) => {
|
|
60
|
-
recorder.remove(start + templateOffset, end - start
|
|
60
|
+
recorder.remove(start + templateOffset, end - start);
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
function insertPolymorpheusWithDefault({ defaultTemplateEl, recorder, templateOffset, contentVal, contextVal, }) {
|
|
@@ -6,11 +6,13 @@ const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
|
6
6
|
const get_project_target_options_1 = require("../../utils/get-project-target-options");
|
|
7
7
|
const get_project_1 = require("../../utils/get-project");
|
|
8
8
|
const ng_morph_1 = require("ng-morph");
|
|
9
|
+
const angular_json_manipulations_1 = require("../../utils/angular-json-manipulations");
|
|
9
10
|
const PROPRIETARY_TDS_ICON_ASSETS = {
|
|
10
11
|
glob: '**/*',
|
|
11
12
|
input: 'node_modules/@taiga-ui/proprietary-tds-icons/src',
|
|
12
13
|
output: 'assets/taiga-ui/icons',
|
|
13
14
|
};
|
|
15
|
+
const MANUAL_MIGRATION_TIPS = `Add ${JSON.stringify(PROPRIETARY_TDS_ICON_ASSETS, null, 4)} to angular.json manually`;
|
|
14
16
|
function migrateTaigaProprietaryIcons(options) {
|
|
15
17
|
return (tree, context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
18
|
var _a;
|
|
@@ -23,6 +25,10 @@ function migrateTaigaProprietaryIcons(options) {
|
|
|
23
25
|
catch (_b) {
|
|
24
26
|
// noop
|
|
25
27
|
}
|
|
28
|
+
if (yield angular_json_manipulations_1.isInvalidAngularJson(tree)) {
|
|
29
|
+
context.logger.warn(`[WARNING]: Schematics don't support this version of angular.json. ${MANUAL_MIGRATION_TIPS}`);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
26
32
|
return ng_morph_1.getSourceFiles('**/angular.json').length > 0
|
|
27
33
|
? workspace_1.updateWorkspace(workspace => {
|
|
28
34
|
if (proprietaryIcons === null) {
|
|
@@ -30,14 +36,17 @@ function migrateTaigaProprietaryIcons(options) {
|
|
|
30
36
|
}
|
|
31
37
|
const project = get_project_1.getProject(options, workspace);
|
|
32
38
|
if (!project) {
|
|
33
|
-
context.logger.warn(`[WARNING]: Target project not found.
|
|
39
|
+
context.logger.warn(`[WARNING]: Target project not found. ${MANUAL_MIGRATION_TIPS}`);
|
|
34
40
|
return;
|
|
35
41
|
}
|
|
36
42
|
const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
|
|
37
43
|
if (Array.isArray(targetOptions === null || targetOptions === void 0 ? void 0 : targetOptions.assets)) {
|
|
44
|
+
const tdsSrc = '@taiga-ui/proprietary-tds-icons/src';
|
|
38
45
|
const hasIcons = targetOptions.assets.find(asset => {
|
|
39
46
|
var _a;
|
|
40
|
-
return
|
|
47
|
+
return typeof asset === 'string'
|
|
48
|
+
? asset.includes(tdsSrc)
|
|
49
|
+
: (_a = asset === null || asset === void 0 ? void 0 : asset.input) === null || _a === void 0 ? void 0 : _a.includes(tdsSrc);
|
|
41
50
|
});
|
|
42
51
|
if (hasIcons) {
|
|
43
52
|
return;
|
|
@@ -12,7 +12,7 @@ function replaceStyles() {
|
|
|
12
12
|
fullText = fullText.replaceAll(new RegExp(`(?<=@media.*)(${from})(?=[\\s,{])`, 'g'), to);
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
-
sourceFile.replaceWithText(fullText.replace(`@import '~@taiga-ui/core/styles/taiga-ui-global';`, `@import '~@taiga-ui/
|
|
15
|
+
sourceFile.replaceWithText(fullText.replace(`@import '~@taiga-ui/core/styles/taiga-ui-global';`, `@import '~@taiga-ui/styles/taiga-ui-global';`));
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
exports.replaceStyles = replaceStyles;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Schema } from '../ng-add/schema';
|
|
2
|
-
import { Rule, SchematicContext } from '@angular-devkit/schematics';
|
|
2
|
+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
|
|
3
3
|
import { JsonArray } from '@angular-devkit/core';
|
|
4
|
+
export declare function isInvalidAngularJson(tree: Tree): Promise<boolean>;
|
|
4
5
|
export declare function addStylesToAngularJson(options: Schema, context: SchematicContext, taigaStyles: string[], filter?: (styles: JsonArray | undefined) => boolean, stylesToReplace?: {
|
|
5
6
|
from: string;
|
|
6
|
-
to: string;
|
|
7
|
-
}): Rule;
|
|
7
|
+
to: string[];
|
|
8
|
+
}, tree?: Tree): Rule;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addStylesToAngularJson = exports.isInvalidAngularJson = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const get_project_1 = require("./get-project");
|
|
6
|
+
const get_project_target_options_1 = require("./get-project-target-options");
|
|
7
|
+
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
8
|
+
const ng_morph_1 = require("ng-morph");
|
|
9
|
+
const versions_1 = require("../ng-add/constants/versions");
|
|
10
|
+
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
11
|
+
function isInvalidAngularJson(tree) {
|
|
12
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
return (workspace_1.getWorkspace(tree)
|
|
14
|
+
.then(() => false)
|
|
15
|
+
/**
|
|
16
|
+
* Possible error – "Invalid format version detected - Expected:[ 1 ] Found: [ 2 ]"
|
|
17
|
+
* @see https://github.com/angular/angular-cli/blob/main/packages/angular_devkit/core/src/workspace/json/reader.ts#L67-L69
|
|
18
|
+
*/
|
|
19
|
+
.catch(() => true));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.isInvalidAngularJson = isInvalidAngularJson;
|
|
23
|
+
function addStylesToAngularJson(options, context, taigaStyles, filter, stylesToReplace, tree) {
|
|
24
|
+
return workspace_1.updateWorkspace(workspace => {
|
|
25
|
+
const project = get_project_1.getProject(options, workspace);
|
|
26
|
+
if (!project) {
|
|
27
|
+
context.logger.warn(`[WARNING]: Target project not found. Add styles ${taigaStyles.join(',')} to angular.json manually.`);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
|
|
31
|
+
const styles = targetOptions.styles;
|
|
32
|
+
if (filter && filter(styles)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (!styles) {
|
|
36
|
+
targetOptions.styles = taigaStyles;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (tree &&
|
|
40
|
+
stylesToReplace &&
|
|
41
|
+
styles.find(style => style === stylesToReplace.from)) {
|
|
42
|
+
targetOptions.styles = Array.from(new Set([
|
|
43
|
+
...taigaStyles,
|
|
44
|
+
...stylesToReplace.to,
|
|
45
|
+
...styles.filter(style => style !== stylesToReplace.from),
|
|
46
|
+
]));
|
|
47
|
+
ng_morph_1.addPackageJsonDependency(tree, {
|
|
48
|
+
name: `@taiga-ui/styles`,
|
|
49
|
+
version: versions_1.TAIGA_VERSION,
|
|
50
|
+
});
|
|
51
|
+
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
targetOptions.styles = Array.from(new Set([...taigaStyles, ...styles]));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
exports.addStylesToAngularJson = addStylesToAngularJson;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addStylesToAngularJson = void 0;
|
|
4
|
-
const get_project_1 = require("./get-project");
|
|
5
|
-
const get_project_target_options_1 = require("./get-project-target-options");
|
|
6
|
-
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
7
|
-
function addStylesToAngularJson(options, context, taigaStyles, filter, stylesToReplace) {
|
|
8
|
-
return workspace_1.updateWorkspace(workspace => {
|
|
9
|
-
const project = get_project_1.getProject(options, workspace);
|
|
10
|
-
if (!project) {
|
|
11
|
-
context.logger.warn(`[WARNING]: Target project not found. Add styles ${taigaStyles.join(',')} to angular.json manually.`);
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
|
|
15
|
-
const styles = targetOptions.styles;
|
|
16
|
-
if (filter && filter(styles)) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
targetOptions.styles = styles
|
|
20
|
-
? Array.from(new Set([...taigaStyles, ...styles])).map(style => stylesToReplace
|
|
21
|
-
? String(style).replace(stylesToReplace.from, stylesToReplace.to)
|
|
22
|
-
: style)
|
|
23
|
-
: taigaStyles;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
exports.addStylesToAngularJson = addStylesToAngularJson;
|