@taiga-ui/cdk 2.83.0 → 2.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -155,7 +155,7 @@
155
155
  */
156
156
  var CHAR_ZERO_WIDTH_SPACE = "\u200B";
157
157
 
158
- var TUI_VERSION = "2.83.0";
158
+ var TUI_VERSION = "2.84.0";
159
159
 
160
160
  exports.ALWAYS_FALSE_HANDLER = ALWAYS_FALSE_HANDLER;
161
161
  exports.ALWAYS_TRUE_HANDLER = ALWAYS_TRUE_HANDLER;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-constants.umd.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.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","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 `&minus;`. 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 = `2.83.0`;\n"],"names":["QueryList","trigger","transition","style","query","animateChild"],"mappings":";;;;;;IAAA;;;QAGa,oBAAoB,GAAG,cAAa,OAAA,KAAK;;ICHtD;;;QAGa,mBAAmB,GAAG,cAAY,OAAA,IAAI;;QCHtC,2BAA2B,GAAG;;ICG3C;;;;;QAKa,WAAW,GAAG,IAAIA,cAAS,GAAQ;QACnC,WAAW,GAAO,GAAG;QACrB,cAAc,GAA6B,gBAAS;IACjE;QACa,eAAe,GAAgB,cAAM,OAAA,IAAI,IAAC;QAC1C,iBAAiB,GAAe;QACzC,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;;;ICjBZ;;;QAGa,qBAAqB,GAA8B,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC;;ICDpF;;;;;;QAMa,mBAAmB,GAAG,UAC/B,IAAO,EACP,MAAc,EACd,SAAwD;QAAxD,0BAAA,EAAA,iCAAwD;QAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAA5D,EAA6D;IAE3E;;;;;;QAMa,kBAAkB,GAAG,UAC9B,IAAO,EACP,MAAc,EACd,SAAwD;QAAxD,0BAAA,EAAA,iCAAwD;QAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;IAAtD,EAAuD;IAErE;;;;;;;QAOa,4BAA4B,GAAgC,UAAC,KAAK,EAAE,KAAK;QAClF,OAAA,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAA1C,EAA2C;IAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc;QAC7C,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;IAC1F;;QCtCa,oBAAoB,GAAGC,kBAAO,CAAC,oBAAoB,EAAE;QAC9DC,qBAAU,CAAC,WAAW,EAAE;YACpBC,gBAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;YAC3BC,gBAAK,CAAC,YAAY,EAAE,CAACC,uBAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;SAC1D,CAAC;KACL;;QCPY,YAAY,GAAG,IAAI,GAAG;;ICAnC;IACA;QACa,aAAa,IAAgB,UAAC,IAAU;QACjD,OAAA,iBAAiB,IAAI,IAAI;cACnB,UAAU,CAAC,aAAa;cACxB,UAAU,CAAC,aAAa;IAF9B,CAE8B;;ICLlC;;;QAGa,mBAAmB,GAAG,SAAS;IAE5C;;;;;;;QAOa,YAAY,GAAG,SAAS;IAErC;;;;;;;QAOa,YAAY,GAAG,SAAS;IAErC;;;QAGa,UAAU,GAAG,SAAS;IAEnC;;;QAGa,UAAU,GAAG,SAAS;IAEnC;;;;;;;QAOa,WAAW,GAAG,IAAS;IAEpC;;;;;;QAMa,UAAU,GAAG,SAAS;IAEnC;;;QAGa,SAAS,GAAG,IAAS;IAElC;;;QAGa,WAAW,GAAG,SAAS;IAEpC;;;QAGa,aAAa,GAAG,SAAS;IAEtC;;;QAGa,kBAAkB,GAAG,SAAS;IAE3C;;;QAGa,qBAAqB,GAAG;;QCzExB,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-constants.umd.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.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","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 `&minus;`. 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 = `2.84.0`;\n"],"names":["QueryList","trigger","transition","style","query","animateChild"],"mappings":";;;;;;IAAA;;;QAGa,oBAAoB,GAAG,cAAa,OAAA,KAAK;;ICHtD;;;QAGa,mBAAmB,GAAG,cAAY,OAAA,IAAI;;QCHtC,2BAA2B,GAAG;;ICG3C;;;;;QAKa,WAAW,GAAG,IAAIA,cAAS,GAAQ;QACnC,WAAW,GAAO,GAAG;QACrB,cAAc,GAA6B,gBAAS;IACjE;QACa,eAAe,GAAgB,cAAM,OAAA,IAAI,IAAC;QAC1C,iBAAiB,GAAe;QACzC,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;;;ICjBZ;;;QAGa,qBAAqB,GAA8B,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC;;ICDpF;;;;;;QAMa,mBAAmB,GAAG,UAC/B,IAAO,EACP,MAAc,EACd,SAAwD;QAAxD,0BAAA,EAAA,iCAAwD;QAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAA5D,EAA6D;IAE3E;;;;;;QAMa,kBAAkB,GAAG,UAC9B,IAAO,EACP,MAAc,EACd,SAAwD;QAAxD,0BAAA,EAAA,iCAAwD;QAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;IAAtD,EAAuD;IAErE;;;;;;;QAOa,4BAA4B,GAAgC,UAAC,KAAK,EAAE,KAAK;QAClF,OAAA,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAA1C,EAA2C;IAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc;QAC7C,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;IAC1F;;QCtCa,oBAAoB,GAAGC,kBAAO,CAAC,oBAAoB,EAAE;QAC9DC,qBAAU,CAAC,WAAW,EAAE;YACpBC,gBAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;YAC3BC,gBAAK,CAAC,YAAY,EAAE,CAACC,uBAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;SAC1D,CAAC;KACL;;QCPY,YAAY,GAAG,IAAI,GAAG;;ICAnC;IACA;QACa,aAAa,IAAgB,UAAC,IAAU;QACjD,OAAA,iBAAiB,IAAI,IAAI;cACnB,UAAU,CAAC,aAAa;cACxB,UAAU,CAAC,aAAa;IAF9B,CAE8B;;ICLlC;;;QAGa,mBAAmB,GAAG,SAAS;IAE5C;;;;;;;QAOa,YAAY,GAAG,SAAS;IAErC;;;;;;;QAOa,YAAY,GAAG,SAAS;IAErC;;;QAGa,UAAU,GAAG,SAAS;IAEnC;;;QAGa,UAAU,GAAG,SAAS;IAEnC;;;;;;;QAOa,WAAW,GAAG,IAAS;IAEpC;;;;;;QAMa,UAAU,GAAG,SAAS;IAEnC;;;QAGa,SAAS,GAAG,IAAS;IAElC;;;QAGa,WAAW,GAAG,SAAS;IAEpC;;;QAGa,aAAa,GAAG,SAAS;IAEtC;;;QAGa,kBAAkB,GAAG,SAAS;IAE3C;;;QAGa,qBAAqB,GAAG;;QCzExB,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/animations")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/constants",["exports","@angular/core","@angular/animations"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].cdk=t["taiga-ui"].cdk||{},t["taiga-ui"].cdk.constants={}),t.ng.core,t.ng.animations)}(this,(function(t,e,n){"use strict";var i=new e.QueryList,r=function(t){return String(t)};var o=n.trigger("tuiParentAnimation",[n.transition("* => void",[n.style({overflow:"hidden"}),n.query(":scope > *",[n.animateChild()],{optional:!0})])]);t.ALWAYS_FALSE_HANDLER=function(){return!1},t.ALWAYS_TRUE_HANDLER=function(){return!0},t.CHAR_BULLET="•",t.CHAR_CURRENCY_SIGN="¤",t.CHAR_ELLIPSIS="…",t.CHAR_EM_DASH="—",t.CHAR_EN_DASH="–",t.CHAR_HYPHEN="-",t.CHAR_LAQUO="«",t.CHAR_MINUS="−",t.CHAR_NO_BREAK_SPACE=" ",t.CHAR_PLUS="+",t.CHAR_RAQUO="»",t.CHAR_ZERO_WIDTH_SPACE="​",t.CHROMIUM_EDGE_START_VERSION=79,t.EMPTY_ARRAY=[],t.EMPTY_CLIENT_RECT={bottom:0,height:0,left:0,right:0,top:0,width:0},t.EMPTY_FUNCTION=function(){},t.EMPTY_QUERY=i,t.EMPTY_VALIDATOR=function(){return null},t.POLLING_TIME=1e3/15,t.TUI_DEFAULT_IDENTITY_MATCHER=function(t,e){return t===e||function(t,e){return Array.isArray(t)&&Array.isArray(e)&&!t.length&&!e.length}(t,e)},t.TUI_DEFAULT_MATCHER=function(t,e,n){return void 0===n&&(n=r),n(t).toLowerCase().includes(e.toLowerCase())},t.TUI_DEFAULT_STRINGIFY=r,t.TUI_PARENT_ANIMATION=o,t.TUI_STRICT_MATCHER=function(t,e,n){return void 0===n&&(n=r),n(t).toLowerCase()===e.toLowerCase()},t.TUI_VERSION="2.83.0",t.svgNodeFilter=function(t){return"ownerSVGElement"in t?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/animations")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/constants",["exports","@angular/core","@angular/animations"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].cdk=t["taiga-ui"].cdk||{},t["taiga-ui"].cdk.constants={}),t.ng.core,t.ng.animations)}(this,(function(t,e,n){"use strict";var i=new e.QueryList,r=function(t){return String(t)};var o=n.trigger("tuiParentAnimation",[n.transition("* => void",[n.style({overflow:"hidden"}),n.query(":scope > *",[n.animateChild()],{optional:!0})])]);t.ALWAYS_FALSE_HANDLER=function(){return!1},t.ALWAYS_TRUE_HANDLER=function(){return!0},t.CHAR_BULLET="•",t.CHAR_CURRENCY_SIGN="¤",t.CHAR_ELLIPSIS="…",t.CHAR_EM_DASH="—",t.CHAR_EN_DASH="–",t.CHAR_HYPHEN="-",t.CHAR_LAQUO="«",t.CHAR_MINUS="−",t.CHAR_NO_BREAK_SPACE=" ",t.CHAR_PLUS="+",t.CHAR_RAQUO="»",t.CHAR_ZERO_WIDTH_SPACE="​",t.CHROMIUM_EDGE_START_VERSION=79,t.EMPTY_ARRAY=[],t.EMPTY_CLIENT_RECT={bottom:0,height:0,left:0,right:0,top:0,width:0},t.EMPTY_FUNCTION=function(){},t.EMPTY_QUERY=i,t.EMPTY_VALIDATOR=function(){return null},t.POLLING_TIME=1e3/15,t.TUI_DEFAULT_IDENTITY_MATCHER=function(t,e){return t===e||function(t,e){return Array.isArray(t)&&Array.isArray(e)&&!t.length&&!e.length}(t,e)},t.TUI_DEFAULT_MATCHER=function(t,e,n){return void 0===n&&(n=r),n(t).toLowerCase().includes(e.toLowerCase())},t.TUI_DEFAULT_STRINGIFY=r,t.TUI_PARENT_ANIMATION=o,t.TUI_STRICT_MATCHER=function(t,e,n){return void 0===n&&(n=r),n(t).toLowerCase()===e.toLowerCase()},t.TUI_VERSION="2.84.0",t.svgNodeFilter=function(t){return"ownerSVGElement"in t?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=taiga-ui-cdk-constants.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts"],"names":["EMPTY_QUERY","QueryList","TUI_DEFAULT_STRINGIFY","item","String","TUI_PARENT_ANIMATION","trigger","transition","style","overflow","query","animateChild","optional","bottom","height","left","right","top","width","item1","item2","Array","isArray","length","bothEmpty","search","stringify","toLowerCase","includes","node","NodeFilter","FILTER_REJECT","FILTER_ACCEPT"],"mappings":"2bAQaA,EAAc,IAAIC,EAAAA,UCHlBC,EAAmD,SAAAC,GAAQ,OAAAC,OAAOD,QCHlEE,EAAuBC,EAAAA,QAAQ,qBAAsB,CAC9DC,EAAAA,WAAW,YAAa,CACpBC,EAAAA,MAAM,CAACC,SAAU,WACjBC,EAAAA,MAAM,aAAc,CAACC,EAAAA,gBAAiB,CAACC,UAAU,+BCFrB,WAAa,OAAA,yBCAd,WAAY,OAAA,iBCuDpB,yBAUO,oBALL,mBA1CD,mBATA,kBA4BD,iBAdD,iBAsBA,0BA7CS,gBAkDV,iBAtBC,4BA0CW,kCCzEM,iBNSZ,uBAIc,CACzCC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,MAAO,oBAT6C,+CAEZ,WAAM,OAAA,qBOZtB,IAAO,kCCmCsC,SAACC,EAAOC,GAC7E,OAAAD,IAAUC,GAEd,SAAmBD,EAAgBC,GAC/B,OAAOC,MAAMC,QAAQH,IAAUE,MAAMC,QAAQF,KAAWD,EAAMI,SAAWH,EAAMG,OAH5DC,CAAUL,EAAOC,0BA1BL,SAC/BjB,EACAsB,EACAC,GACU,YADV,IAAAA,IAAAA,EAAAxB,GACUwB,EAAUvB,GAAMwB,cAAcC,SAASH,EAAOE,wFAQ1B,SAC9BxB,EACAsB,EACAC,GACU,YADV,IAAAA,IAAAA,EAAAxB,GACUwB,EAAUvB,GAAMwB,gBAAkBF,EAAOE,6BC1B5B,yBCED,SAAiBE,GACvC,MAAA,oBAAqBA,EACfC,WAAWC,cACXD,WAAWE","sourcesContent":["import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 {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","/**\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 * {@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 `&minus;`. 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 CHROMIUM_EDGE_START_VERSION = 79;\n","export const POLLING_TIME = 1000 / 15;\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","export const TUI_VERSION = `2.83.0`;\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"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts"],"names":["EMPTY_QUERY","QueryList","TUI_DEFAULT_STRINGIFY","item","String","TUI_PARENT_ANIMATION","trigger","transition","style","overflow","query","animateChild","optional","bottom","height","left","right","top","width","item1","item2","Array","isArray","length","bothEmpty","search","stringify","toLowerCase","includes","node","NodeFilter","FILTER_REJECT","FILTER_ACCEPT"],"mappings":"2bAQaA,EAAc,IAAIC,EAAAA,UCHlBC,EAAmD,SAAAC,GAAQ,OAAAC,OAAOD,QCHlEE,EAAuBC,EAAAA,QAAQ,qBAAsB,CAC9DC,EAAAA,WAAW,YAAa,CACpBC,EAAAA,MAAM,CAACC,SAAU,WACjBC,EAAAA,MAAM,aAAc,CAACC,EAAAA,gBAAiB,CAACC,UAAU,+BCFrB,WAAa,OAAA,yBCAd,WAAY,OAAA,iBCuDpB,yBAUO,oBALL,mBA1CD,mBATA,kBA4BD,iBAdD,iBAsBA,0BA7CS,gBAkDV,iBAtBC,4BA0CW,kCCzEM,iBNSZ,uBAIc,CACzCC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,MAAO,oBAT6C,+CAEZ,WAAM,OAAA,qBOZtB,IAAO,kCCmCsC,SAACC,EAAOC,GAC7E,OAAAD,IAAUC,GAEd,SAAmBD,EAAgBC,GAC/B,OAAOC,MAAMC,QAAQH,IAAUE,MAAMC,QAAQF,KAAWD,EAAMI,SAAWH,EAAMG,OAH5DC,CAAUL,EAAOC,0BA1BL,SAC/BjB,EACAsB,EACAC,GACU,YADV,IAAAA,IAAAA,EAAAxB,GACUwB,EAAUvB,GAAMwB,cAAcC,SAASH,EAAOE,wFAQ1B,SAC9BxB,EACAsB,EACAC,GACU,YADV,IAAAA,IAAAA,EAAAxB,GACUwB,EAAUvB,GAAMwB,gBAAkBF,EAAOE,6BC1B5B,yBCED,SAAiBE,GACvC,MAAA,oBAAqBA,EACfC,WAAWC,cACXD,WAAWE","sourcesContent":["import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 {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","/**\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 * {@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 `&minus;`. 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 CHROMIUM_EDGE_START_VERSION = 79;\n","export const POLLING_TIME = 1000 / 15;\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","export const TUI_VERSION = `2.84.0`;\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"]}
@@ -248,7 +248,7 @@
248
248
 
249
249
  // TODO: Refactor to use this check everywhere
250
250
  function tuiIsElement(node) {
251
- return node.nodeType === Node.ELEMENT_NODE;
251
+ return !!node && "nodeType" in node && node.nodeType === Node.ELEMENT_NODE;
252
252
  }
253
253
 
254
254
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n"],"names":["clamp","isPresent","tuiAssert"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n"],"names":["clamp","isPresent","tuiAssert"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@taiga-ui/cdk/utils/math"),require("@taiga-ui/cdk/utils/miscellaneous"),require("@taiga-ui/cdk/classes")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/dom",["exports","@taiga-ui/cdk/utils/math","@taiga-ui/cdk/utils/miscellaneous","@taiga-ui/cdk/classes"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].cdk=t["taiga-ui"].cdk||{},t["taiga-ui"].cdk.utils=t["taiga-ui"].cdk.utils||{},t["taiga-ui"].cdk.utils.dom={}),t["taiga-ui"].cdk.utils.math,t["taiga-ui"].cdk.utils.miscellaneous,t["taiga-ui"].cdk.classes)}(this,(function(t,e,n,i){"use strict";function r(t,e,n,i){return n?function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollTop)>0&&!n||Math.ceil(i.scrollTop+i.clientHeight)<i.scrollHeight&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i):function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollLeft)>0&&!n||Math.ceil(i.scrollLeft+i.clientWidth)<i.scrollWidth&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i)}var o=r;function a(t,e){return t.contains(e)||!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}var l=a;function u(t){return"composedPath"in t?t.composedPath()[0]:t.target}var c=u;function s(t,e){return void 0===e&&(e="text/plain"),"clipboardData"in t&&null!==t.clipboardData?t.clipboardData.getData(e)||t.clipboardData.getData("text/plain"):t.target.ownerDocument.defaultView.clipboardData.getData("text")}var d=s;function f(t,e){var n=Element.prototype.closest;if(n)return n.call(t,e);var i=Element.prototype.matches||Element.prototype.msMatchesSelector;do{if(i.call(t,e))return t;t=t.parentElement}while(null!==t);return null}function m(t){return"getRootNode"in t&&t.isConnected?t.getRootNode():t.ownerDocument}var p=m;function g(t){var i=t.ownerDocument;if(!(null==i?void 0:i.defaultView))return null;var r=i.defaultView,o=r.innerWidth,a=r.innerHeight,l=m(t),u=t.getBoundingClientRect(),c=e.clamp(Math.round(u.left)+2,0,o),s=e.clamp(Math.round(u.top)+2,0,a),d=e.clamp(Math.round(u.right)-2,0,o),f=e.clamp(Math.round(u.bottom)-2,0,a),p=e.clamp(Math.round(u.left+u.width/2),0,o),g=e.clamp(Math.round(u.top+u.height/2),0,a),v=[l.elementFromPoint(p,s),l.elementFromPoint(p,f),l.elementFromPoint(c,g),l.elementFromPoint(d,g)].filter(n.isPresent);if(!v.length)return v;var E=v.filter((function(e){return!t.contains(e)}));return 4===E.length?E:null}var v=g;function E(t,e){i.tuiAssert.assert(t.contains(e),"Host must contain element");for(var n=e.offsetTop,r=e.offsetLeft,o=e.offsetParent;o&&o instanceof HTMLElement&&o!==t;)n+=o.offsetTop,r+=o.offsetLeft,o=o.offsetParent;return{offsetTop:n,offsetLeft:r}}var h=E;function T(t,e){return void 0===e&&(e=!0),null===t?null:e&&t.scrollHeight>t.clientHeight||!e&&t.scrollWidth>t.clientWidth?t:T(t.parentElement,e)}var b=T;function D(t){return!!t&&"value"in t&&"selectionStart"in t&&"selectionEnd"in t}function C(t){return t.target===t.currentTarget}var M=C;function N(t){return t.parent!==t}var P=N;function k(t,e){return t.nodeType===Node.TEXT_NODE?!!t.parentElement&&!!f(t.parentElement,e):t.nodeType===Node.ELEMENT_NODE&&!!f(t,e)}var O=k;t.canScroll=r,t.containsOrAfter=a,t.getActualTarget=u,t.getClipboardDataText=s,t.getClosestElement=f,t.getDocumentOrShadowRoot=m,t.getElementObscurers=g,t.getElementOffset=E,t.getScrollParent=T,t.isCurrentTarget=C,t.isInsideIframe=N,t.isNodeIn=k,t.tuiCanScroll=o,t.tuiContainsOrAfter=l,t.tuiCustomEvent=function(t,e,n){var i=void 0===e?{}:e,r=i.bubbles,o=void 0!==r&&r,a=i.cancelable,l=void 0!==a&&a,u=i.detail,c=void 0===u?null:u;if("function"==typeof CustomEvent)return new CustomEvent(t,{bubbles:o,cancelable:l,detail:c});var s=n.createEvent("CustomEvent");return s.initCustomEvent(t,o,l,c),s},t.tuiGetActualTarget=c,t.tuiGetClipboardDataText=d,t.tuiGetDocumentOrShadowRoot=p,t.tuiGetElementObscures=v,t.tuiGetElementOffset=h,t.tuiGetScrollParent=b,t.tuiGetSelectedText=function(t){var e,n=t.getSelection,i=t.document;return D(i.activeElement)?i.activeElement.value.slice(i.activeElement.selectionStart||0,i.activeElement.selectionEnd||0):(null===(e=n())||void 0===e?void 0:e.toString())||null},t.tuiIsCurrentTarget=M,t.tuiIsElement=function(t){return t.nodeType===Node.ELEMENT_NODE},t.tuiIsFormFieldElement=D,t.tuiIsInsideIframe=P,t.tuiIsNodeIn=O,t.tuiPointToClientRect=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=0),{left:t,right:t,top:e,bottom:e,width:0,height:0}},Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@taiga-ui/cdk/utils/math"),require("@taiga-ui/cdk/utils/miscellaneous"),require("@taiga-ui/cdk/classes")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/dom",["exports","@taiga-ui/cdk/utils/math","@taiga-ui/cdk/utils/miscellaneous","@taiga-ui/cdk/classes"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].cdk=t["taiga-ui"].cdk||{},t["taiga-ui"].cdk.utils=t["taiga-ui"].cdk.utils||{},t["taiga-ui"].cdk.utils.dom={}),t["taiga-ui"].cdk.utils.math,t["taiga-ui"].cdk.utils.miscellaneous,t["taiga-ui"].cdk.classes)}(this,(function(t,e,n,i){"use strict";function r(t,e,n,i){return n?function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollTop)>0&&!n||Math.ceil(i.scrollTop+i.clientHeight)<i.scrollHeight&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i):function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollLeft)>0&&!n||Math.ceil(i.scrollLeft+i.clientWidth)<i.scrollWidth&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i)}var o=r;function a(t,e){return t.contains(e)||!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}var l=a;function u(t){return"composedPath"in t?t.composedPath()[0]:t.target}var c=u;function s(t,e){return void 0===e&&(e="text/plain"),"clipboardData"in t&&null!==t.clipboardData?t.clipboardData.getData(e)||t.clipboardData.getData("text/plain"):t.target.ownerDocument.defaultView.clipboardData.getData("text")}var d=s;function f(t,e){var n=Element.prototype.closest;if(n)return n.call(t,e);var i=Element.prototype.matches||Element.prototype.msMatchesSelector;do{if(i.call(t,e))return t;t=t.parentElement}while(null!==t);return null}function m(t){return"getRootNode"in t&&t.isConnected?t.getRootNode():t.ownerDocument}var p=m;function g(t){var i=t.ownerDocument;if(!(null==i?void 0:i.defaultView))return null;var r=i.defaultView,o=r.innerWidth,a=r.innerHeight,l=m(t),u=t.getBoundingClientRect(),c=e.clamp(Math.round(u.left)+2,0,o),s=e.clamp(Math.round(u.top)+2,0,a),d=e.clamp(Math.round(u.right)-2,0,o),f=e.clamp(Math.round(u.bottom)-2,0,a),p=e.clamp(Math.round(u.left+u.width/2),0,o),g=e.clamp(Math.round(u.top+u.height/2),0,a),v=[l.elementFromPoint(p,s),l.elementFromPoint(p,f),l.elementFromPoint(c,g),l.elementFromPoint(d,g)].filter(n.isPresent);if(!v.length)return v;var E=v.filter((function(e){return!t.contains(e)}));return 4===E.length?E:null}var v=g;function E(t,e){i.tuiAssert.assert(t.contains(e),"Host must contain element");for(var n=e.offsetTop,r=e.offsetLeft,o=e.offsetParent;o&&o instanceof HTMLElement&&o!==t;)n+=o.offsetTop,r+=o.offsetLeft,o=o.offsetParent;return{offsetTop:n,offsetLeft:r}}var h=E;function T(t,e){return void 0===e&&(e=!0),null===t?null:e&&t.scrollHeight>t.clientHeight||!e&&t.scrollWidth>t.clientWidth?t:T(t.parentElement,e)}var b=T;function D(t){return!!t&&"value"in t&&"selectionStart"in t&&"selectionEnd"in t}function C(t){return t.target===t.currentTarget}var M=C;function N(t){return t.parent!==t}var P=N;function k(t,e){return t.nodeType===Node.TEXT_NODE?!!t.parentElement&&!!f(t.parentElement,e):t.nodeType===Node.ELEMENT_NODE&&!!f(t,e)}var O=k;t.canScroll=r,t.containsOrAfter=a,t.getActualTarget=u,t.getClipboardDataText=s,t.getClosestElement=f,t.getDocumentOrShadowRoot=m,t.getElementObscurers=g,t.getElementOffset=E,t.getScrollParent=T,t.isCurrentTarget=C,t.isInsideIframe=N,t.isNodeIn=k,t.tuiCanScroll=o,t.tuiContainsOrAfter=l,t.tuiCustomEvent=function(t,e,n){var i=void 0===e?{}:e,r=i.bubbles,o=void 0!==r&&r,a=i.cancelable,l=void 0!==a&&a,u=i.detail,c=void 0===u?null:u;if("function"==typeof CustomEvent)return new CustomEvent(t,{bubbles:o,cancelable:l,detail:c});var s=n.createEvent("CustomEvent");return s.initCustomEvent(t,o,l,c),s},t.tuiGetActualTarget=c,t.tuiGetClipboardDataText=d,t.tuiGetDocumentOrShadowRoot=p,t.tuiGetElementObscures=v,t.tuiGetElementOffset=h,t.tuiGetScrollParent=b,t.tuiGetSelectedText=function(t){var e,n=t.getSelection,i=t.document;return D(i.activeElement)?i.activeElement.value.slice(i.activeElement.selectionStart||0,i.activeElement.selectionEnd||0):(null===(e=n())||void 0===e?void 0:e.toString())||null},t.tuiIsCurrentTarget=M,t.tuiIsElement=function(t){return!!t&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE},t.tuiIsFormFieldElement=D,t.tuiIsInsideIframe=P,t.tuiIsNodeIn=O,t.tuiPointToClientRect=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=0),{left:t,right:t,top:e,bottom:e,width:0,height:0}},Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=taiga-ui-cdk-utils-dom.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts"],"names":["canScroll","element","rootElement","vertical","scrollEnd","currentElement","parentElement","Math","floor","scrollTop","ceil","clientHeight","scrollHeight","canScrollVertical","scrollLeft","clientWidth","scrollWidth","canScrollHorizontal","tuiCanScroll","containsOrAfter","current","node","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","tuiContainsOrAfter","getActualTarget","event","composedPath","target","tuiGetActualTarget","getClipboardDataText","format","clipboardData","getData","ownerDocument","defaultView","tuiGetClipboardDataText","getClosestElement","selector","closest","Element","prototype","call","matchesSelector","matches","msMatchesSelector","getDocumentOrShadowRoot","isConnected","getRootNode","tuiGetDocumentOrShadowRoot","getElementObscurers","_a","innerWidth","innerHeight","documentRef","rect","getBoundingClientRect","left","clamp","round","top","right","bottom","horizontalMiddle","width","verticalMiddle","height","nonNull","elementFromPoint","filter","isPresent","length","filtered","el","tuiGetElementObscures","getElementOffset","host","tuiAssert","assert","offsetTop","offsetLeft","offsetParent","HTMLElement","tuiGetElementOffset","getScrollParent","tuiGetScrollParent","tuiIsFormFieldElement","isCurrentTarget","currentTarget","tuiIsCurrentTarget","isInsideIframe","windowRef","parent","tuiIsInsideIframe","isNodeIn","nodeType","TEXT_NODE","ELEMENT_NODE","tuiIsNodeIn","name","_b","_c","bubbles","_d","cancelable","_e","detail","CustomEvent","customEvent","createEvent","initCustomEvent","getSelection","document","activeElement","value","slice","selectionStart","selectionEnd","toString","x","y"],"mappings":"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","sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts"],"names":["canScroll","element","rootElement","vertical","scrollEnd","currentElement","parentElement","Math","floor","scrollTop","ceil","clientHeight","scrollHeight","canScrollVertical","scrollLeft","clientWidth","scrollWidth","canScrollHorizontal","tuiCanScroll","containsOrAfter","current","node","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","tuiContainsOrAfter","getActualTarget","event","composedPath","target","tuiGetActualTarget","getClipboardDataText","format","clipboardData","getData","ownerDocument","defaultView","tuiGetClipboardDataText","getClosestElement","selector","closest","Element","prototype","call","matchesSelector","matches","msMatchesSelector","getDocumentOrShadowRoot","isConnected","getRootNode","tuiGetDocumentOrShadowRoot","getElementObscurers","_a","innerWidth","innerHeight","documentRef","rect","getBoundingClientRect","left","clamp","round","top","right","bottom","horizontalMiddle","width","verticalMiddle","height","nonNull","elementFromPoint","filter","isPresent","length","filtered","el","tuiGetElementObscures","getElementOffset","host","tuiAssert","assert","offsetTop","offsetLeft","offsetParent","HTMLElement","tuiGetElementOffset","getScrollParent","tuiGetScrollParent","tuiIsFormFieldElement","isCurrentTarget","currentTarget","tuiIsCurrentTarget","isInsideIframe","windowRef","parent","tuiIsInsideIframe","isNodeIn","nodeType","TEXT_NODE","ELEMENT_NODE","tuiIsNodeIn","name","_b","_c","bubbles","_d","cancelable","_e","detail","CustomEvent","customEvent","createEvent","initCustomEvent","getSelection","document","activeElement","value","slice","selectionStart","selectionEnd","toString","x","y"],"mappings":"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","sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ALWAYS_FALSE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":36,"module":"./always-false-handler"},"ALWAYS_TRUE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":35,"module":"./always-true-handler"},"CHROMIUM_EDGE_START_VERSION":79,"EMPTY_QUERY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"QueryList","line":8,"character":31}},"EMPTY_ARRAY":[],"EMPTY_FUNCTION":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":56,"module":"./empty"},"EMPTY_VALIDATOR":{"__symbolic":"error","message":"Lambda not supported","line":12,"character":44,"module":"./empty"},"EMPTY_CLIENT_RECT":{"bottom":0,"height":0,"left":0,"right":0,"top":0,"width":0},"TUI_DEFAULT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":35,"module":"./matcher"},"TUI_STRICT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":34,"module":"./matcher"},"TUI_DEFAULT_IDENTITY_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":35,"character":73,"module":"./matcher"},"TUI_PARENT_ANIMATION":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":2,"character":36},"arguments":["tuiParentAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":3,"character":4},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":4,"character":8},"arguments":[{"overflow":"hidden"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":5,"character":8},"arguments":[":scope > *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animateChild","line":5,"character":29}}],{"optional":true}]}]]}]]},"POLLING_TIME":66.66666666666667,"TUI_DEFAULT_STRINGIFY":{"__symbolic":"error","message":"Lambda not supported","line":5,"character":64,"module":"./stringify"},"svgNodeFilter":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":42,"module":"./svg-node-filter"},"CHAR_NO_BREAK_SPACE":" ","CHAR_EN_DASH":"–","CHAR_EM_DASH":"—","CHAR_LAQUO":"«","CHAR_RAQUO":"»","CHAR_HYPHEN":"-","CHAR_MINUS":"−","CHAR_PLUS":"+","CHAR_BULLET":"•","CHAR_ELLIPSIS":"…","CHAR_CURRENCY_SIGN":"¤","CHAR_ZERO_WIDTH_SPACE":"​","TUI_VERSION":"2.83.0"},"origins":{"ALWAYS_FALSE_HANDLER":"./always-false-handler","ALWAYS_TRUE_HANDLER":"./always-true-handler","CHROMIUM_EDGE_START_VERSION":"./browser","EMPTY_QUERY":"./empty","EMPTY_ARRAY":"./empty","EMPTY_FUNCTION":"./empty","EMPTY_VALIDATOR":"./empty","EMPTY_CLIENT_RECT":"./empty","TUI_DEFAULT_MATCHER":"./matcher","TUI_STRICT_MATCHER":"./matcher","TUI_DEFAULT_IDENTITY_MATCHER":"./matcher","TUI_PARENT_ANIMATION":"./parent-animation","POLLING_TIME":"./polling-time","TUI_DEFAULT_STRINGIFY":"./stringify","svgNodeFilter":"./svg-node-filter","CHAR_NO_BREAK_SPACE":"./unicode-chars","CHAR_EN_DASH":"./unicode-chars","CHAR_EM_DASH":"./unicode-chars","CHAR_LAQUO":"./unicode-chars","CHAR_RAQUO":"./unicode-chars","CHAR_HYPHEN":"./unicode-chars","CHAR_MINUS":"./unicode-chars","CHAR_PLUS":"./unicode-chars","CHAR_BULLET":"./unicode-chars","CHAR_ELLIPSIS":"./unicode-chars","CHAR_CURRENCY_SIGN":"./unicode-chars","CHAR_ZERO_WIDTH_SPACE":"./unicode-chars","TUI_VERSION":"./version"},"importAs":"@taiga-ui/cdk/constants"}
1
+ {"__symbolic":"module","version":4,"metadata":{"ALWAYS_FALSE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":36,"module":"./always-false-handler"},"ALWAYS_TRUE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":35,"module":"./always-true-handler"},"CHROMIUM_EDGE_START_VERSION":79,"EMPTY_QUERY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"QueryList","line":8,"character":31}},"EMPTY_ARRAY":[],"EMPTY_FUNCTION":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":56,"module":"./empty"},"EMPTY_VALIDATOR":{"__symbolic":"error","message":"Lambda not supported","line":12,"character":44,"module":"./empty"},"EMPTY_CLIENT_RECT":{"bottom":0,"height":0,"left":0,"right":0,"top":0,"width":0},"TUI_DEFAULT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":35,"module":"./matcher"},"TUI_STRICT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":34,"module":"./matcher"},"TUI_DEFAULT_IDENTITY_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":35,"character":73,"module":"./matcher"},"TUI_PARENT_ANIMATION":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":2,"character":36},"arguments":["tuiParentAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":3,"character":4},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":4,"character":8},"arguments":[{"overflow":"hidden"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":5,"character":8},"arguments":[":scope > *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animateChild","line":5,"character":29}}],{"optional":true}]}]]}]]},"POLLING_TIME":66.66666666666667,"TUI_DEFAULT_STRINGIFY":{"__symbolic":"error","message":"Lambda not supported","line":5,"character":64,"module":"./stringify"},"svgNodeFilter":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":42,"module":"./svg-node-filter"},"CHAR_NO_BREAK_SPACE":" ","CHAR_EN_DASH":"–","CHAR_EM_DASH":"—","CHAR_LAQUO":"«","CHAR_RAQUO":"»","CHAR_HYPHEN":"-","CHAR_MINUS":"−","CHAR_PLUS":"+","CHAR_BULLET":"•","CHAR_ELLIPSIS":"…","CHAR_CURRENCY_SIGN":"¤","CHAR_ZERO_WIDTH_SPACE":"​","TUI_VERSION":"2.84.0"},"origins":{"ALWAYS_FALSE_HANDLER":"./always-false-handler","ALWAYS_TRUE_HANDLER":"./always-true-handler","CHROMIUM_EDGE_START_VERSION":"./browser","EMPTY_QUERY":"./empty","EMPTY_ARRAY":"./empty","EMPTY_FUNCTION":"./empty","EMPTY_VALIDATOR":"./empty","EMPTY_CLIENT_RECT":"./empty","TUI_DEFAULT_MATCHER":"./matcher","TUI_STRICT_MATCHER":"./matcher","TUI_DEFAULT_IDENTITY_MATCHER":"./matcher","TUI_PARENT_ANIMATION":"./parent-animation","POLLING_TIME":"./polling-time","TUI_DEFAULT_STRINGIFY":"./stringify","svgNodeFilter":"./svg-node-filter","CHAR_NO_BREAK_SPACE":"./unicode-chars","CHAR_EN_DASH":"./unicode-chars","CHAR_EM_DASH":"./unicode-chars","CHAR_LAQUO":"./unicode-chars","CHAR_RAQUO":"./unicode-chars","CHAR_HYPHEN":"./unicode-chars","CHAR_MINUS":"./unicode-chars","CHAR_PLUS":"./unicode-chars","CHAR_BULLET":"./unicode-chars","CHAR_ELLIPSIS":"./unicode-chars","CHAR_CURRENCY_SIGN":"./unicode-chars","CHAR_ZERO_WIDTH_SPACE":"./unicode-chars","TUI_VERSION":"./version"},"importAs":"@taiga-ui/cdk/constants"}
@@ -1 +1 @@
1
- export declare const TUI_VERSION = "2.83.0";
1
+ export declare const TUI_VERSION = "2.84.0";
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TUI_VERSION = `2.83.0`;
3
+ exports.TUI_VERSION = `2.84.0`;
@@ -1,2 +1,2 @@
1
- export const TUI_VERSION = `2.83.0`;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gYDIuODMuMGA7XG4iXX0=
1
+ export const TUI_VERSION = `2.84.0`;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gYDIuODQuMGA7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  // TODO: Refactor to use this check everywhere
2
2
  export function tuiIsElement(node) {
3
- return node.nodeType === Node.ELEMENT_NODE;
3
+ return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFVO0lBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KG5vZGU6IE5vZGUpOiBub2RlIGlzIEVsZW1lbnQge1xuICAgIHJldHVybiBub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERTtcbn1cbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FDeEIsSUFBMEM7SUFFMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KFxuICAgIG5vZGU/OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBOb2RlIHwgbnVsbCxcbik6IG5vZGUgaXMgRWxlbWVudCB7XG4gICAgcmV0dXJuICEhbm9kZSAmJiBgbm9kZVR5cGVgIGluIG5vZGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREU7XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- export var TUI_VERSION = "2.83.0";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gYDIuODMuMGA7XG4iXX0=
1
+ export var TUI_VERSION = "2.84.0";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gYDIuODQuMGA7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  // TODO: Refactor to use this check everywhere
2
2
  export function tuiIsElement(node) {
3
- return node.nodeType === Node.ELEMENT_NODE;
3
+ return !!node && "nodeType" in node && node.nodeType === Node.ELEMENT_NODE;
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFVO0lBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KG5vZGU6IE5vZGUpOiBub2RlIGlzIEVsZW1lbnQge1xuICAgIHJldHVybiBub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERTtcbn1cbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FDeEIsSUFBMEM7SUFFMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KFxuICAgIG5vZGU/OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBOb2RlIHwgbnVsbCxcbik6IG5vZGUgaXMgRWxlbWVudCB7XG4gICAgcmV0dXJuICEhbm9kZSAmJiBgbm9kZVR5cGVgIGluIG5vZGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREU7XG59XG4iXX0=
@@ -142,7 +142,7 @@ const CHAR_CURRENCY_SIGN = `\u00A4`;
142
142
  */
143
143
  const CHAR_ZERO_WIDTH_SPACE = `\u200B`;
144
144
 
145
- const TUI_VERSION = `2.83.0`;
145
+ const TUI_VERSION = `2.84.0`;
146
146
 
147
147
  /**
148
148
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/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","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 `&minus;`. 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 = `2.83.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;MAGa,oBAAoB,GAAG,MAAa;;ACHjD;;;MAGa,mBAAmB,GAAG,MAAY;;MCHlC,2BAA2B,GAAG;;ACG3C;;;;;MAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;MACnC,WAAW,GAAO,GAAG;MACrB,cAAc,GAA6B,UAAS;AACjE;MACa,eAAe,GAAgB,MAAM,KAAK;MAC1C,iBAAiB,GAAe;IACzC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;;;ACjBZ;;;MAGa,qBAAqB,GAA8B,IAAI,IAAI,MAAM,CAAC,IAAI;;ACDnF;;;;;;MAMa,mBAAmB,GAAG,CAC/B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAE3E;;;;;;MAMa,kBAAkB,GAAG,CAC9B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,GAAG;AAErE;;;;;;;MAOa,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;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;;MCtCa,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;CACL;;MCPY,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;MACa,aAAa,IAAgB,CAAC,IAAU,KACjD,iBAAiB,IAAI,IAAI;MACnB,UAAU,CAAC,aAAa;MACxB,UAAU,CAAC,aAAa;;ACLlC;;;MAGa,mBAAmB,GAAG,SAAS;AAE5C;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;;;;;MAOa,WAAW,GAAG,SAAS;AAEpC;;;;;;MAMa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,SAAS,GAAG,SAAS;AAElC;;;MAGa,WAAW,GAAG,SAAS;AAEpC;;;MAGa,aAAa,GAAG,SAAS;AAEtC;;;MAGa,kBAAkB,GAAG,SAAS;AAE3C;;;MAGa,qBAAqB,GAAG;;MCzExB,WAAW,GAAG;;ACA3B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/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","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 `&minus;`. 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 = `2.84.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;MAGa,oBAAoB,GAAG,MAAa;;ACHjD;;;MAGa,mBAAmB,GAAG,MAAY;;MCHlC,2BAA2B,GAAG;;ACG3C;;;;;MAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;MACnC,WAAW,GAAO,GAAG;MACrB,cAAc,GAA6B,UAAS;AACjE;MACa,eAAe,GAAgB,MAAM,KAAK;MAC1C,iBAAiB,GAAe;IACzC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;;;ACjBZ;;;MAGa,qBAAqB,GAA8B,IAAI,IAAI,MAAM,CAAC,IAAI;;ACDnF;;;;;;MAMa,mBAAmB,GAAG,CAC/B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAE3E;;;;;;MAMa,kBAAkB,GAAG,CAC9B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,GAAG;AAErE;;;;;;;MAOa,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;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;;MCtCa,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;CACL;;MCPY,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;MACa,aAAa,IAAgB,CAAC,IAAU,KACjD,iBAAiB,IAAI,IAAI;MACnB,UAAU,CAAC,aAAa;MACxB,UAAU,CAAC,aAAa;;ACLlC;;;MAGa,mBAAmB,GAAG,SAAS;AAE5C;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;;;;;MAOa,WAAW,GAAG,SAAS;AAEpC;;;;;;MAMa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,SAAS,GAAG,SAAS;AAElC;;;MAGa,WAAW,GAAG,SAAS;AAEpC;;;MAGa,aAAa,GAAG,SAAS;AAEtC;;;MAGa,kBAAkB,GAAG,SAAS;AAE3C;;;MAGa,qBAAqB,GAAG;;MCzExB,WAAW,GAAG;;ACA3B;;;;;;"}
@@ -241,7 +241,7 @@ const tuiIsCurrentTarget = isCurrentTarget;
241
241
 
242
242
  // TODO: Refactor to use this check everywhere
243
243
  function tuiIsElement(node) {
244
- return node.nodeType === Node.ELEMENT_NODE;
244
+ return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;
245
245
  }
246
246
 
247
247
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -152,7 +152,7 @@ var CHAR_CURRENCY_SIGN = "\u00A4";
152
152
  */
153
153
  var CHAR_ZERO_WIDTH_SPACE = "\u200B";
154
154
 
155
- var TUI_VERSION = "2.83.0";
155
+ var TUI_VERSION = "2.84.0";
156
156
 
157
157
  /**
158
158
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/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","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 `&minus;`. 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 = `2.83.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;IAGa,oBAAoB,GAAG,cAAa,OAAA,KAAK;;ACHtD;;;IAGa,mBAAmB,GAAG,cAAY,OAAA,IAAI;;ICHtC,2BAA2B,GAAG;;ACG3C;;;;;IAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;IACnC,WAAW,GAAO,GAAG;IACrB,cAAc,GAA6B,gBAAS;AACjE;IACa,eAAe,GAAgB,cAAM,OAAA,IAAI,IAAC;IAC1C,iBAAiB,GAAe;IACzC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;;;ACjBZ;;;IAGa,qBAAqB,GAA8B,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC;;ACDpF;;;;;;IAMa,mBAAmB,GAAG,UAC/B,IAAO,EACP,MAAc,EACd,SAAwD;IAAxD,0BAAA,EAAA,iCAAwD;IAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAA5D,EAA6D;AAE3E;;;;;;IAMa,kBAAkB,GAAG,UAC9B,IAAO,EACP,MAAc,EACd,SAAwD;IAAxD,0BAAA,EAAA,iCAAwD;IAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;AAAtD,EAAuD;AAErE;;;;;;;IAOa,4BAA4B,GAAgC,UAAC,KAAK,EAAE,KAAK;IAClF,OAAA,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;AAA1C,EAA2C;AAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc;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;;ICtCa,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;CACL;;ICPY,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;IACa,aAAa,IAAgB,UAAC,IAAU;IACjD,OAAA,iBAAiB,IAAI,IAAI;UACnB,UAAU,CAAC,aAAa;UACxB,UAAU,CAAC,aAAa;AAF9B,CAE8B;;ACLlC;;;IAGa,mBAAmB,GAAG,SAAS;AAE5C;;;;;;;IAOa,YAAY,GAAG,SAAS;AAErC;;;;;;;IAOa,YAAY,GAAG,SAAS;AAErC;;;IAGa,UAAU,GAAG,SAAS;AAEnC;;;IAGa,UAAU,GAAG,SAAS;AAEnC;;;;;;;IAOa,WAAW,GAAG,IAAS;AAEpC;;;;;;IAMa,UAAU,GAAG,SAAS;AAEnC;;;IAGa,SAAS,GAAG,IAAS;AAElC;;;IAGa,WAAW,GAAG,SAAS;AAEpC;;;IAGa,aAAa,GAAG,SAAS;AAEtC;;;IAGa,kBAAkB,GAAG,SAAS;AAE3C;;;IAGa,qBAAqB,GAAG;;ICzExB,WAAW,GAAG;;ACA3B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/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","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\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 = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\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 `&minus;`. 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 = `2.84.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;IAGa,oBAAoB,GAAG,cAAa,OAAA,KAAK;;ACHtD;;;IAGa,mBAAmB,GAAG,cAAY,OAAA,IAAI;;ICHtC,2BAA2B,GAAG;;ACG3C;;;;;IAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;IACnC,WAAW,GAAO,GAAG;IACrB,cAAc,GAA6B,gBAAS;AACjE;IACa,eAAe,GAAgB,cAAM,OAAA,IAAI,IAAC;IAC1C,iBAAiB,GAAe;IACzC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;;;ACjBZ;;;IAGa,qBAAqB,GAA8B,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC;;ACDpF;;;;;;IAMa,mBAAmB,GAAG,UAC/B,IAAO,EACP,MAAc,EACd,SAAwD;IAAxD,0BAAA,EAAA,iCAAwD;IAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAA5D,EAA6D;AAE3E;;;;;;IAMa,kBAAkB,GAAG,UAC9B,IAAO,EACP,MAAc,EACd,SAAwD;IAAxD,0BAAA,EAAA,iCAAwD;IAC9C,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;AAAtD,EAAuD;AAErE;;;;;;;IAOa,4BAA4B,GAAgC,UAAC,KAAK,EAAE,KAAK;IAClF,OAAA,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;AAA1C,EAA2C;AAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc;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;;ICtCa,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;CACL;;ICPY,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;IACa,aAAa,IAAgB,UAAC,IAAU;IACjD,OAAA,iBAAiB,IAAI,IAAI;UACnB,UAAU,CAAC,aAAa;UACxB,UAAU,CAAC,aAAa;AAF9B,CAE8B;;ACLlC;;;IAGa,mBAAmB,GAAG,SAAS;AAE5C;;;;;;;IAOa,YAAY,GAAG,SAAS;AAErC;;;;;;;IAOa,YAAY,GAAG,SAAS;AAErC;;;IAGa,UAAU,GAAG,SAAS;AAEnC;;;IAGa,UAAU,GAAG,SAAS;AAEnC;;;;;;;IAOa,WAAW,GAAG,IAAS;AAEpC;;;;;;IAMa,UAAU,GAAG,SAAS;AAEnC;;;IAGa,SAAS,GAAG,IAAS;AAElC;;;IAGa,WAAW,GAAG,SAAS;AAEpC;;;IAGa,aAAa,GAAG,SAAS;AAEtC;;;IAGa,kBAAkB,GAAG,SAAS;AAE3C;;;IAGa,qBAAqB,GAAG;;ICzExB,WAAW,GAAG;;ACA3B;;;;;;"}
@@ -246,7 +246,7 @@ var tuiIsCurrentTarget = isCurrentTarget;
246
246
 
247
247
  // TODO: Refactor to use this check everywhere
248
248
  function tuiIsElement(node) {
249
- return node.nodeType === Node.ELEMENT_NODE;
249
+ return !!node && "nodeType" in node && node.nodeType === Node.ELEMENT_NODE;
250
250
  }
251
251
 
252
252
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-element.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === `function`) {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent(`CustomEvent`);\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if (`composedPath` in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n element = element.parentElement as Element;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n `value` in textfield &&\n `selectionStart` in textfield &&\n `selectionEnd` in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","// TODO: Refactor to use this check everywhere\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "2.83.0",
3
+ "version": "2.84.0",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -1 +1 @@
1
- export declare function tuiIsElement(node: Node): node is Element;
1
+ export declare function tuiIsElement(node?: Element | EventTarget | Node | null): node is Element;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"canScroll":{"__symbolic":"function","parameters":["element","rootElement","vertical","scrollEnd"],"value":{"__symbolic":"if","condition":{"__symbolic":"reference","name":"vertical"},"thenExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":17,"character":9,"context":{"name":"canScrollVertical"},"module":"./can-scroll"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":44,"character":9,"context":{"name":"canScrollHorizontal"},"module":"./can-scroll"}}},"tuiCanScroll":{"__symbolic":"reference","name":"canScroll"},"containsOrAfter":{"__symbolic":"function","parameters":["current","node"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"current"},"member":"contains"},"arguments":[{"__symbolic":"reference","name":"node"}]},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"binop","operator":"&","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"compareDocumentPosition"},"arguments":[{"__symbolic":"reference","name":"current"}]},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"DOCUMENT_POSITION_PRECEDING"}}}}}},"tuiContainsOrAfter":{"__symbolic":"reference","name":"containsOrAfter"},"tuiCustomEvent":{"__symbolic":"function"},"getActualTarget":{"__symbolic":"function"},"tuiGetActualTarget":{"__symbolic":"reference","name":"getActualTarget"},"getClipboardDataText":{"__symbolic":"function","parameters":["event","format"],"defaults":[null,"text/plain"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"in","left":"clipboardData","right":{"__symbolic":"reference","name":"event"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"clipboardData"},"right":null}},"thenExpression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"clipboardData"},"member":"getData"},"arguments":[{"__symbolic":"reference","name":"format"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"clipboardData"},"member":"getData"},"arguments":["text/plain"]}},"elseExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"target"},"member":"ownerDocument"},"member":"defaultView"},"member":"clipboardData"},"member":"getData"},"arguments":["text"]}}},"tuiGetClipboardDataText":{"__symbolic":"reference","name":"getClipboardDataText"},"getClosestElement":{"__symbolic":"function"},"getDocumentOrShadowRoot":{"__symbolic":"function","parameters":["node"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"in","left":"getRootNode","right":{"__symbolic":"reference","name":"node"}},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"isConnected"}},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"getRootNode"}},"elseExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"ownerDocument"}}},"tuiGetDocumentOrShadowRoot":{"__symbolic":"reference","name":"getDocumentOrShadowRoot"},"getElementObscurers":{"__symbolic":"function"},"tuiGetElementObscures":{"__symbolic":"reference","name":"getElementObscurers"},"getElementOffset":{"__symbolic":"function"},"tuiGetElementOffset":{"__symbolic":"reference","name":"getElementOffset"},"getScrollParent":{"__symbolic":"function"},"tuiGetScrollParent":{"__symbolic":"reference","name":"getScrollParent"},"tuiGetSelectedText":{"__symbolic":"function","parameters":["getSelection","document"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"tuiIsFormFieldElement"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"}]},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"},"member":"value"},"member":"slice"},"arguments":[{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"},"member":"selectionStart"},"right":0},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"},"member":"selectionEnd"},"right":0}]},"elseExpression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getSelection"}},"member":"toString"}},"right":null}}},"isCurrentTarget":{"__symbolic":"function","parameters":["target","currentTarget"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"target"},"right":{"__symbolic":"reference","name":"currentTarget"}}},"tuiIsCurrentTarget":{"__symbolic":"reference","name":"isCurrentTarget"},"tuiIsElement":{"__symbolic":"function","parameters":["node"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"nodeType"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"ELEMENT_NODE"}}},"tuiIsFormFieldElement":{"__symbolic":"function"},"isInsideIframe":{"__symbolic":"function","parameters":["windowRef"],"value":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"windowRef"},"member":"parent"},"right":{"__symbolic":"reference","name":"windowRef"}}},"tuiIsInsideIframe":{"__symbolic":"reference","name":"isInsideIframe"},"isNodeIn":{"__symbolic":"function","parameters":["node","selector"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"nodeType"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"TEXT_NODE"}},"thenExpression":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"parentElement"}}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getClosestElement"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"parentElement"},{"__symbolic":"reference","name":"selector"}]}}}},"elseExpression":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"nodeType"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"ELEMENT_NODE"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getClosestElement"},"arguments":[{"__symbolic":"reference","name":"node"},{"__symbolic":"reference","name":"selector"}]}}}}}},"tuiIsNodeIn":{"__symbolic":"reference","name":"isNodeIn"},"tuiPointToClientRect":{"__symbolic":"function","parameters":["x","y"],"defaults":[0,0],"value":{"left":{"__symbolic":"reference","name":"x"},"right":{"__symbolic":"reference","name":"x"},"top":{"__symbolic":"reference","name":"y"},"bottom":{"__symbolic":"reference","name":"y"},"width":0,"height":0}}},"origins":{"canScroll":"./can-scroll","tuiCanScroll":"./can-scroll","containsOrAfter":"./contains-or-after","tuiContainsOrAfter":"./contains-or-after","tuiCustomEvent":"./custom-event","getActualTarget":"./get-actual-target","tuiGetActualTarget":"./get-actual-target","getClipboardDataText":"./get-clipboard-data-text","tuiGetClipboardDataText":"./get-clipboard-data-text","getClosestElement":"./get-closest-element","getDocumentOrShadowRoot":"./get-document-or-shadow-root","tuiGetDocumentOrShadowRoot":"./get-document-or-shadow-root","getElementObscurers":"./get-element-obscurers","tuiGetElementObscures":"./get-element-obscurers","getElementOffset":"./get-element-offset","tuiGetElementOffset":"./get-element-offset","getScrollParent":"./get-scroll-parent","tuiGetScrollParent":"./get-scroll-parent","tuiGetSelectedText":"./get-selected-text","isCurrentTarget":"./is-current-target","tuiIsCurrentTarget":"./is-current-target","tuiIsElement":"./is-element","tuiIsFormFieldElement":"./is-form-field","isInsideIframe":"./is-inside-iframe","tuiIsInsideIframe":"./is-inside-iframe","isNodeIn":"./is-node-in","tuiIsNodeIn":"./is-node-in","tuiPointToClientRect":"./point-to-client-rect"},"importAs":"@taiga-ui/cdk/utils/dom"}
1
+ {"__symbolic":"module","version":4,"metadata":{"canScroll":{"__symbolic":"function","parameters":["element","rootElement","vertical","scrollEnd"],"value":{"__symbolic":"if","condition":{"__symbolic":"reference","name":"vertical"},"thenExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":17,"character":9,"context":{"name":"canScrollVertical"},"module":"./can-scroll"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":44,"character":9,"context":{"name":"canScrollHorizontal"},"module":"./can-scroll"}}},"tuiCanScroll":{"__symbolic":"reference","name":"canScroll"},"containsOrAfter":{"__symbolic":"function","parameters":["current","node"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"current"},"member":"contains"},"arguments":[{"__symbolic":"reference","name":"node"}]},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"binop","operator":"&","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"compareDocumentPosition"},"arguments":[{"__symbolic":"reference","name":"current"}]},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"DOCUMENT_POSITION_PRECEDING"}}}}}},"tuiContainsOrAfter":{"__symbolic":"reference","name":"containsOrAfter"},"tuiCustomEvent":{"__symbolic":"function"},"getActualTarget":{"__symbolic":"function"},"tuiGetActualTarget":{"__symbolic":"reference","name":"getActualTarget"},"getClipboardDataText":{"__symbolic":"function","parameters":["event","format"],"defaults":[null,"text/plain"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"in","left":"clipboardData","right":{"__symbolic":"reference","name":"event"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"clipboardData"},"right":null}},"thenExpression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"clipboardData"},"member":"getData"},"arguments":[{"__symbolic":"reference","name":"format"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"clipboardData"},"member":"getData"},"arguments":["text/plain"]}},"elseExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"target"},"member":"ownerDocument"},"member":"defaultView"},"member":"clipboardData"},"member":"getData"},"arguments":["text"]}}},"tuiGetClipboardDataText":{"__symbolic":"reference","name":"getClipboardDataText"},"getClosestElement":{"__symbolic":"function"},"getDocumentOrShadowRoot":{"__symbolic":"function","parameters":["node"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"in","left":"getRootNode","right":{"__symbolic":"reference","name":"node"}},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"isConnected"}},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"getRootNode"}},"elseExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"ownerDocument"}}},"tuiGetDocumentOrShadowRoot":{"__symbolic":"reference","name":"getDocumentOrShadowRoot"},"getElementObscurers":{"__symbolic":"function"},"tuiGetElementObscures":{"__symbolic":"reference","name":"getElementObscurers"},"getElementOffset":{"__symbolic":"function"},"tuiGetElementOffset":{"__symbolic":"reference","name":"getElementOffset"},"getScrollParent":{"__symbolic":"function"},"tuiGetScrollParent":{"__symbolic":"reference","name":"getScrollParent"},"tuiGetSelectedText":{"__symbolic":"function","parameters":["getSelection","document"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"tuiIsFormFieldElement"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"}]},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"},"member":"value"},"member":"slice"},"arguments":[{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"},"member":"selectionStart"},"right":0},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"activeElement"},"member":"selectionEnd"},"right":0}]},"elseExpression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getSelection"}},"member":"toString"}},"right":null}}},"isCurrentTarget":{"__symbolic":"function","parameters":["target","currentTarget"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"target"},"right":{"__symbolic":"reference","name":"currentTarget"}}},"tuiIsCurrentTarget":{"__symbolic":"reference","name":"isCurrentTarget"},"tuiIsElement":{"__symbolic":"function","parameters":["node"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"reference","name":"node"}}},"right":{"__symbolic":"binop","operator":"in","left":"nodeType","right":{"__symbolic":"reference","name":"node"}}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"nodeType"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"ELEMENT_NODE"}}}},"tuiIsFormFieldElement":{"__symbolic":"function"},"isInsideIframe":{"__symbolic":"function","parameters":["windowRef"],"value":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"windowRef"},"member":"parent"},"right":{"__symbolic":"reference","name":"windowRef"}}},"tuiIsInsideIframe":{"__symbolic":"reference","name":"isInsideIframe"},"isNodeIn":{"__symbolic":"function","parameters":["node","selector"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"nodeType"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"TEXT_NODE"}},"thenExpression":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"parentElement"}}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getClosestElement"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"parentElement"},{"__symbolic":"reference","name":"selector"}]}}}},"elseExpression":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"node"},"member":"nodeType"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Node"},"member":"ELEMENT_NODE"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getClosestElement"},"arguments":[{"__symbolic":"reference","name":"node"},{"__symbolic":"reference","name":"selector"}]}}}}}},"tuiIsNodeIn":{"__symbolic":"reference","name":"isNodeIn"},"tuiPointToClientRect":{"__symbolic":"function","parameters":["x","y"],"defaults":[0,0],"value":{"left":{"__symbolic":"reference","name":"x"},"right":{"__symbolic":"reference","name":"x"},"top":{"__symbolic":"reference","name":"y"},"bottom":{"__symbolic":"reference","name":"y"},"width":0,"height":0}}},"origins":{"canScroll":"./can-scroll","tuiCanScroll":"./can-scroll","containsOrAfter":"./contains-or-after","tuiContainsOrAfter":"./contains-or-after","tuiCustomEvent":"./custom-event","getActualTarget":"./get-actual-target","tuiGetActualTarget":"./get-actual-target","getClipboardDataText":"./get-clipboard-data-text","tuiGetClipboardDataText":"./get-clipboard-data-text","getClosestElement":"./get-closest-element","getDocumentOrShadowRoot":"./get-document-or-shadow-root","tuiGetDocumentOrShadowRoot":"./get-document-or-shadow-root","getElementObscurers":"./get-element-obscurers","tuiGetElementObscures":"./get-element-obscurers","getElementOffset":"./get-element-offset","tuiGetElementOffset":"./get-element-offset","getScrollParent":"./get-scroll-parent","tuiGetScrollParent":"./get-scroll-parent","tuiGetSelectedText":"./get-selected-text","isCurrentTarget":"./is-current-target","tuiIsCurrentTarget":"./is-current-target","tuiIsElement":"./is-element","tuiIsFormFieldElement":"./is-form-field","isInsideIframe":"./is-inside-iframe","tuiIsInsideIframe":"./is-inside-iframe","isNodeIn":"./is-node-in","tuiIsNodeIn":"./is-node-in","tuiPointToClientRect":"./point-to-client-rect"},"importAs":"@taiga-ui/cdk/utils/dom"}