@fundamental-ngx/cdk 0.40.2-rc.9 → 0.40.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/utils/services/resize-observer.service.mjs +2 -2
- package/esm2020/utils/utils.module.mjs +14 -8
- package/fesm2015/fundamental-ngx-cdk-utils.mjs +13 -7
- package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-cdk-utils.mjs +13 -7
- package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fundamental-ngx-cdk-v0.40.2.tgz +0 -0
- package/package.json +3 -3
- package/utils/utils.module.d.ts +2 -1
- package/fundamental-ngx-cdk-v0.40.2-rc.9.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-cdk-utils.mjs","sources":["../../../../libs/cdk/src/lib/utils/services/rtl.service.ts","../../../../libs/cdk/src/lib/utils/consts/error-messages.ts","../../../../libs/cdk/src/lib/utils/consts/unicode-letters.regex.ts","../../../../libs/cdk/src/lib/utils/consts/unicode-numbers.regex.ts","../../../../libs/cdk/src/lib/utils/consts/overflow-priority-score.ts","../../../../libs/cdk/src/lib/utils/services/themes.service.ts","../../../../libs/cdk/src/lib/utils/functions/key-util.ts","../../../../libs/cdk/src/lib/utils/deprecated-selector.class.ts","../../../../libs/cdk/src/lib/utils/directives/auto-complete/auto-complete.directive.ts","../../../../libs/cdk/src/lib/utils/directives/auto-complete/auto-complete.module.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager.tokens.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager-helpers.module.ts","../../../../libs/cdk/src/lib/utils/directives/ignore-click-on-selection/tokens.ts","../../../../libs/cdk/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.ts","../../../../libs/cdk/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.ts","../../../../libs/cdk/src/lib/utils/services/tabbable-element.service.ts","../../../../libs/cdk/src/lib/utils/directives/initial-focus/initial-focus.directive.ts","../../../../libs/cdk/src/lib/utils/directives/initial-focus/initial-focus.module.ts","../../../../libs/cdk/src/lib/utils/directives/line-clamp/line-clamp.directive.ts","../../../../libs/cdk/src/lib/utils/directives/line-clamp/line-clamp.module.ts","../../../../libs/cdk/src/lib/utils/functions/element-size.ts","../../../../libs/cdk/src/lib/utils/functions/uuidv4-generator.ts","../../../../libs/cdk/src/lib/utils/functions/parser-file-size.ts","../../../../libs/cdk/src/lib/utils/functions/scroll.ts","../../../../libs/cdk/src/lib/utils/functions/random-color-accent.ts","../../../../libs/cdk/src/lib/utils/functions/resize-observable.ts","../../../../libs/cdk/src/lib/utils/functions/intersection-observable.ts","../../../../libs/cdk/src/lib/utils/functions/is-compact-density.ts","../../../../libs/cdk/src/lib/utils/tokens/module-deprecations.token.ts","../../../../libs/cdk/src/lib/utils/functions/module-deprecations-provider.ts","../../../../libs/cdk/src/lib/utils/functions/consumer-provider-factory.ts","../../../../libs/cdk/src/lib/utils/functions/get-document-font-size.ts","../../../../libs/cdk/src/lib/utils/functions/is-odd.ts","../../../../libs/cdk/src/lib/utils/directives/only-digits/only-digits.directive.ts","../../../../libs/cdk/src/lib/utils/directives/only-digits/only-digits.module.ts","../../../../libs/cdk/src/lib/utils/directives/overflow-list/overflow-list-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/overflow-list/overflow-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/overflow-list/overflow-list.module.ts","../../../../libs/cdk/src/lib/utils/directives/repeat/repeat.directive.ts","../../../../libs/cdk/src/lib/utils/directives/repeat/repeat.module.ts","../../../../libs/cdk/src/lib/utils/directives/resize/resize-handle.directive.ts","../../../../libs/cdk/src/lib/utils/directives/resize/resize.directive.ts","../../../../libs/cdk/src/lib/utils/directives/resize/resize.module.ts","../../../../libs/cdk/src/lib/utils/directives/template/template.directive.ts","../../../../libs/cdk/src/lib/utils/directives/template/template.module.ts","../../../../libs/cdk/src/lib/utils/directives/truncate/truncate.directive.ts","../../../../libs/cdk/src/lib/utils/directives/truncate/truncate.module.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable-item.tokens.ts","../../../../libs/cdk/src/lib/utils/services/content-density.service.ts","../../../../libs/cdk/src/lib/utils/services/destroyed.service.ts","../../../../libs/cdk/src/lib/utils/services/focus-trap.service.ts","../../../../libs/cdk/src/lib/utils/services/keyboard-support/keyboard-support.service.ts","../../../../libs/cdk/src/lib/utils/services/local-storage.service.ts","../../../../libs/cdk/src/lib/utils/services/resize-observer.service.ts","../../../../libs/cdk/src/lib/utils/helpers/get-native-element.ts","../../../../libs/cdk/src/lib/utils/services/observers/attribute.observer.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/is-element-focusable-by-default.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/disabled.observer.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable.observer.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable-item.module.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/focusable-list.tokens.ts","../../../../libs/cdk/src/lib/utils/typecheck.ts","../../../../libs/cdk/src/lib/utils/helpers/range-selector.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/scroll.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/focusable-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/focusable-list.module.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-grid/focusable-grid.tokens.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-grid/focusable-grid.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-grid/focusable-grid.module.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/fdk-readonly.token.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/set-readonly-state.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/readonly-behavior.directive.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/readonly-behavior.module.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/readonly.observer.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/default-readonly-view-modifier.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/fdk-readonly-provider.service.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/set-disabled-state.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/fdk-disabled.token.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/clicked.directive.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/clicked-event.plugin.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/clicked-behavior.module.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/fdk-clicked-provider.service.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/disabled-behavior.directive.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/disabled-behavior.module.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/default-disabled-view-modifier.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/fdk-disabled-provider.service.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selection.service.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/select-component-root.token.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-item.token.ts","../../../../libs/cdk/src/lib/utils/decorators/setter-alternator.ts","../../../../libs/cdk/src/lib/utils/decorators/coerce-boolean.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-list.tokens.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-list.module.ts","../../../../libs/cdk/src/lib/utils/tokens/viewport-size.observable.ts","../../../../libs/cdk/src/lib/utils/directives/breakpoints/responsive-breakpoints.ts","../../../../libs/cdk/src/lib/utils/directives/breakpoints/breakpoint.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/tokens.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-list/dnd-list.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-item/dnd-item.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/drag-and-drop.module.ts","../../../../libs/cdk/src/lib/utils/utils.module.ts","../../../../libs/cdk/src/lib/utils/coercion/array.ts","../../../../libs/cdk/src/lib/utils/interfaces/has-element-ref.interface.ts","../../../../libs/cdk/src/lib/utils/decorators/apply-css-class.decorator.ts","../../../../libs/cdk/src/lib/utils/decorators/apply-css-style.decorator.ts","../../../../libs/cdk/src/lib/utils/decorators/coerce-css-pixel.ts","../../../../libs/cdk/src/lib/utils/dynamic-component/dynamic-component-container.ts","../../../../libs/cdk/src/lib/utils/dynamic-component/dynamic-component-injector.ts","../../../../libs/cdk/src/lib/utils/dynamic-component/dynamic-component.service.ts","../../../../libs/cdk/src/lib/utils/list-item/list-item-utils.ts","../../../../libs/cdk/src/lib/utils/abstract-fd-ngx-class.ts","../../../../libs/cdk/src/lib/utils/pipes/displayFn.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/filter-strings.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/is-compact.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/async-or-sync.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/search-highlight.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/two-digits.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/safe.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/value-by-path.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/truncate.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/make-async.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/pipe.module.ts","../../../../libs/cdk/src/lib/utils/fundamental-ngx-cdk-utils.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\nimport { Optional, Injectable, Inject, InjectionToken } from '@angular/core';\n\nconst DefaultRtlLanguages = ['ar', 'arc', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ku', 'ps', 'ur', 'yi'];\nexport const RTL_LANGUAGE = new InjectionToken<string[]>('RtlLanguage');\n\n@Injectable()\n/**\n * Service taking care of RTL trough behavior subject\n * language list is used to determine if rtl should be enabled at start\n * user can overwrite default languages by using injection token RtlLanguageToken\n */\nexport class RtlService {\n /** RTL value */\n rtl: BehaviorSubject<boolean>;\n\n /** @hidden */\n constructor(@Optional() @Inject(RTL_LANGUAGE) injectedRtlLanguages: string[]) {\n injectedRtlLanguages = injectedRtlLanguages || DefaultRtlLanguages;\n\n const filtered = injectedRtlLanguages.filter((language) => navigator.language.includes(language));\n\n this.rtl = new BehaviorSubject(filtered.length > 0);\n }\n}\n","export const MOBILE_CONFIG_ERROR = `Missing configuration object for mobile version of the component.\n Consult the documentation on how to provide MobileModeConfiguration object for this component.\n`;\n\nexport const THEME_SWITCHER_ROUTER_MISSING_ERROR = `You need to import RouterModule to enable theme settings via the url.`;\n\nexport const INVALID_DATE_ERROR = 'Invalid Date';\n","/**\n * Instead of `/\\p{L}/u` because of it's not working in IE11 and Edge\n * - https://github.com/Microsoft/ChakraCore/issues/2969\n * */\n// eslint-disable-next-line max-len\nexport const LETTERS_UNICODE_RANGE = `[A-Za-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]`;\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_REGEX = new RegExp(LETTERS_UNICODE_RANGE, 'g');\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_GROUP_REGEX = new RegExp(`(${LETTERS_UNICODE_RANGE})+`, 'g');\n","/**\n * Polyfill for `/\\p{Nd}/u` to work in IE11 and Edge\n */\n// eslint-disable-next-line max-len\nexport const DECIMAL_NUMBER_UNICODE_RANGE = `[0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]`;\nexport const DECIMAL_NUMBER_UNICODE_REGEX = new RegExp(DECIMAL_NUMBER_UNICODE_RANGE, 'g');\nexport const DECIMAL_NUMBER_UNICODE_GROUP_REGEX = new RegExp(`(${DECIMAL_NUMBER_UNICODE_RANGE})+`, 'g');\n","export type OverflowPriority = 'always' | 'never' | 'low' | 'high' | 'disappear';\n\nexport const OVERFLOW_PRIORITY_SCORE: Map<OverflowPriority, number> = new Map([\n ['always', 0],\n ['disappear', 1],\n ['low', 2],\n ['high', 3],\n ['never', 4]\n]);\n","import { Injectable, isDevMode, Optional } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '../consts';\n\nexport interface ThemeServiceOutput {\n themeUrl: SafeResourceUrl;\n customThemeUrl: SafeResourceUrl;\n}\n\nexport interface Theme {\n id: string;\n name: string;\n description?: string;\n}\n\n@Injectable()\n/**\n * @deprecated\n * Service providing theme switcher functionality.\n * Deprecated since 0.35.0 in favor of ThemingService from ThemingModule\n */\nexport class ThemesService {\n /** Available themes */\n themes: Theme[] = [\n {\n id: 'sap_horizon',\n name: 'Morning Horizon (Light)'\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon (Dark)'\n },\n {\n id: 'sap_horizon_hcb',\n name: 'Horizon High Contrast Black',\n description: 'Optimized contrast and accessibiliwty for extremely bright environments'\n },\n {\n id: 'sap_horizon_hcw',\n name: 'Horizon High Contrast White Horizon',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3',\n name: 'Quartz Light',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Quartz Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'Quartz High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'Quartz High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Quartz Auto (Depending on the OS Settings)'\n }\n ];\n\n /** Subject triggered, when the theming is changed by URL parameter */\n readonly onThemeQueryParamChange: Subject<ThemeServiceOutput> = new Subject<ThemeServiceOutput>();\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private _activatedRoute: ActivatedRoute, private _sanitizer: DomSanitizer) {}\n\n /**\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n * By default it's `theme`.\n **/\n setThemeByRoute(themeParamName?: string): void {\n const paramName = themeParamName || 'theme';\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this._propagateThemes(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (nativeTheme) {\n this._propagateThemes(nativeTheme);\n }\n }\n\n /** Method to get once theme object directly from url. */\n getThemesFromURL(param?: string): ThemeServiceOutput | undefined {\n const paramName = param || 'theme';\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (!nativeTheme && isDevMode()) {\n console.warn('There is no theme param set named: ' + param);\n return;\n }\n\n return {\n themeUrl: this.setTheme(nativeTheme),\n customThemeUrl: this.setCustomTheme(nativeTheme)\n };\n }\n\n /** Assign css file corresponding to chosen theme from @sap-theming **/\n setTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/theming-base/' + theme + '/css_variables.css');\n }\n\n /** Assign css file corresponding to chosen theme fundamental-styles **/\n setCustomTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/fundamental-styles-theming/' + theme + '.css');\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /** @hidden */\n private _propagateThemes(theme: string): void {\n this.onThemeQueryParamChange.next({\n themeUrl: this.setTheme(theme),\n customThemeUrl: this.setCustomTheme(theme)\n });\n }\n}\n","import { isDevMode } from '@angular/core';\nimport {\n A,\n ALT,\n BACKSPACE,\n C,\n CONTROL,\n DASH,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n MAC_ENTER,\n ESCAPE,\n F2,\n HOME,\n LEFT_ARROW,\n META,\n NUMPAD_EIGHT,\n NUMPAD_FIVE,\n NUMPAD_FOUR,\n NUMPAD_MINUS,\n NUMPAD_NINE,\n NUMPAD_ONE,\n NUMPAD_SEVEN,\n NUMPAD_SIX,\n NUMPAD_THREE,\n NUMPAD_TWO,\n NUMPAD_ZERO,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW,\n V,\n X\n} from '@angular/cdk/keycodes';\n\n/** Map of keyCodes and their corresponding \"key\" values */\nconst keyMap: Map<number, string[]> = new Map([\n [RIGHT_ARROW, ['ArrowRight', 'Right']],\n [DOWN_ARROW, ['ArrowDown', 'Down']],\n [LEFT_ARROW, ['ArrowLeft', 'Left']],\n [UP_ARROW, ['ArrowUp', 'Up']],\n [SPACE, ['Space', 'Spacebar', ' ']],\n [ESCAPE, ['Escape', 'Esc']],\n [DELETE, ['Delete', 'Del']],\n [ENTER, ['Enter']],\n [MAC_ENTER, ['Enter']],\n [TAB, ['Tab']],\n [HOME, ['Home']],\n [END, ['End']],\n [ALT, ['Alt']],\n [CONTROL, ['Ctrl', 'Control', 'Meta']],\n [META, ['Meta']],\n [SHIFT, ['Shift']],\n [BACKSPACE, ['Backspace']],\n [A, ['KeyA']],\n [C, ['KeyC']],\n [V, ['KeyV']],\n [X, ['KeyX']],\n [PAGE_UP, ['PageUp']],\n [PAGE_DOWN, ['PageDown']],\n [DASH, ['-']],\n [NUMPAD_MINUS, ['-']],\n [NUMPAD_ZERO, ['NumPad0']],\n [NUMPAD_ONE, ['NumPad1']],\n [NUMPAD_TWO, ['NumPad2']],\n [NUMPAD_THREE, ['NumPad3']],\n [NUMPAD_FOUR, ['NumPad4']],\n [NUMPAD_FIVE, ['NumPad5']],\n [NUMPAD_SIX, ['NumPad6']],\n [NUMPAD_SEVEN, ['NumPad7']],\n [NUMPAD_EIGHT, ['NumPad8']],\n [NUMPAD_NINE, ['NumPad9']],\n [F2, ['F2']]\n]);\n\nexport class KeyUtil {\n /**\n * Function used to unify key identification across different browsers using KeyCodes\n *\n * @param event - KeyboardEvent\n * @param keyCode - event.key name matching W3C specification / (ASSCI char. codes)\n * */\n static isKeyCode(event: KeyboardEvent, keyCode: number | number[]): boolean {\n if (Array.isArray(keyCode)) {\n return keyCode.some((key) => this.isKeyCode(event, key));\n }\n\n if (event && keyMap.get(keyCode)) {\n return keyMap.get(keyCode)?.some((alias) => alias === event.key) || keyCode === event.keyCode;\n }\n\n if (isDevMode()) {\n throw new Error(\n `Invalid function arguments. Check if \"event\" is a KeyboardEvent or \"key\" is defined in keyMap`\n );\n }\n\n return false;\n }\n\n /**\n * Function used to unify key identification across different browsers\n *\n * @param event - KeyboardEvent\n * @param keyType - Type of key\n * */\n static isKeyType(event: KeyboardEvent, keyType: 'alphabetical' | 'numeric' | 'control'): boolean {\n if (event && keyType) {\n switch (keyType) {\n case 'numeric':\n return event.code\n ? event.code.toLowerCase().includes('digit')\n : (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105);\n case 'alphabetical':\n return event.code\n ? event.code.toLowerCase().includes('key')\n : event.keyCode >= 65 && event.keyCode <= 90;\n // some service commands as alt, ctr, insert, print, f4 etc. All except letters, numbers and symbols\n case 'control':\n return event.keyCode < 48 || (event.keyCode >= 112 && event.keyCode <= 123);\n }\n }\n\n if (isDevMode()) {\n throw new Error(`Invalid function arguments.`);\n }\n\n return false;\n }\n}\n","import { inject, InjectionToken, isDevMode } from '@angular/core';\n\nexport interface DeprecatedSelectorModel {\n deprecated: string;\n current: string;\n}\n\n/** @hidden */\nexport function getDeprecatedModel(current: string, deprecated: string): DeprecatedSelectorModel {\n return {\n current,\n deprecated\n };\n}\n\nexport const FD_DEPRECATED_DIRECTIVE_SELECTOR = new InjectionToken<DeprecatedSelectorModel>(\n 'FdDeprecatedDirectiveSelector'\n);\n\nexport abstract class DeprecatedSelector {\n /** @hidden */\n protected _selectors: DeprecatedSelectorModel | null = inject(FD_DEPRECATED_DIRECTIVE_SELECTOR, { optional: true });\n /** @hidden */\n constructor() {\n if (isDevMode() && this._selectors) {\n console.warn(\n `${this._selectors.deprecated} selector(s) are deprecated and may affect input properties. Use ${this._selectors.current} instead.`\n );\n }\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BACKSPACE, CONTROL, DELETE, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { KeyUtil } from '../../functions/key-util';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\nexport interface AutoCompleteEvent {\n term: string;\n forceClose: boolean;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdAutoComplete], [fd-auto-complete]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkAutoComplete]', '[fdAutoComplete], [fd-auto-complete]')\n }\n ]\n})\nexport class DeprecatedAutoCompleteDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkAutoComplete], [fdAutoComplete], [fd-auto-complete]',\n standalone: true\n})\nexport class AutoCompleteDirective {\n /** Values that will fill missing text in the input. */\n @Input()\n options: any[];\n\n /**\n * Input text, that is taken from ngModel of formControl,\n * there has to be difference between native input value and model value\n */\n @Input()\n inputText: string;\n\n /** Whether the auto complete directive should be enabled */\n @Input()\n enable = true;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /** Event thrown, when the auto ahead text is accepted */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onComplete: EventEmitter<AutoCompleteEvent> = new EventEmitter<AutoCompleteEvent>();\n\n /** @hidden */\n private readonly _completeKeys: number[] = [ENTER];\n\n /** @hidden */\n private readonly _fillKeys: number[] = [LEFT_ARROW, RIGHT_ARROW];\n\n /** @hidden */\n private readonly _stopKeys: number[] = [BACKSPACE, DELETE, ESCAPE];\n\n /** @hidden */\n private oldValue: string;\n\n /** @hidden */\n private lastKeyUpEvent: KeyboardEvent;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (this.enable) {\n if (KeyUtil.isKeyCode(event, this._stopKeys)) {\n this._elementRef.nativeElement.value = this.inputText;\n } else if (KeyUtil.isKeyCode(event, this._completeKeys)) {\n this._sendCompleteEvent(true);\n this._moveIndicatorToLastCharacter();\n } else if (KeyUtil.isKeyCode(event, this._fillKeys)) {\n this._sendCompleteEvent(false);\n } else if (!this._isControlKey(event) && this.inputText) {\n /** Prevention from triggering typeahead, when having crtl/cmd + keys */\n if (!this._triggerTypeAhead()) {\n return;\n }\n\n this.oldValue = this.inputText;\n\n const item = this.options.find((option) =>\n this.displayFn(option).toLocaleLowerCase().startsWith(this.inputText.toLocaleLowerCase())\n );\n\n if (item) {\n this._typeahead(this.displayFn(item));\n }\n }\n }\n this.lastKeyUpEvent = event;\n }\n\n /** @hidden */\n private _typeahead(displayedValue: string): void {\n this._elementRef.nativeElement.value = displayedValue;\n const selectionStartIndex = this.inputText.length;\n this._elementRef.nativeElement.setSelectionRange(selectionStartIndex, displayedValue.length);\n }\n\n /** @hidden */\n private _isControlKey(event: KeyboardEvent): boolean {\n return KeyUtil.isKeyCode(event, CONTROL) || event.ctrlKey;\n }\n\n /** @hidden */\n private _defaultDisplay(value: any): string {\n return value;\n }\n\n /** @hidden */\n private _triggerTypeAhead(): boolean {\n if (\n this.lastKeyUpEvent &&\n KeyUtil.isKeyCode(this.lastKeyUpEvent, CONTROL) &&\n this.inputText === this.oldValue\n ) {\n return false;\n } else {\n return true;\n }\n }\n\n /** @hidden */\n private _sendCompleteEvent(forceClose: boolean): void {\n this.onComplete.emit({\n term: this._elementRef.nativeElement.value,\n forceClose\n });\n }\n\n /** @hidden */\n private _moveIndicatorToLastCharacter(): void {\n const inputTextLength = this.inputText?.length ?? 0;\n this._elementRef.nativeElement.setSelectionRange(inputTextLength, inputTextLength);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AutoCompleteDirective, DeprecatedAutoCompleteDirective } from './auto-complete.directive';\n\n@NgModule({\n imports: [AutoCompleteDirective, DeprecatedAutoCompleteDirective],\n exports: [AutoCompleteDirective, DeprecatedAutoCompleteDirective],\n declarations: []\n})\nexport class AutoCompleteModule {}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { InjectionToken } from '@angular/core';\n\nexport const FOCUSABLE_ITEM = new InjectionToken<FocusableOption>('Focusable Option');\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n QueryList,\n SimpleChanges\n} from '@angular/core';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { RtlService } from '../../services/rtl.service';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-focus-key-manager-list], [fdFocusKeyManagerList]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel(\n '[fdkFocusKeyManagerList]',\n '[fd-focus-key-manager-list], [fdFocusKeyManagerList]'\n )\n }\n ]\n})\nexport class DeprecatedFocusKeyManagerListDirective extends DeprecatedSelector {}\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: `[fdkFocusKeyManagerList], [fd-focus-key-manager-list], [fdFocusKeyManagerList]`,\n standalone: true\n})\nexport class FocusKeyManagerListDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Orientation for the FocusKeyManager */\n @Input()\n orientation: 'horizontal' | 'vertical';\n\n /** Skip predicate for the FocusKeyManager */\n @Input()\n skipPredicate: (item: Record<any, any> & FocusableOption) => boolean;\n\n /** @hidden */\n @ContentChildren(FOCUSABLE_ITEM)\n readonly _items: QueryList<FocusableOption>;\n\n /** @hidden */\n get focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._focusKeyManager;\n }\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<FocusableOption>;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private readonly _rtlService: RtlService, private readonly _cdr: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._focusKeyManager) {\n return;\n }\n\n if ('orientation' in changes) {\n this._applyOrientation();\n }\n\n if ('skiPredicate' in changes) {\n this._focusKeyManager.skipPredicate(this.skipPredicate);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._focusKeyManager = new FocusKeyManager<FocusableOption>(this._items).skipPredicate(this.skipPredicate);\n\n this._applyOrientation();\n\n this._cdr.detectChanges();\n\n this._rtlService?.rtl\n .pipe(\n filter(() => this.orientation === 'horizontal'),\n takeUntil(this._onDestroy$)\n )\n .subscribe(() => this._applyOrientation());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._focusKeyManager.destroy();\n }\n\n /** Focus certain list's item */\n focusItem(item: number | FocusableOption): any {\n if (typeof item === 'number') {\n this._focusKeyManager.setActiveItem(item);\n } else {\n this._focusKeyManager.setActiveItem(item);\n }\n }\n\n /** @hidden */\n private _applyOrientation(): void {\n switch (this.orientation) {\n case 'horizontal':\n this._focusKeyManager.withHorizontalOrientation(this._rtlService?.rtl.value ? 'rtl' : 'ltr');\n break;\n case 'vertical':\n this._focusKeyManager.withVerticalOrientation(true);\n break;\n }\n }\n}\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, forwardRef, HostBinding, HostListener, Input } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-focus-key-manager-item], [fdFocusKeyManagerItem]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel(\n '[fdkFocusKeyManagerItem]',\n '[fd-focus-key-manager-item], [fdFocusKeyManagerItem]'\n )\n }\n ]\n})\nexport class DeprecatedFocusKeyManagerItemDirective extends DeprecatedSelector {}\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: '[fdkFocusKeyManagerItem], [fd-focus-key-manager-item], [fdFocusKeyManagerItem]',\n standalone: true,\n providers: [{ provide: FOCUSABLE_ITEM, useExisting: forwardRef(() => FocusKeyManagerItemDirective) }]\n})\nexport class FocusKeyManagerItemDirective implements FocusableOption {\n /** Whether item should be initially focused */\n @Input()\n set initialFocus(value: BooleanInput) {\n this._initialFocus = coerceBooleanProperty(value);\n }\n\n /** @hidden */\n @Input()\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n if (this._initialFocus) {\n return 0;\n }\n\n return this.nativeElement?.tabIndex ?? -1;\n }\n\n /** @hidden */\n private _initialFocus = false;\n\n /** Native element of the item */\n get nativeElement(): any {\n return this._elRef?.nativeElement;\n }\n\n /** @hidden */\n private get _focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._list.focusKeyManager;\n }\n\n /** @hidden */\n constructor(private readonly _list: FocusKeyManagerListDirective, private readonly _elRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n // For cases where initially selected item doesn't have 0 index\n this._focusKeyManager?.updateActiveItem(this);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n this._focusKeyManager?.onKeydown(event);\n }\n\n /** Focus current item native element */\n focus(): void {\n this._elRef?.nativeElement.focus();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n FocusKeyManagerItemDirective,\n DeprecatedFocusKeyManagerItemDirective\n} from './focus-key-manager-item.directive';\nimport {\n DeprecatedFocusKeyManagerListDirective,\n FocusKeyManagerListDirective\n} from './focus-key-manager-list.directive';\n\n@NgModule({\n imports: [\n FocusKeyManagerItemDirective,\n FocusKeyManagerListDirective,\n DeprecatedFocusKeyManagerItemDirective,\n DeprecatedFocusKeyManagerListDirective\n ],\n exports: [\n FocusKeyManagerItemDirective,\n FocusKeyManagerListDirective,\n DeprecatedFocusKeyManagerItemDirective,\n DeprecatedFocusKeyManagerListDirective\n ]\n})\nexport class FocusKeyManagerHelpersModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const IgnoreClickOnSelectionDirectiveToken = new InjectionToken('Ignore click on selection directive');\n","import { Directive, ElementRef, HostListener, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IgnoreClickOnSelectionDirectiveToken } from './tokens';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdIgnoreClickOnSelection]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkIgnoreClickOnSelection]', '[fdIgnoreClickOnSelection]')\n }\n ]\n})\nexport class DeprecatedIgnoreClickOnSelectionDirective extends DeprecatedSelector {}\n\n/**\n * Directive will stop propagation and prevent default of click, if selected area is coming from\n * directive's host element. This gives ability to not cancel all clicks on element, just the ones\n * which include selection\n */\n@Directive({\n selector: '[fdkIgnoreClickOnSelection], [fdIgnoreClickOnSelection]',\n standalone: true,\n providers: [\n {\n provide: IgnoreClickOnSelectionDirectiveToken,\n useExisting: IgnoreClickOnSelectionDirective\n }\n ]\n})\nexport class IgnoreClickOnSelectionDirective {\n /** @hidden */\n constructor(@Inject(DOCUMENT) private document: Document, private _elementRef: ElementRef<HTMLElement>) {}\n\n /** Host click listener. Checks for selection existence and if finds one, checks anchor */\n @HostListener('click', ['$event'])\n clicked($event: MouseEvent): void {\n const selection = this.document.getSelection();\n if (selection?.toString()) {\n if (\n selection.anchorNode &&\n (this._elementRef.nativeElement.isSameNode(selection.anchorNode) ||\n this._elementRef.nativeElement.isSameNode(selection.anchorNode.parentElement))\n ) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n IgnoreClickOnSelectionDirective,\n DeprecatedIgnoreClickOnSelectionDirective\n} from './ignore-click-on-selection.directive';\n\n@NgModule({\n imports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective],\n exports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective]\n})\nexport class IgnoreClickOnSelectionModule {}\n","import { InteractivityChecker } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class TabbableElementService {\n /** @hidden */\n constructor(\n private readonly _checker: InteractivityChecker,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n getTabbableElement(root: HTMLElement, focusLastElement = false, skipSelf = false): HTMLElement | null {\n if (!skipSelf && this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n\n // Iterate in DOM order. Note that IE doesn't have `children` for SVG, so we fall\n // back to `childNodes` which includes text nodes, comments etc.\n const rootChildren = root.children || root.childNodes;\n\n const children = focusLastElement ? Array.from(rootChildren).reverse() : rootChildren;\n\n for (let i = 0; i < children.length; i++) {\n const tabbableChild =\n children[i].nodeType === this._document?.ELEMENT_NODE\n ? this.getTabbableElement(children[i] as HTMLElement, focusLastElement)\n : null;\n\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n\n return null;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { TabbableElementService } from '../../services/tabbable-element.service';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdInitialFocus], [fd-initial-focus]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')\n }\n ]\n})\nexport class DeprecatedInitialFocusDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]',\n standalone: true,\n providers: [\n TabbableElementService,\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')\n }\n ]\n})\nexport class InitialFocusDirective implements AfterViewInit {\n /**\n * CSS selector of element that should be focused.\n */\n @Input('fd-initial-focus')\n focusableItem = '.fd-initial-focus-item';\n\n /**\n * Whether initial focus enabled for current element.\n */\n @Input()\n enabled = true;\n\n /**\n * Whether to focus last element in found array of elements.\n */\n @Input()\n focusLastElement = false;\n\n /** @hidden */\n constructor(\n private _elmRef: ElementRef<HTMLElement>,\n private _ngZone: NgZone,\n private readonly _tabbableService: TabbableElementService\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._executeOnEmpty(() => this._focus());\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnEmpty(fn: () => any): void {\n if (!this._ngZone.hasPendingMicrotasks) {\n fn();\n } else {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(fn);\n }\n }\n\n /**\n * @hidden\n * Searches for appropriate focusable element\n */\n private _getFocusableElement(): HTMLElement | null {\n if (!this.focusableItem) {\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n const autoFocusableItems = this._elmRef.nativeElement.querySelectorAll(\n this.focusableItem\n ) as NodeListOf<HTMLElement>;\n\n if (autoFocusableItems.length > 0) {\n return !this.focusLastElement ? autoFocusableItems[0] : autoFocusableItems[autoFocusableItems.length - 1];\n }\n\n // If no elements found, fallback to first tabbable element.\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n /** @hidden */\n private _focus(): void {\n if (!this.enabled) {\n return;\n }\n this._getFocusableElement()?.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { InitialFocusDirective, DeprecatedInitialFocusDirective } from './initial-focus.directive';\n\n@NgModule({\n imports: [InitialFocusDirective, DeprecatedInitialFocusDirective],\n exports: [InitialFocusDirective, DeprecatedInitialFocusDirective]\n})\nexport class InitialFocusModule {}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n AfterViewInit,\n OnDestroy,\n OnChanges,\n Output,\n Renderer2,\n ChangeDetectorRef\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { Nullable } from '../../models/nullable';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdLineClampTarget], [fd-lineclamp-target]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClampTarget], [fd-lineclamp-target]')\n }\n ]\n})\nexport class DeprecatedLineClampTargetDirective extends DeprecatedSelector {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdLineClamp], [fd-lineclamp]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClamp], [fd-lineclamp]')\n }\n ]\n})\nexport class DeprecatedLineClampDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkLineClampTarget], [fdLineClampTarget], [fd-lineclamp-target]',\n exportAs: 'fdLineClampTarget',\n standalone: true\n})\nexport class LineClampTargetDirective implements OnChanges, AfterViewInit {\n /**\n * Target text for clamping\n */\n @Input()\n fdLineClampTargetText: string;\n\n /**\n * Event with target instance for clamping\n */\n @Output() update = new EventEmitter<LineClampTargetDirective>();\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Native element of clamping target\n */\n get targetElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.update.emit(this);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.update.emit(this);\n }\n}\n\n@Directive({\n selector: '[fdkLineClamp], [fdLineClamp], [fd-lineclamp]',\n exportAs: 'fdLineClamp',\n standalone: true\n})\nexport class LineClampDirective implements OnChanges, AfterViewInit, OnDestroy {\n /**\n * Count lines for clamping\n */\n @Input()\n set fdLineClampLines(value: Nullable<number>) {\n this._lineCount = coerceNumberProperty(value);\n }\n\n /**\n * Clamping state\n */\n @Input()\n fdLineclampState = false;\n\n /**\n * Event return count of lines from the target\n */\n @Output()\n lineCountUpdate = new EventEmitter<number>();\n\n /** @hidden */\n private _lineClampTarget: HTMLElement;\n /** @hidden */\n private _originalText: string;\n /** @hidden */\n private windowResize$: Subscription;\n /** @hidden */\n private _isNativeSupport = true;\n /** @hidden */\n private _lineCount: number;\n\n /** @hidden */\n /**\n * Root native element of clamping box\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _renderer: Renderer2,\n private readonly _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._isNativeSupport = typeof this.rootElement.style.webkitLineClamp !== 'undefined';\n\n // need to use setTimeout to force recheck of parent elements\n setTimeout(() => {\n this._checkLineCount();\n });\n\n this.windowResize$ = fromEvent(window, 'resize')\n .pipe(distinctUntilChanged(), debounceTime(200))\n .subscribe({\n next: () => this._checkLineCount()\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.windowResize$) {\n this.windowResize$.unsubscribe();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.reset();\n this.refreshClamp();\n }\n\n /** @hidden */\n reset(): void {\n if (this._lineClampTarget && this._originalText) {\n this._lineClampTarget.textContent = this._originalText;\n }\n if (this._isNativeSupport) {\n this._resetNative();\n }\n }\n\n /** @hidden */\n refreshTarget(event: LineClampTargetDirective): void {\n this._lineClampTarget = event.targetElement;\n this._originalText = event.fdLineClampTargetText;\n this._checkLineCount();\n }\n\n /** @hidden */\n refreshClamp(): void {\n if (this.fdLineclampState && this._lineCount) {\n this.native();\n if (!this._isNativeSupport) {\n this._truncate();\n }\n }\n }\n\n /** @hidden\n * Truncate text in the target box, if browser not support lineclamp style\n */\n private _truncate(): void {\n if (!this._lineClampTarget) {\n return;\n }\n const lineClampHeight = Math.ceil(this.getLineHeight() * this._lineCount);\n const ellipsisTextArray = this._originalText.split(' ');\n const ellipsisText = (): void => {\n if (this.rootElement.scrollHeight > lineClampHeight) {\n ellipsisTextArray.pop();\n this._lineClampTarget.textContent = ellipsisTextArray.join(' ') + '...';\n ellipsisText.call(this);\n }\n };\n ellipsisText();\n }\n\n /** @hidden\n * Get lineheight for rootelement, if browser not support lineclamp style\n */\n private getLineHeight(): number {\n const lineHeight = window.getComputedStyle(this.rootElement, null).getPropertyValue('line-height');\n if (lineHeight === 'normal') {\n return parseInt(window.getComputedStyle(this.rootElement, null).getPropertyValue('font-size'), 10) * 1.25;\n }\n\n return parseFloat(lineHeight);\n }\n\n /** @hidden\n * Setup native styles for lineclamp text\n */\n private native(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '-webkit-box');\n this._renderer.setStyle(this.rootElement, 'overflow', 'hidden');\n this._renderer.setStyle(this.rootElement, 'text-overflow', 'ellipsis');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', 'vertical');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', `${this._lineCount}`);\n }\n }\n\n /** @hidden\n * Reset native styles for lineclamp text\n */\n private _resetNative(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '');\n this._renderer.setStyle(this.rootElement, 'overflow', '');\n this._renderer.setStyle(this.rootElement, 'text-overflow', '');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', '');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', '');\n }\n }\n\n /** @hidden */\n private _checkLineCount(): void {\n if (!this.rootElement) {\n return;\n }\n const style = window.getComputedStyle(this.rootElement, null);\n\n this.reset();\n\n const fontSize = parseInt(style.getPropertyValue('font-size'), 10);\n const boxSizing = style.getPropertyValue('box-sizing');\n let height = parseInt(style.getPropertyValue('height'), 10);\n let lineHeight = parseFloat(style.getPropertyValue('line-height'));\n if (isNaN(lineHeight)) {\n lineHeight = fontSize * 1.2;\n }\n if (boxSizing === 'border-box') {\n const padding_top = parseInt(style.getPropertyValue('padding-top'), 10);\n const padding_bottom = parseInt(style.getPropertyValue('padding-bottom'), 10);\n const border_top = parseInt(style.getPropertyValue('border-top-width'), 10);\n const border_bottom = parseInt(style.getPropertyValue('border-bottom-width'), 10);\n height = height - padding_top - padding_bottom - border_top - border_bottom;\n }\n this.refreshClamp();\n this.lineCountUpdate.emit(Math.ceil(height / lineHeight));\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n LineClampTargetDirective,\n LineClampDirective,\n DeprecatedLineClampDirective,\n DeprecatedLineClampTargetDirective\n} from './line-clamp.directive';\n\n@NgModule({\n imports: [\n LineClampTargetDirective,\n LineClampDirective,\n DeprecatedLineClampDirective,\n DeprecatedLineClampTargetDirective\n ],\n exports: [\n LineClampTargetDirective,\n LineClampDirective,\n DeprecatedLineClampDirective,\n DeprecatedLineClampTargetDirective\n ]\n})\nexport class LineClampModule {}\n","import { ElementRef } from '@angular/core';\n\nexport const pxToNum = (pixels: string): number => Number(pixels.replace('px', '')) || 0;\n\nexport const toNativeElement = (element: HTMLElement | ElementRef): HTMLElement =>\n element instanceof ElementRef ? element.nativeElement : element;\n\n/** Return elements capacity (width subtract by element padding)\n * @param element - HTMLelement or element reference\n * */\nexport function getElementCapacity(element: HTMLElement | ElementRef): number {\n const _element = toNativeElement(element);\n const computedStyle = window.getComputedStyle(_element);\n\n return pxToNum(computedStyle.width) - pxToNum(computedStyle.paddingLeft) - pxToNum(computedStyle.paddingRight);\n}\n\n/** Return elements width\n * @param element - HTMLelement or element reference\n * @param withMargin - weather to add element margins to width\n * */\nexport function getElementWidth(element: HTMLElement | ElementRef, withMargin?: boolean): number {\n const _element = toNativeElement(element);\n const computedStyle = getComputedStyle(_element);\n\n return withMargin\n ? pxToNum(computedStyle.width) + pxToNum(computedStyle.marginLeft) + pxToNum(computedStyle.marginRight)\n : pxToNum(computedStyle.width);\n}\n","/** Generate a UUID v4 */\nexport function uuidv4(): string {\n const modifier = 16;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * modifier) | 0,\n // eslint-disable-next-line no-bitwise\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(modifier);\n });\n}\n","const fileSizeMap = new Map([\n ['KB', 1024],\n ['MB', 1048576],\n ['GB', 1073741824],\n ['TB', 1099511627776]\n]);\n\n/** Parse file size to bytes */\nexport function parserFileSize(fileSize: string): number {\n if (fileSize === '') {\n return 0;\n }\n\n const sizes = fileSize.match(/[\\d.]+|\\D+/g);\n if (sizes && sizes.length > 1) {\n const size = Number(sizes[0].replace(/ +/g, ''));\n const unit = sizes[1].replace(/ +/g, '').toUpperCase();\n const unitSize = fileSizeMap.get(unit);\n\n if (isNaN(size)) {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n if (unit === 'B' || unit === 'BYTE' || unit === 'BYTES') {\n return size;\n }\n if (!unitSize) {\n throw new Error('FileSizeError - Invalid File size please check.');\n } else {\n return unitSize * size;\n }\n } else {\n if (isNaN(Number(sizes))) {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n\n return Number(sizes);\n }\n}\n","/**\n * Function used to scroll specified element by some distance\n *\n * @param containerElement - Container element scrolled\n * @param distanceToScroll - Distance of scroll in px\n * */\nexport function scrollTop(containerElement: Element, distanceToScroll: number): void {\n // Check if scrollTo method is supported by current browser\n if (containerElement.scrollTo && containerElement.scrollTo instanceof Function) {\n containerElement.scrollTo({\n top: distanceToScroll,\n behavior: 'smooth'\n });\n } else {\n containerElement.scrollTop = distanceToScroll;\n }\n}\n","import { ColorAccent } from '../datatypes';\n\n/** Get random number from 1 to 10. */\nexport function getRandomColorAccent(): ColorAccent {\n return (Math.floor(Math.random() * 10) + 1) as ColorAccent;\n}\n","import { fromEvent, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * RxJS wrapper for ResizeObserver class.\n * @param target HTML element to spy on.\n * @param options @see {ResizeObserverOptions}\n * @returns {Observable} with observer entries.\n */\nexport function resizeObservable(target: Element, options?: ResizeObserverOptions): Observable<ResizeObserverEntry[]> {\n if ('ResizeObserver' in window) {\n return new Observable((subscriber) => {\n let animationFrame: number;\n const ro = new ResizeObserver((entries) => {\n animationFrame = window.requestAnimationFrame(() => {\n subscriber.next(entries);\n });\n });\n\n ro.observe(target, options);\n\n return function unsubscribe(): void {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n ro.unobserve(target);\n ro.disconnect();\n };\n });\n } else {\n // If current browser does not support resizeObserver, rely on window resize and return empty array of items.\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n}\n","import { NEVER, Observable } from 'rxjs';\n\n/**\n * RxJS wrapper for IntersectionObserver class.\n * @param target HTML element to spy on.\n * @param options @see {IntersectionObserverInit}\n * @returns {Observable} with observer entries.\n */\nexport function intersectionObservable(\n target: Element,\n options?: IntersectionObserverInit\n): Observable<IntersectionObserverEntry[]> {\n if ('IntersectionObserver' in window) {\n return new Observable((subscriber) => {\n const io = new IntersectionObserver((entries) => {\n subscriber.next(entries);\n }, options);\n\n io.observe(target);\n\n return function unsubscribe(): void {\n io.disconnect();\n };\n });\n } else {\n // If browser doesn't support IntersectionObserver API never emit a value\n // since we're not supporting IE11 and any other browser should have it.\n return NEVER;\n }\n}\n","import { ContentDensity } from '../interfaces/content-density';\n\n/** Determines whether provided value is valid content density */\nexport function isValidContentDensity(size: any): size is ContentDensity {\n return size === 'cozy' || size === 'compact' || size === 'condensed';\n}\n\n/**\n * Determines if \"compact\" styles should be applied based on provided content density\n */\nexport function isCompactDensity(size: ContentDensity): boolean {\n return isValidContentDensity(size) && size !== 'cozy';\n}\n","import { InjectionToken } from '@angular/core';\nimport { ModuleDeprecation } from '../interfaces/module-deprecation.interface';\n\nexport const ModuleDeprecations = new InjectionToken<ModuleDeprecation>('ModuleDeprecations');\n","import { FactorySansProvider, Provider } from '@angular/core';\nimport { ModuleDeprecations } from '../tokens/module-deprecations.token';\n\n/** Module deprecations provider */\nexport function moduleDeprecationsProvider(classRef: any): Provider {\n return {\n provide: ModuleDeprecations,\n useClass: classRef,\n multi: true\n };\n}\n\n/** Module deprecations provider factory */\nexport function moduleDeprecationsFactory(factory: FactorySansProvider): Provider {\n return {\n provide: ModuleDeprecations,\n ...factory,\n multi: true\n };\n}\n","import { INJECTOR, Injector, Provider } from '@angular/core';\n\n/**\n * Creates provider for ConsumerClass\n */\nexport function consumerProviderFactory<T = any>(\n ConsumerClass: new (injector: Injector, additionalConfig: Record<any, any> | undefined) => T,\n providedConfiguration?: Record<any, any>\n): Provider {\n return {\n provide: ConsumerClass,\n useFactory: (injector: Injector) => new ConsumerClass(injector, providedConfiguration),\n deps: [INJECTOR]\n };\n}\n","/** Get document font size in pixels. */\nexport function getDocumentFontSize(): number {\n return document?.documentElement ? parseFloat(getComputedStyle(document.documentElement).fontSize) : 16;\n}\n","/**\n * Function checks whether the passed number is odd.\n * @param number number to check.\n * @returns Boolean whether the number is odd.\n */\nexport function isOdd(number: number): boolean {\n return number % 2 === 1;\n}\n","import {\n A,\n BACKSPACE,\n C,\n DASH,\n DELETE,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n NUMPAD_MINUS,\n RIGHT_ARROW,\n TAB,\n V,\n X\n} from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { KeyUtil } from '../../functions';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdOnlyDigits], [fd-only-digits]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkOnlyDigits]', '[fdOnlyDigits], [fd-only-digits]')\n }\n ]\n})\nexport class DeprecatedOnlyDigitsDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkOnlyDigits], [fdOnlyDigits], [fd-only-digits]',\n standalone: true\n})\nexport class OnlyDigitsDirective {\n /** Allow using decimal */\n @Input() decimal = false;\n /** Define decimal separator\n * Default: .(dot)\n */\n @Input() decimalSeparator = '.';\n\n /** @hidden */\n private _inputElement: HTMLInputElement;\n /** @hidden */\n private _hasDecimalPoint = false;\n\n /** @hidden */\n constructor(private readonly _el: ElementRef) {\n this._inputElement = this._el.nativeElement;\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent): void {\n if (\n // Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right\n KeyUtil.isKeyCode(e, [DELETE, BACKSPACE, TAB, ESCAPE, ENTER, END, HOME, LEFT_ARROW, RIGHT_ARROW]) ||\n // Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)\n (KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))\n ) {\n return; // let it happen, don't do anything\n }\n\n if (KeyUtil.isKeyCode(e, [DASH, NUMPAD_MINUS])) {\n const newValue = this._forecastValue(e.key);\n\n if (this._inputElement.value[0] === '-' || newValue[0] !== '-') {\n e.preventDefault();\n\n return; // has DASH point\n } else {\n return; // Allow: only one DASH point\n }\n }\n\n if (this.decimal && e.key === this.decimalSeparator) {\n const newValue = this._forecastValue(e.key);\n if (newValue.split(this.decimalSeparator).length > 2) {\n // has two or more decimal points\n e.preventDefault();\n return;\n } else {\n this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\n return; // Allow: only one decimal point\n }\n }\n\n // Ensure that it is a number and stop the keypress\n if (e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n return;\n }\n }\n\n /** @hidden */\n @HostListener('paste', ['$event'])\n onPaste(event: any): void {\n if (window['clipboardData']) {\n // Browser is IE\n this._pasteData(window['clipboardData'].getData('text'));\n } else if (event.clipboardData && event.clipboardData.getData) {\n // Other browsers\n this._pasteData(event.clipboardData.getData('text/plain'));\n }\n\n event.preventDefault();\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent): void {\n const textData = event.dataTransfer?.getData('text') ?? '';\n this._inputElement.focus();\n this._pasteData(textData);\n\n event.preventDefault();\n }\n\n /** @hidden */\n private _pasteData(pastedContent: string): void {\n const sanitizedContent = this._sanitizeInput(pastedContent);\n const pasted = document.execCommand('insertText', false, sanitizedContent);\n if (!pasted) {\n if (this._inputElement.setRangeText) {\n const { selectionStart: start, selectionEnd: end } = this._inputElement;\n this._inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\n // so we have to trigger it ourself.\n if (typeof window['InstallTrigger'] !== 'undefined') {\n this._inputElement.dispatchEvent(new Event('input', { cancelable: true }));\n }\n } else {\n // Browser does not support setRangeText, e.g. IE\n this._insertAtCursor(this._inputElement, sanitizedContent);\n }\n }\n\n if (this.decimal) {\n this._hasDecimalPoint = this._inputElement.value.indexOf(this.decimalSeparator) > -1;\n }\n }\n\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\n /** @hidden */\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\n const startPos = myField.selectionStart ?? 0;\n const endPos = myField.selectionEnd ?? 0;\n\n myField.value =\n myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);\n\n const pos = startPos + myValue.length;\n myField.focus();\n myField.setSelectionRange(pos, pos);\n\n this._triggerEvent(myField, 'input');\n }\n\n /** @hidden */\n private _triggerEvent(el: HTMLInputElement, type: string): void {\n if ('createEvent' in document) {\n // modern browsers, IE9+\n const e = document.createEvent('HTMLEvents');\n e.initEvent(type, false, true);\n el.dispatchEvent(e);\n }\n }\n // end stack overflow code\n\n /** @hidden */\n private _sanitizeInput(input: string): string {\n let result = '';\n if (this.decimal && this._isValidDecimal(input)) {\n const regex = new RegExp(`[^0-9${this.decimalSeparator}]`, 'g');\n result = input.replace(regex, '');\n } else {\n result = input.replace(/[^0-9]/g, '');\n }\n\n if (input[0] === '-') {\n result = `-${result}`;\n }\n\n const maxLength = this._inputElement.maxLength;\n if (maxLength > 0) {\n // the input element has maxLength limit\n const allowedLength = maxLength - this._inputElement.value.length;\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\n }\n\n return result;\n }\n\n /** @hidden */\n private _isValidDecimal(string: string): boolean {\n if (!this._hasDecimalPoint) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n // the input element already has a decimal separator\n const selectedText = this._getSelection;\n if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n return string.indexOf(this.decimalSeparator) < 0;\n }\n }\n }\n\n /** @hidden */\n private get _getSelection(): string {\n const { selectionStart, selectionEnd } = this._inputElement;\n\n return this._inputElement.value.substring(selectionStart ?? 0, selectionEnd ?? 0);\n }\n\n /** @hidden */\n private _forecastValue(key: string): string {\n const { selectionStart, selectionEnd, value: oldValue } = this._inputElement;\n const selection = oldValue.substring(selectionStart ?? 0, selectionEnd ?? 0);\n\n return selection\n ? oldValue.replace(selection, key)\n : oldValue.substring(0, selectionStart ?? 0) + key + oldValue.substring(selectionStart ?? 0);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { OnlyDigitsDirective, DeprecatedOnlyDigitsDirective } from './only-digits.directive';\n\n@NgModule({\n imports: [OnlyDigitsDirective, DeprecatedOnlyDigitsDirective],\n exports: [OnlyDigitsDirective, DeprecatedOnlyDigitsDirective]\n})\nexport class OnlyDigitsModule {}\n","import { Directive, ElementRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdOverflowListItem], [fd-overflow-list-item]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkOverflowListItem]', '[fdOverflowListItem], [fd-overflow-list-item]')\n }\n ]\n})\nexport class DeprecatedOverflowListItemDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkOverflowListItem], [fdOverflowListItem], [fd-overflow-list-item]',\n standalone: true\n})\nexport class OverflowListItemDirective {\n /** @hidden */\n constructor(public el: ElementRef) {}\n}\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { OverflowListItemDirective } from './overflow-list-item.directive';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdOverflowList], [fd-overflow-list]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkOverflowList]', '[fdOverflowList], [fd-overflow-list]')\n }\n ]\n})\nexport class DeprecatedOverflowListDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkOverflowList], [fdOverflowList], [fd-overflow-list]',\n standalone: true\n})\nexport class OverflowListDirective implements AfterViewInit, OnDestroy {\n /**\n * @description Offset to calculate correct position\n */\n @Input()\n overflowOffset = 0;\n\n /**\n * @description Flag representing rtl mode\n */\n @Input()\n isRtl: boolean;\n\n /**\n * @description value of display property of existed list items\n */\n @Input()\n itemCssBlockValue = 'flex';\n\n /**\n * @description Emits when changed amount of extra items\n */\n @Output()\n overflowChanged: EventEmitter<number> = new EventEmitter<number>();\n\n /**\n * @description References to QueryList of OverflowListItemDirective\n */\n @ContentChildren(OverflowListItemDirective)\n overflowItems: QueryList<OverflowListItemDirective>;\n\n /** @hidden */\n private _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private _el: ElementRef, private _viewportRuler: ViewportRuler, private _ngZone: NgZone) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewportRuler\n .change(50)\n .pipe(takeUntil(this._onDestroy$))\n // ViewportRuler invoked out of zone, that is why I need to invoke function in zone\n .subscribe(() => this._ngZone.run(() => this._calculateAmountOfOverflowedItems()));\n\n this._calculateAmountOfOverflowedItems();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * @description Get amount of extra items in current list\n * */\n getAmountOfExtraItems(): number {\n const elements = this.overflowItems.toArray().map((item) => item.el.nativeElement);\n const computed = getComputedStyle(this._el.nativeElement);\n const contentWidth =\n this._el.nativeElement.clientWidth - parseFloat(computed.paddingLeft) - parseFloat(computed.paddingRight);\n return this._checkWidthWithOffset(elements, contentWidth);\n }\n\n /** @hidden */\n private _calculateAmountOfOverflowedItems(): void {\n const extra = this.getAmountOfExtraItems();\n this.overflowChanged.emit(extra);\n }\n\n /**\n * @hidden\n * @param arrItems\n * @param containerWidth\n * @param checkWithOffset\n * */\n private _checkWidthWithOffset(\n arrItems: HTMLElement[],\n containerWidth: number,\n checkWithOffset: boolean = false\n ): number {\n let itemsTotalWidth = 0;\n const parentWidth = checkWithOffset ? containerWidth - this.overflowOffset : containerWidth;\n\n arrItems.forEach((item) => {\n item.hidden = true;\n item.style.display = this.itemCssBlockValue;\n });\n\n for (let i = 0; i < arrItems.length; i++) {\n const item = arrItems[i];\n\n itemsTotalWidth += this.isRtl\n ? containerWidth - item.offsetLeft - itemsTotalWidth\n : item.offsetWidth + item.offsetLeft - itemsTotalWidth;\n\n if (parentWidth < itemsTotalWidth) {\n this._clearTempStyles(arrItems);\n return checkWithOffset\n ? arrItems.length - i\n : this._checkWidthWithOffset(arrItems, containerWidth, true);\n }\n }\n\n this._clearTempStyles(arrItems);\n return 0;\n }\n\n /**\n * @param arrItems\n * @hidden\n * */\n private _clearTempStyles(arrItems: HTMLElement[]): void {\n arrItems.forEach((item) => {\n item.hidden = false;\n item.style.removeProperty('display');\n });\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { OverflowListDirective, DeprecatedOverflowListDirective } from './overflow-list.directive';\nimport { OverflowListItemDirective, DeprecatedOverflowListItemDirective } from './overflow-list-item.directive';\n\n@NgModule({\n imports: [\n OverflowListDirective,\n OverflowListItemDirective,\n DeprecatedOverflowListItemDirective,\n DeprecatedOverflowListDirective\n ],\n exports: [\n OverflowListDirective,\n OverflowListItemDirective,\n DeprecatedOverflowListItemDirective,\n DeprecatedOverflowListDirective\n ]\n})\nexport class OverflowListModule {}\n","import { Directive, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdRepeat]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkRepeat]', '[fdRepeat]')\n }\n ]\n})\nexport class DeprecatedRepeatDirective extends DeprecatedSelector {}\n\n/**\n * Directive to repeatably render template N times.\n */\n@Directive({\n selector: '[fdkRepeat], [fdRepeat]',\n standalone: true\n})\nexport class RepeatDirective implements OnChanges {\n /** Number of times to render a template. */\n @Input('fdkRepeat')\n count: number;\n\n /**\n * Deprecated fdRepeat input property. Use `[fdkRepeat]`.\n */\n @Input('fdRepeat')\n deprecatedCount: number;\n\n /** @hidden */\n private get _repeatCount(): number {\n return this.count || this.deprecatedCount;\n }\n\n /** @hidden */\n constructor(\n private readonly _templateRef: TemplateRef<any>,\n private readonly _viewContainerRef: ViewContainerRef\n ) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes['count'] || changes['deprecatedCount']) && Number.isInteger(this._repeatCount)) {\n this._viewContainerRef.clear();\n\n for (let index = 0; index < Math.max(0, this._repeatCount); index++) {\n this._viewContainerRef.createEmbeddedView(this._templateRef, { index });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DeprecatedRepeatDirective, RepeatDirective } from './repeat.directive';\n\n@NgModule({\n imports: [RepeatDirective, DeprecatedRepeatDirective],\n exports: [RepeatDirective, DeprecatedRepeatDirective]\n})\nexport class RepeatModule {}\n","import { Directive, ElementRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdResizeHandle], [fd-resize-handle]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkResizeHandle]', '[fdResizeHandle], [fd-resize-handle]')\n }\n ]\n})\nexport class DeprecatedResizeHandleDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkResizeHandle], [fdResizeHandle], [fd-resize-handle]',\n standalone: true\n})\nexport class ResizeHandleDirective {\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n}\n","import {\n AfterContentInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ResizeHandleDirective } from './resize-handle.directive';\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\nimport { filter, map, mapTo, pairwise, takeUntil, tap } from 'rxjs/operators';\nimport { RtlService } from '../../services/rtl.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdResize], [fd-resize]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkResize]', '[fdResize], [fd-resize]')\n }\n ]\n})\nexport class DeprecatedResizeDirective extends DeprecatedSelector {}\n\ninterface ResizeMove {\n x: number;\n y: number;\n}\n\n@Directive({\n selector: '[fdkResize], [fdResize], [fd-resize]',\n standalone: true\n})\nexport class ResizeDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Element limiting resizable container growth */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeBoundary') resizeBoundary: string | HTMLElement = 'body';\n\n /** Whether resizable behaviour should be disabled */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeDisabled') disabled = false;\n\n /** Localization of resize handle inside resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeHandleLocation') resizeHandleLocation: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' =\n 'bottom-right';\n\n /** Resize handle reference - should be used if Resize handle is not a ContentChild of resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeResizeHandleRef') set setResizeHandleReference(value: ResizeHandleDirective) {\n this.resizeHandleReference = value;\n }\n\n /** Emits event when resizing has tarted */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeStart = new EventEmitter<void>();\n\n /** Emits event when resizing has ended */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeEnd = new EventEmitter<void>();\n\n /** @hidden Reference to Resize handle */\n @ContentChild(ResizeHandleDirective, { static: false }) resizeHandleReference;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _isRtl = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef<HTMLElement>, @Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled']) {\n if (changes['disabled'].previousValue === false && changes['disabled'].currentValue === true) {\n this._subscriptions.unsubscribe();\n } else if (changes['disabled'].previousValue === true && changes['disabled'].currentValue === false) {\n this._setResizeListeners();\n }\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._rtlService) {\n this._subscriptions.add(this._rtlService.rtl.subscribe((isRtl) => (this._isRtl = isRtl)));\n }\n\n if (!this.disabled) {\n this._setResizeListeners();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private get _direction(): number {\n return this._isRtl ? -1 : 1;\n }\n\n /** @hidden Sets Resize listeners */\n private _setResizeListeners(): void {\n const resize = this._getResizeFunction();\n const moveOffset = this._getMoveOffsetFunction();\n const resizeContainer = this._findResizeContainer();\n if (!resizeContainer) {\n return;\n }\n const isBoundaryOverflow = this._getBoundaryOverflowFunction(resizeContainer);\n\n const mouseUpEvent$ = fromEvent<MouseEvent>(window, 'mouseup');\n const mouseMoveEvent$ = fromEvent<MouseEvent>(resizeContainer, 'mousemove');\n const mouseDownEvent$ = fromEvent<MouseEvent>(this.resizeHandleReference.elementRef.nativeElement, 'mousedown');\n\n const resizeActive$ = merge(mouseDownEvent$.pipe(mapTo(true)), mouseUpEvent$.pipe(mapTo(false)));\n const emitResizableEvents$ = this._getResizeEventsNotifiers(resizeActive$);\n const preventOtherPointerEvents$ = this._blockOtherPointerEvents(resizeActive$);\n\n const resizingCursorMovement$ = mouseMoveEvent$.pipe(\n pairwise(),\n map(([event1, event2]: [MouseEvent, MouseEvent]) => moveOffset(event1, event2)),\n filter((move) => isBoundaryOverflow(move))\n );\n\n const setupResizer = (): void => {\n resizingCursorMovement$.pipe(takeUntil(mouseUpEvent$)).subscribe((event) => resize(event));\n };\n const setupResize$ = resizeActive$.pipe(\n filter((isActive) => isActive),\n tap(() => setupResizer())\n );\n\n this._subscriptions.add(setupResize$.subscribe());\n this._subscriptions.add(emitResizableEvents$.subscribe());\n this._subscriptions.add(preventOtherPointerEvents$.subscribe());\n }\n\n /** @hidden Creates resize function*/\n private _getResizeFunction(): (move: ResizeMove) => void {\n return (move: ResizeMove) => {\n this._elementRef.nativeElement.style.width = `${this._elementRef.nativeElement.offsetWidth + move.x}px`;\n this._elementRef.nativeElement.style.height = `${this._elementRef.nativeElement.offsetHeight + move.y}px`;\n };\n }\n\n /** @hidden Creates move function */\n private _getMoveOffsetFunction(): (event1: MouseEvent, event2: MouseEvent) => ResizeMove {\n let verticalModifier: 1 | -1;\n let horizontalModifier: 1 | -1;\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n horizontalModifier = -1;\n verticalModifier = -1;\n break;\n case 'top-right':\n horizontalModifier = -1;\n verticalModifier = 1;\n break;\n case 'bottom-left':\n horizontalModifier = 1;\n verticalModifier = -1;\n break;\n case 'bottom-right':\n horizontalModifier = 1;\n verticalModifier = 1;\n break;\n }\n\n return (event1: MouseEvent, event2: MouseEvent) => {\n const x = (event2.screenX - event1.screenX) * this._direction;\n const y = event2.screenY - event1.screenY;\n\n return {\n x: x * verticalModifier,\n y: y * horizontalModifier\n };\n };\n }\n\n /** @hidden Return boundary container */\n private _findResizeContainer(): Element | null {\n let resizeContainer: Element | null;\n if (typeof this.resizeBoundary === 'string') {\n resizeContainer = this._elementRef.nativeElement.closest(this.resizeBoundary);\n } else {\n resizeContainer = this.resizeBoundary;\n }\n\n if (resizeContainer) {\n return resizeContainer;\n } else {\n console.warn(`fdResize - Cannot find \"${this.resizeBoundary}\", falling back to \"body\"`);\n return document.querySelector('body');\n }\n }\n\n /** @hidden Check whether resizable container is overflowing boundary container */\n private _getBoundaryOverflowFunction(resizeContainer: Element): (move: ResizeMove) => boolean {\n return (move: ResizeMove) => {\n const containerPosition = resizeContainer.getBoundingClientRect();\n const elementPosition = this._elementRef.nativeElement.getBoundingClientRect();\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'top-right':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n case 'bottom-left':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'bottom-right':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n }\n };\n }\n\n /** @hidden Create Observable notifying on resize actions */\n private _getResizeEventsNotifiers(trigger$: Observable<boolean>): Observable<any> {\n const emitResizableStart$ = trigger$.pipe(\n filter((isActive) => isActive),\n tap(() => this.onResizeStart.emit())\n );\n\n const emitResizableEnd$ = trigger$.pipe(\n filter((isActive) => !isActive),\n tap(() => this.onResizeEnd.emit())\n );\n\n return merge(emitResizableStart$, emitResizableEnd$);\n }\n\n /** @hidden Block resizable container pointer events when resizing */\n private _blockOtherPointerEvents(trigger$: Observable<boolean>): Observable<any> {\n return trigger$.pipe(\n map((isActive) => (isActive ? 'none' : 'auto')),\n tap((value) => (this._elementRef.nativeElement.style.pointerEvents = value))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ResizeDirective, DeprecatedResizeDirective } from './resize.directive';\nimport { ResizeHandleDirective, DeprecatedResizeHandleDirective } from './resize-handle.directive';\n\n@NgModule({\n imports: [ResizeDirective, DeprecatedResizeDirective, ResizeHandleDirective, DeprecatedResizeHandleDirective],\n exports: [ResizeDirective, DeprecatedResizeDirective, ResizeHandleDirective, DeprecatedResizeHandleDirective]\n})\nexport class ResizeModule {}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdTemplate]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkTemplate]', '[fdTemplate]')\n }\n ]\n})\nexport class DeprecatedTemplateSelectorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkTemplate], [fdTemplate]',\n standalone: true\n})\nexport class TemplateDirective {\n /** Name of the template */\n @Input('fdkTemplate')\n name: string;\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n\n /** @hidden */\n getName(): string {\n return this.name;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TemplateDirective, DeprecatedTemplateSelectorDirective } from './template.directive';\n\n@NgModule({\n imports: [TemplateDirective, DeprecatedTemplateSelectorDirective],\n exports: [TemplateDirective, DeprecatedTemplateSelectorDirective]\n})\nexport class TemplateModule {}\n","import { AfterViewInit, Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Nullable } from '../../models/nullable';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdTruncate], [fd-truncate]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkTemplate]', '[fdTruncate], [fd-truncate]')\n }\n ]\n})\nexport class DeprecatedTruncateSelectorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkTruncate], [fdTruncate], [fd-truncate]',\n standalone: true\n})\nexport class TruncateDirective implements OnChanges, AfterViewInit {\n /**\n * Width in pixel for truncation of an element , by default\n */\n @Input()\n set fdkTruncateWidth(value: Nullable<number>) {\n this._customWidthCount = coerceNumberProperty(value);\n }\n\n /**\n * Truncating state\n */\n @Input()\n fdkTruncateState = false;\n\n /** @hidden */\n private _customWidthCount = 200;\n\n /** @hidden */\n private _truncateTarget: HTMLElement;\n\n /** @hidden\n * saves default style of element before truncating\n */\n private _defaultStyle: string;\n\n /** @hidden */\n private takeDefaultStyleOnce = true;\n\n /** @hidden\n * truncation style for truncating element\n */\n private _truncationStyle: string;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Root native element\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /**\n * Method saves default style of target element before first truncate.\n */\n setDefaultStyle(): void {\n if (this.takeDefaultStyleOnce) {\n this._defaultStyle = this._truncateTarget.style.cssText;\n this.takeDefaultStyleOnce = false;\n }\n }\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.rootElement) {\n this._truncate();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._truncate();\n }\n\n /** @hidden */\n private _truncate(): void {\n this._truncateTarget = this.rootElement;\n\n if (!this._truncateTarget) {\n return;\n }\n this.setDefaultStyle();\n this._truncationStyle = `${this._defaultStyle} max-width: ${this._customWidthCount}px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`;\n this._truncateTarget.style.cssText = this.fdkTruncateState ? this._truncationStyle : this._defaultStyle;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { TruncateDirective, DeprecatedTruncateSelectorDirective } from './truncate.directive';\n\n@NgModule({\n imports: [TruncateDirective, DeprecatedTruncateSelectorDirective],\n exports: [TruncateDirective, DeprecatedTruncateSelectorDirective]\n})\nexport class TruncateModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_FOCUSABLE_ITEM_DIRECTIVE = new InjectionToken('Focusable directive token');\n","import { Injectable, isDevMode } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { isCompactDensity } from '../functions/is-compact-density';\nimport { ContentDensity } from '../interfaces/content-density';\n\nexport const DEFAULT_CONTENT_DENSITY: ContentDensity = 'cozy';\n\n/**\n * Service taking care of ContentDensity\n */\n@Injectable()\nexport class ContentDensityService {\n /** Content Density BehaviourSubject */\n readonly contentDensity = new BehaviorSubject(DEFAULT_CONTENT_DENSITY);\n\n /** @hidden */\n constructor() {\n if (isDevMode()) {\n console.warn(\n `[Deprecated] ContentDensityService is deprecated and will be removed in the next major version.\n Please use ContentDensityControllerService instead, or use the ContentDensityModule forRoot method.`\n );\n }\n }\n\n /** @hidden */\n get _contentDensityListener(): Observable<ContentDensity> {\n return this.contentDensity.pipe(distinctUntilChanged(), startWith(this.contentDensity.getValue()));\n }\n\n /** @hidden */\n get _isCompactDensity(): Observable<boolean> {\n return this._contentDensityListener.pipe(map((density) => isCompactDensity(density)));\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class DestroyedService extends ReplaySubject<void> implements OnDestroy {\n /** @hidden */\n constructor() {\n super(1);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { createFocusTrap, FocusTrap, Options } from 'focus-trap';\nimport { uuidv4 } from '../functions/uuidv4-generator';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusTrapService {\n /** @hidden */\n private _focusTrapInstances: Map<any, FocusTrap> = new Map();\n\n /**\n * Creates focus trap instance for defined element\n * @param element Container for which to create focus trap\n * @param userOptions Focus-trap specific configuration\n * @returns {string} Unique ID of focus trap instance\n */\n createFocusTrap(\n element: string | HTMLElement | SVGElement | (string | HTMLElement | SVGElement)[],\n userOptions?: Options\n ): string {\n const uid = uuidv4();\n\n const trap = createFocusTrap(element, userOptions);\n\n this._focusTrapInstances.set(uid, trap);\n\n this.activateFocusTrap(uid);\n\n return uid;\n }\n\n /**\n * Activates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n activateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.activate();\n }\n\n /**\n * Deactivates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n deactivateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.deactivate();\n\n this._focusTrapInstances.delete(id);\n }\n\n /**\n * Pauses current focus trap.\n */\n pauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.pause();\n }\n\n /**\n * Unpauses current focus trap.\n */\n unpauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.unpause();\n }\n\n /**\n * Get focus trap instance by ID.\n * @param id ID of the instance.\n * @returns Focus trap instance if exists.\n */\n getFocusTrapInstance(id: string): FocusTrap | undefined {\n return this._focusTrapInstances.get(id);\n }\n\n /** @hidden */\n private _getLastTrapedItem(): FocusTrap | undefined {\n const lastItem = Array.from(this._focusTrapInstances).pop();\n\n return lastItem ? lastItem[1] : undefined;\n }\n\n /** @hidden */\n private _focusTrapExists(id: string): boolean {\n return this._focusTrapInstances.has(id);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Injectable, QueryList } from '@angular/core';\nimport { KeyboardSupportItemInterface } from '../../interfaces/keyboard-support-item.interface';\nimport { merge, Subject } from 'rxjs';\nimport { filter, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { KeyUtil } from '../../functions';\nimport { DOWN_ARROW, hasModifierKey, TAB, UP_ARROW } from '@angular/cdk/keycodes';\n\nexport type FocusEscapeDirection = 'up' | 'down';\n\n@Injectable({ providedIn: 'root' })\nexport class KeyboardSupportService<T> {\n /** Subject that is thrown, when focus escapes the list */\n focusEscapeList = new Subject<FocusEscapeDirection>();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n private readonly _onRefresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _keyManager: FocusKeyManager<T>;\n\n /** @hidden */\n get keyManager(): FocusKeyManager<T> {\n return this._keyManager;\n }\n\n /** @hidden */\n private _itemList: QueryList<KeyboardSupportItemInterface & T>;\n\n /** @hidden\n * allow tab key navigation. default is true.\n */\n private _tabKeyNavigation = true;\n\n /** @hidden */\n setKeyboardService(\n queryList: QueryList<KeyboardSupportItemInterface & T>,\n wrap?: boolean,\n tabKeyNavigation = true\n ): void {\n this._itemList = queryList;\n this._tabKeyNavigation = tabKeyNavigation;\n this._keyManager = new FocusKeyManager(queryList).withWrap(wrap).withHomeAndEnd();\n queryList.changes\n .pipe(takeUntil(this._onDestroy$), startWith(0))\n .subscribe(() => this._refreshEscapeLogic(queryList));\n }\n\n /** @hidden */\n onKeyDown(event: KeyboardEvent): void {\n this._keyManager.onKeydown(event);\n if (KeyUtil.isKeyCode(event, TAB)) {\n if (KeyUtil.isKeyCode(event, TAB) && this._tabKeyNavigation) {\n event.preventDefault();\n hasModifierKey(event, 'shiftKey')\n ? this.keyManager.setPreviousItemActive()\n : this.keyManager.setNextItemActive();\n }\n }\n }\n\n /** Destroys KeyboardSupportService dependencies */\n onDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._keyManager.destroy();\n }\n\n /** @hidden */\n private _refreshEscapeLogic(queryList: QueryList<KeyboardSupportItemInterface & T>): void {\n const createEscapeListener = (\n listItem: KeyboardSupportItemInterface & T,\n onKeyCode: number,\n escapeDirection: FocusEscapeDirection\n ): void => {\n listItem.keyDown\n .pipe(\n takeUntil(unsubscribe$),\n filter((event) => KeyUtil.isKeyCode(event, onKeyCode)),\n tap((event) => event.preventDefault())\n )\n .subscribe(() => this.focusEscapeList.next(escapeDirection));\n };\n\n /** Finish all of the streams, form before */\n this._onRefresh$.next();\n\n const unsubscribe$ = merge(this._onRefresh$, this._onDestroy$);\n\n if (queryList.length) {\n createEscapeListener(queryList.last, DOWN_ARROW, 'down');\n createEscapeListener(queryList.first, UP_ARROW, 'up');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nclass MockStorage {\n readonly length: number;\n\n // eslint-disable-next-line\n key(index: number): any {}\n\n clear(): void {}\n\n // eslint-disable-next-line\n getItem(key: string): any {}\n\n // eslint-disable-next-line\n removeItem(key: string): void {}\n\n // eslint-disable-next-line\n setItem(key: string, value: string): void {}\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LocalStorageService {\n /** @hidden */\n private _storage: Storage;\n\n /** @hidden */\n constructor() {\n typeof localStorage !== 'undefined' ? (this._storage = localStorage) : (this._storage = new MockStorage());\n }\n\n /** Get item from local storage. */\n get(key: string): any {\n const value = this._storage.getItem(key);\n if (value) {\n return JSON.parse(value);\n }\n return null;\n }\n\n /** Set item in local storage. */\n set(key: string, value: any): void {\n this._storage.setItem(key, JSON.stringify(value));\n }\n}\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { coerceElement } from '@angular/cdk/coercion';\n\ninterface ObservedElement {\n observer: ResizeObserver | null;\n readonly stream: Subject<ResizeObserverEntry[]>;\n count: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n /** Factory to create ResizeObserver if it's present in browser. */\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n /** @hidden */\n private _observedElements = new Map<Element, ObservedElement>();\n\n /** @hidden */\n constructor(private _resizeObserverFactory: ResizeObserverFactory) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n\n /** Observe the given element and emit whenever its size changes. */\n observe(elementOrRef: Element | ElementRef<Element>): Observable<ResizeObserverEntry[]> {\n const element = coerceElement(elementOrRef);\n\n return new Observable((observer: Observer<ResizeObserverEntry[]>) => {\n const stream = this._observeElement(element);\n const subscription = stream?.subscribe(observer);\n\n return () => {\n subscription?.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n private _observeElement(element: Element): Subject<ResizeObserverEntry[]> | undefined {\n let observedElement = this._observedElements.get(element);\n\n if (!observedElement) {\n const stream = new Subject<ResizeObserverEntry[]>();\n const observer = this._resizeObserverFactory.create((mutations) => stream.next(mutations));\n if (observer) {\n observer.observe(element);\n }\n observedElement = { observer, stream, count: 0 };\n this._observedElements.set(element, observedElement);\n }\n observedElement.count++;\n return observedElement?.stream;\n }\n\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n private _unobserveElement(element: Element): void {\n const observedElement = this._observedElements.get(element);\n if (!observedElement) {\n return;\n }\n\n if (!--observedElement.count) {\n return;\n }\n this._cleanupObserver(element);\n }\n\n /** Clean up the underlying MutationObserver for the specified element. */\n private _cleanupObserver(element: Element): void {\n const observedElement = this._observedElements.get(element);\n\n if (!observedElement) {\n return;\n }\n const { observer, stream } = observedElement;\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { ElementRef } from '@angular/core';\n\n/**\n * Retrieves native element from ElementRef.\n */\nexport function getNativeElement<T extends Element = HTMLElement>(\n element: { elementRef(): ElementRef<T> } | T | ElementRef<T>\n): T {\n let coercible = element;\n if (isHasElementRef<T>(element)) {\n coercible = element.elementRef();\n }\n return coerceElement(coercible as T | ElementRef<T>);\n}\n\n/**\n * Checks whether object has element reference in it.\n */\nexport function isHasElementRef<T extends Element = HTMLElement>(\n something: any\n): something is { elementRef(): ElementRef<T> } {\n return something && typeof something['elementRef'] === 'function';\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { MutationObserverFactory } from '@angular/cdk/observers';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { getNativeElement } from '../../helpers/get-native-element';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AttributeObserver implements OnDestroy {\n /** @Hidden */\n private readonly _observedElements = new Map<\n Element,\n {\n observer: MutationObserver | null;\n stream: Subject<MutationRecord[]>;\n count: number;\n }\n >();\n\n /** @hidden */\n constructor(private _mutationObserverFactory: MutationObserverFactory) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n\n /** @Hidden */\n observe(elementOrRef: Element | ElementRef<Element> | HasElementRef<Element>): Observable<MutationRecord[]> {\n const element = getNativeElement(elementOrRef);\n return new Observable((observer: Observer<MutationRecord[]>) => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n\n /** @Hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._unobserveElement(getNativeElement(element));\n }\n\n /** @hidden */\n private _observeElement(element: Element): Subject<MutationRecord[]> {\n if (!this._observedElements.has(element)) {\n const stream = new Subject<MutationRecord[]>();\n const observer = this._mutationObserverFactory.create((mutations) => stream.next(mutations));\n if (observer) {\n observer.observe(element, {\n attributes: true\n });\n }\n this._observedElements.set(element, { observer, stream, count: 1 });\n } else {\n this._observedElements.get(element)!.count++;\n }\n return this._observedElements.get(element)!.stream;\n }\n\n /** @Hidden */\n private _unobserveElement(element: Element): void {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element)!.count--;\n if (!this._observedElements.get(element)!.count) {\n this._cleanupObserver(element);\n }\n }\n }\n\n /** @hidden */\n private _cleanupObserver(element: Element): void {\n if (this._observedElements.has(element)) {\n const { observer, stream } = this._observedElements.get(element)!;\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { HasElementRef } from '../../interfaces';\nimport { getNativeElement } from '../../helpers/get-native-element';\n\nconst focusableTagnamesByDefault = new Set(['select', 'textarea', 'input', 'button', 'audio', 'video']);\n\nconst focusableTagOptions = [\n {\n tag: 'div',\n attributes: [\n {\n name: 'contenteditable',\n valueMatcher: (value: string) => coerceBooleanProperty(value)\n }\n ]\n }\n];\n\n/** @hidden */\nexport function isElementFocusableByDefault(el: HasElementRef<Element> | Element | ElementRef<Element>): boolean {\n const element = getNativeElement(el);\n const tagName = element.tagName.toLowerCase();\n if (focusableTagnamesByDefault.has(tagName)) {\n return true;\n }\n\n return focusableTagOptions.some((tagOptions) => {\n if (tagOptions.tag === tagName) {\n return tagOptions.attributes.some((attribute) => {\n const attrVal = element.getAttribute(attribute.name);\n return attrVal && attribute.valueMatcher(attrVal);\n });\n }\n return false;\n });\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { AttributeObserver } from '../../services/observers/attribute.observer';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DisabledObserver {\n /** @hidden */\n constructor(private _attributeObserver: AttributeObserver) {}\n\n /** @hidden */\n static isDisabled(el: Element): boolean {\n return (\n el.hasAttribute('disabled') ||\n el.getAttribute('aria-disabled') === 'true' ||\n el.classList.contains('is-disabled')\n );\n }\n\n /** @hidden */\n observe(element: HasElementRef<Element> | Element | ElementRef<Element>): Observable<boolean> {\n return this._attributeObserver.observe(element).pipe(\n map(() => DisabledObserver.isDisabled(getNativeElement(element))),\n distinctUntilChanged()\n );\n }\n\n /** @hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._attributeObserver.unobserve(element);\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { isElementFocusableByDefault } from './is-element-focusable-by-default';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { AttributeObserver } from '../../services/observers/attribute.observer';\nimport { DisabledObserver } from '../disabled/disabled.observer';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusableObserver {\n /** @hidden */\n constructor(private _attributeObserver: AttributeObserver) {}\n\n /** @Hidden */\n static isFocusable(element: Element, respectTabIndex: boolean): boolean {\n if (DisabledObserver.isDisabled(element)) {\n return false;\n }\n\n if (!respectTabIndex) {\n return true;\n }\n\n const tabIndex = parseInt(element.getAttribute('tabindex') + '', 10);\n if (isNaN(tabIndex)) {\n return isElementFocusableByDefault(element);\n }\n\n return tabIndex > -1;\n }\n\n /** @hidden */\n observe(\n element: HasElementRef<Element> | Element | ElementRef<Element>,\n respectTabIndex = true\n ): Observable<boolean> {\n const nativeElement = getNativeElement(element);\n return this._attributeObserver.observe(nativeElement).pipe(\n map(() => FocusableObserver.isFocusable(nativeElement, respectTabIndex)),\n distinctUntilChanged()\n );\n }\n\n /** @hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._attributeObserver.unobserve(element);\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';\nimport { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable-item.tokens';\nimport { DestroyedService, TabbableElementService } from '../../services';\nimport { HasElementRef } from '../../interfaces';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { FocusableObserver } from './focusable.observer';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Nullable } from '../../models/nullable';\nimport { KeyUtil } from '../../functions';\n\nexport type CellFocusedEventAnnouncer = Nullable<(position: FocusableItemPosition) => string>;\n\nexport interface FocusableItemPosition {\n rowIndex: number;\n colIndex: number;\n totalRows: number;\n totalCols: number;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnFocusableItem]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkFocusableItem]', '[fnFocusableItem]')\n }\n ]\n})\nexport class DeprecatedFocusableItemDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkFocusableItem]',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: FocusableItemDirective\n },\n DestroyedService\n ]\n})\nexport class FocusableItemDirective implements HasElementRef {\n /** Whether the item is focusable. Default is true. */\n @Input()\n set fdkFocusableItem(val: BooleanInput) {\n this._focusable = coerceBooleanProperty(val);\n this.setTabbable(this._focusable);\n }\n\n get fdkFocusableItem(): boolean {\n return this._focusable;\n }\n\n /** Function, which returns a string to be announced by screen-reader whenever an item which is in grid receives focus. */\n @Input()\n cellFocusedEventAnnouncer: CellFocusedEventAnnouncer = this._defaultItemFocusedEventAnnouncer;\n\n /** Event emitted when the cell receives focus, not being emitted when focus moves between item's children. */\n @Output()\n readonly cellFocused = new EventEmitter<FocusableItemPosition>();\n\n /** @hidden */\n public readonly _keydown$ = new Subject<KeyboardEvent>();\n\n /** @hidden */\n _position: FocusableItemPosition;\n\n /** @hidden */\n private _focusable = true;\n\n /** @hidden */\n private _tabbableElements = new Map<HTMLElement, number>();\n\n /** @hidden */\n private _tabbable = true;\n\n /** @hidden */\n private _timerId: ReturnType<typeof global.setTimeout> | null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n return this._tabbable ? 0 : -1;\n }\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusableObserver: FocusableObserver,\n private _destroy$: DestroyedService,\n private _tabbableElementService: TabbableElementService,\n private _liveAnnouncer: LiveAnnouncer\n ) {\n this._focusableObserver\n .observe(this._elementRef, false)\n .pipe(takeUntil(this._destroy$))\n .subscribe((isFocusable) => {\n if (!isFocusable && isFocusable !== this.fdkFocusableItem) {\n this.fdkFocusableItem = isFocusable;\n }\n });\n }\n\n /** Element reference. */\n elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** Set tabbable state */\n setTabbable(state: boolean): void {\n this._tabbable = state;\n\n if (state) {\n this._enableTabbableElements();\n } else {\n this._disableTabbableElements();\n }\n }\n\n /** @hidden */\n @HostListener('focusin')\n async _onFocusin(): Promise<void> {\n if (!this.fdkFocusableItem) {\n return;\n }\n\n if (this._timerId != null) {\n clearTimeout(this._timerId);\n this._timerId = null;\n return;\n }\n\n if (this._position) {\n this.cellFocused.next(this._position);\n\n if (this.cellFocusedEventAnnouncer) {\n this._liveAnnouncer.clear();\n await this._liveAnnouncer.announce(this.cellFocusedEventAnnouncer(this._position));\n }\n }\n }\n\n /** @hidden */\n @HostListener('focusout')\n _onFocusout(): void {\n if (!this.fdkFocusableItem) {\n return;\n }\n\n // Timeout is needed to prevent focusout event from being emitted when focus moves between item's children.\n this._timerId = setTimeout(() => (this._timerId = null));\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (!this.fdkFocusableItem) {\n return;\n }\n\n const isFocused = document.activeElement === this._elementRef.nativeElement;\n const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2]) && !event.shiftKey && isFocused;\n const shouldFocusCell =\n ((KeyUtil.isKeyCode(event, F2) && event.shiftKey) || KeyUtil.isKeyCode(event, ESCAPE)) && !isFocused;\n\n if (shouldFocusChild) {\n event.stopPropagation();\n\n const tabbableElement = this._tabbableElementService.getTabbableElement(\n this.elementRef().nativeElement,\n false,\n true\n );\n\n tabbableElement?.focus();\n\n return;\n } else if (shouldFocusCell) {\n event.stopPropagation();\n\n this._elementRef.nativeElement.focus();\n\n return;\n }\n\n if (isFocused) {\n this._keydown$.next(event);\n }\n }\n\n /** @hidden */\n private _enableTabbableElements(): void {\n if (this._tabbableElements.size === 0) {\n return;\n }\n\n this._tabbableElements.forEach((tabIndex, element) => (element.tabIndex = tabIndex));\n this._tabbable = false;\n }\n\n /** @hidden */\n private _disableTabbableElements(): void {\n // Since we cannot select by tabindex attribute (links, inputs, buttons might not have one but still can be focusable),\n // Select all elements from the cell and filter by tabIndex property.\n Array.from(this._elementRef.nativeElement.querySelectorAll<HTMLElement>('*'))\n .filter((elm) => elm.tabIndex >= 0)\n .forEach((elm) => {\n this._tabbableElements.set(elm, elm.tabIndex);\n elm.tabIndex = -1;\n });\n }\n\n /** @hidden */\n private _defaultItemFocusedEventAnnouncer(position: FocusableItemPosition): string {\n return `Column ${position.colIndex + 1} of ${position.totalCols}, row: ${position.rowIndex + 1} of ${\n position.totalRows\n }`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FocusableItemDirective, DeprecatedFocusableItemDirective } from './focusable-item.directive';\n\n@NgModule({\n imports: [FocusableItemDirective, DeprecatedFocusableItemDirective],\n exports: [FocusableItemDirective, DeprecatedFocusableItemDirective]\n})\nexport class FocusableItemModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_FOCUSABLE_LIST_DIRECTIVE = new InjectionToken('Focusable list token');\n","import { Observable } from 'rxjs';\n\n/**\n * Helper function check whether passed data is a JS object (including function).\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isJsObject(obj: any): obj is object | Function {\n return obj !== null && (typeof obj === 'function' || typeof obj === 'object');\n}\n\n/**\n * Helper function checks whether passed value is not empty.\n */\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\n/**\n * Helper function check whether passed value is empty.\n */\nexport function isBlank(obj: any): obj is undefined | null {\n return obj === undefined || obj === null;\n}\n\n/**\n * Helper function checks whether passed value is a boolean.\n */\nexport function isBoolean(obj: any): obj is boolean {\n return typeof obj === 'boolean';\n}\n\n/**\n * Helper function checks whether passed value is a valid number.\n */\nexport function isNumber(obj: any): obj is number {\n return typeof obj === 'number';\n}\n\n/**\n * Helper function checks whether passed value is a string.\n */\nexport function isString(obj: any): obj is string {\n return typeof obj === 'string';\n}\n\n/**\n * Helper function checks whether passed value is a function\n */\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\n/** @hidden */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isType(obj: any): obj is Function {\n return isFunction(obj);\n}\n\n/**\n * Helper function checks whether passed value is a record of `T` values.\n */\nexport function isStringMap<T = any>(obj: any): obj is Record<string, T> {\n return typeof obj === 'object' && obj !== null;\n}\n\n/**\n * Helper function checks whether passed value is an `object`.\n */\nexport function isObject<T>(item: T): boolean {\n return typeof item === 'object' && !Array.isArray(item) && item !== null;\n}\n\n/**\n * Helper function checks whether passed value is a promise.\n */\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && isFunction(obj.then);\n}\n\n/**\n * Helper function checks whether passed value is an Observable/Subscribable.\n */\nexport function isSubscribable<T = any>(obj: any | Observable<T>): obj is Observable<T> {\n return !!obj && isFunction(obj.subscribe);\n}\n","import { Nullable } from '../models/nullable';\nimport { isNumber } from '../typecheck';\n\n/**\n * Utility type, that allows to track and select ranges of elements while using multi-selection.\n *\n * @usage\n * Imagine we have a simple list of checkboxes:\n * ```html\n * <input\n * #checkboxInput\n * *ngFor=\"let o of options; let idx = index\"\n * type=\"checkbox\"\n * [checked]=\"selectionModel.checked(o)\"\n * (click)=\"toggle(idx, $event)\"\n * >\n * ```\n * With the given layout the logic should be as follows:\n * ```typescript\n * export class YourComponent {\n * options = ['a', 'b', 'c'];\n * readonly selectionModel = new SelectionModel(true);\n *\n * private readonly _rangeSelector = new RangeSelector();\n *\n *\n * toggle(idx: number, event: PointerEvent): void {\n * // getting the toggled value of the checkbox\n * const toggledSelection = event.target.value;\n *\n * // registering the selection of current checkbox\n * this._rangeSelector.onRangeElementToggled(idx, event);\n *\n * // Apply value to each element in range.\n * // If checkbox was toggled without shift pressed or without previously selected one,\n * // this method will select only it.\n * this._rangeSelector.applyValueToEachInRange(idx => {\n * if (toggledSelection) {\n * this.selectionModel.select(options[idx]);\n * } else {\n * this.selectionModel.deselect(options[idx]);\n * }\n * });\n * }\n * }\n * ```\n */\nexport class RangeSelector {\n /** @hidden */\n private _previousSelectedIndex: number | null = null;\n /** @hidden */\n private _state: RangeSelectionState | null;\n\n /**\n * Last registered selection state (either multiple or single).\n * Is updated on each `onRangeElementClicked` invokation. Will be `null` initially or once `reset()` is called.\n */\n get lastRangeSelectionState(): RangeSelectionState | null {\n return this._state ? { ...this._state } : null;\n }\n\n /**\n * The method that should be used to register each checkbox toggle.\n * Accepts two arguments: `index` and `event`. If none provided, will reset existing state.\n * Otherwise will register current index as last checked.\n *\n * If toggling was done with \"shift\" pressed and there's a previously registered index, will register a range selection.\n * At the same time if checkbox was toggled without shift pressed or without previously selected one, this method will select only it.\n *\n * After calling this method it's recommended to use `applyValueToEachInRange` to actually toggle each checkbox in range.\n *\n * See usage example on this class itself.\n */\n onRangeElementToggled(index?: number, event?: KeyboardEvent | MouseEvent | TouchEvent): RangeSelectionState | null {\n if (\n this._isNonNegativeInteger(this._previousSelectedIndex) &&\n this._isNonNegativeInteger(index) &&\n event?.shiftKey\n ) {\n this._state = {\n isRangeSelection: true,\n from: Math.min(this._previousSelectedIndex, index),\n to: Math.max(this._previousSelectedIndex, index)\n };\n this._previousSelectedIndex = index;\n } else if (this._isNonNegativeInteger(index)) {\n this._state = { isRangeSelection: false, from: index, to: index };\n this._previousSelectedIndex = index;\n } else {\n this.reset();\n }\n\n return this.lastRangeSelectionState;\n }\n\n /**\n * Allows to apply selection to each item in selection range.\n * Accepts a function to apply selection to each item by registered index.\n *\n * See usage example on this class itself.\n */\n applyValueToEachInRange(selectionMethod: (index: number) => void): void {\n const state = this.lastRangeSelectionState;\n\n if (!state) {\n return;\n }\n\n if (this._isNonNegativeInteger(state?.from) && this._isNonNegativeInteger(state?.to)) {\n for (let index = state.from; index <= state.to; index++) {\n selectionMethod(index);\n }\n }\n }\n\n /** Resets selection state. Useful when the list of selectable items is changed (e.g. by filtering, sorting, page change) */\n reset(): void {\n this._state = null;\n this._previousSelectedIndex = null;\n }\n\n /** @hidden */\n private _isNonNegativeInteger(num: Nullable<number>): num is number {\n return isNumber(num) && num >= 0;\n }\n}\n\nexport interface RangeSelectionState {\n isRangeSelection: boolean;\n from: number;\n to: number;\n}\n","import { Nullable } from '../../models/nullable';\n\nexport type ScrollPosition = 'top' | 'bottom' | undefined;\n\n/** Helper function to scroll to focusable list or its item relatively to the container. */\nexport function scrollIntoView(element: Nullable<HTMLElement>, position: Nullable<ScrollPosition>): void {\n if (!position || !element) {\n return;\n }\n\n const scrollableParent = getScrollParent(element);\n\n if (scrollableParent) {\n const itemOffsetTop = element.offsetTop - scrollableParent.offsetTop;\n switch (position) {\n case 'top':\n scrollableParent.scrollTop = itemOffsetTop;\n break;\n case 'bottom':\n scrollableParent.scrollTop = itemOffsetTop - (scrollableParent.offsetHeight - element.offsetHeight);\n break;\n }\n }\n}\n\nfunction getScrollParent(node: HTMLElement | null): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n if (node.scrollHeight > node.clientHeight && ['auto', 'scroll'].includes(getComputedStyle(node).overflowY)) {\n return node;\n } else {\n return getScrollParent(node.parentNode as HTMLElement);\n }\n}\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\nimport { finalize, map, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { FocusableItemDirective, FocusableItemPosition } from '../focusable-item/focusable-item.directive';\nimport { DestroyedService } from '../../services/destroyed.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableObserver } from '../focusable-item';\nimport { FDK_FOCUSABLE_LIST_DIRECTIVE } from './focusable-list.tokens';\nimport { merge, Subject } from 'rxjs';\nimport { Nullable } from '../../models/nullable';\nimport { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { getNativeElement } from '../../helpers';\nimport { HasElementRef } from '../../interfaces';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { intersectionObservable, KeyUtil } from '../../functions';\nimport { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';\nimport { scrollIntoView, ScrollPosition } from './scroll';\n\nexport interface FocusableListPosition {\n rowIndex: number;\n totalRows: number;\n}\n\nexport interface FocusableListItemFocusedEvent {\n index: number;\n total: number;\n}\n\nexport interface FocusableListKeydownEvent {\n list: FocusableListDirective;\n event: KeyboardEvent;\n activeItemIndex: Nullable<number>;\n}\n\ninterface FocusableListConfig {\n wrap?: boolean;\n direction?: 'vertical' | 'horizontal';\n contentDirection?: 'ltr' | 'rtl' | null;\n}\n\nexport type FocusableItem = FocusableOption &\n HasElementRef & { index: number; focusable: (() => boolean) | boolean; keydown: Subject<KeyboardEvent> };\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnFocusableList]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkFocusableList]', '[fnFocusableList]')\n }\n ]\n})\nexport class DeprecatedFocusableListDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkFocusableList]',\n exportAs: 'fdkFocusableList',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_LIST_DIRECTIVE,\n useExisting: FocusableListDirective\n },\n DestroyedService\n ]\n})\nexport class FocusableListDirective implements OnChanges, AfterViewInit, OnDestroy {\n /** Whether the whole list should be focusable, handy in grids. */\n @Input()\n set focusable(value: BooleanInput) {\n this._focusable = coerceBooleanProperty(value);\n\n this.setTabbable(this._focusable);\n }\n get focusable(): boolean {\n return this._focusable;\n }\n\n /** @hidden */\n private _focusable = false;\n\n /** Direction of navigation. Should be set to 'grid' when list is a part of grid. */\n @Input()\n navigationDirection: 'horizontal' | 'vertical' | 'grid' = 'vertical';\n\n /** Direction of the content. */\n @Input()\n contentDirection: 'ltr' | 'rtl' | null = 'ltr';\n\n /**\n * Configures wrapping mode which determines whether the active item will wrap to the other end of list when there are no more items in the given direction.\n */\n @Input()\n wrap = false;\n\n /** Function, which returns a string to be announced by screen-reader whenever an row which is in grid receives focus. */\n @Input()\n listFocusedEventAnnouncer: (position: FocusableListPosition) => string = this._defaultListFocusedEventAnnouncer;\n\n /** Event emitted when list's item focused, contains item's position info. */\n @Output()\n readonly itemFocused = new EventEmitter<FocusableListItemFocusedEvent>();\n\n /** @hidden */\n @ContentChildren(FDK_FOCUSABLE_ITEM_DIRECTIVE, { descendants: true })\n public readonly _focusableItems: QueryList<FocusableItemDirective>;\n\n /** @hidden */\n public readonly _gridItemFocused$ = new Subject<FocusableItemPosition>();\n\n /** @hidden */\n public readonly _gridListFocused$ = new Subject<FocusableListPosition>();\n\n /** @hidden */\n public readonly _keydown$ = new Subject<FocusableListKeydownEvent>();\n\n /** @hidden */\n private _gridPosition: { rowIndex: number; totalRows: number };\n\n /** @hidden */\n private _keyManager?: FocusKeyManager<FocusableItem>;\n\n /** @hidden */\n private _tabbable = false;\n\n /** @hidden */\n private readonly _refreshItems$ = new Subject<void>();\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n return this._tabbable ? 0 : -1;\n }\n\n /** @hidden */\n _isVisible = false;\n\n /** @hidden */\n constructor(\n private _renderer: Renderer2,\n private _destroy$: DestroyedService,\n private _elementRef: ElementRef<HTMLElement>,\n private _liveAnnouncer: LiveAnnouncer,\n private _focusableObserver: FocusableObserver\n ) {\n intersectionObservable(this._elementRef.nativeElement, { threshold: 0.25 })\n .pipe(takeUntil(this._destroy$))\n .subscribe((isVisible) => (this._isVisible = isVisible[0]?.isIntersecting));\n\n this._focusableObserver\n .observe(this._elementRef, false)\n .pipe(takeUntil(this._destroy$))\n .subscribe((isFocusable) => {\n if (!isFocusable && isFocusable !== this.focusable) {\n this.focusable = isFocusable;\n }\n });\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._keyManager) {\n return;\n }\n\n if (changes['wrap']) {\n this._keyManager = this._keyManager.withWrap(changes['wrap'].currentValue);\n }\n\n if (changes['navigationDirection']) {\n this._updateNavigationDirection();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._focusableItems.changes\n .pipe(\n startWith(this._focusableItems),\n map((queryList) => queryList.toArray()),\n tap((items: FocusableItemDirective[]): void => {\n const focusableItems: FocusableItem[] = items.map((item, index) => ({\n index,\n focusable: () => item.fdkFocusableItem,\n elementRef: () => item.elementRef(),\n focus: () => item.elementRef().nativeElement.focus(),\n keydown: item._keydown$\n }));\n\n const direction = this.navigationDirection === 'grid' ? 'horizontal' : this.navigationDirection;\n\n this._initializeFocusManager(focusableItems, this, {\n direction,\n contentDirection: this.contentDirection,\n wrap: this.wrap\n });\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n // Already handled\n if (event.defaultPrevented) {\n return;\n }\n\n const isFocused = document.activeElement === this._elementRef.nativeElement;\n const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2]) && !event.shiftKey && isFocused;\n const shouldFocusList =\n ((KeyUtil.isKeyCode(event, F2) && event.shiftKey) || KeyUtil.isKeyCode(event, ESCAPE)) && !isFocused;\n\n if (shouldFocusChild) {\n event.stopPropagation();\n\n this.setActiveItem(0);\n\n return;\n } else if (shouldFocusList) {\n event.stopPropagation();\n\n this.focus();\n\n return;\n }\n\n this._keydown$.next({ list: this, event, activeItemIndex: this._keyManager?.activeItemIndex ?? null });\n }\n\n /** Set active item in list */\n setActiveItem(index: number, scrollPosition?: ScrollPosition): void {\n let availableIndex;\n\n this._focusableItems.find((item, itemIndex) => {\n if (itemIndex >= index && item.fdkFocusableItem) {\n availableIndex = itemIndex;\n return true;\n }\n\n return false;\n });\n\n if (availableIndex != null) {\n scrollIntoView(this._focusableItems.get(availableIndex)?.elementRef().nativeElement, scrollPosition);\n this._keyManager?.setActiveItem(availableIndex);\n }\n }\n\n /** Focus whole list */\n focus(scrollPosition?: ScrollPosition): void {\n if (this.focusable) {\n scrollIntoView(this._elementRef.nativeElement, scrollPosition);\n this._elementRef.nativeElement.focus();\n }\n }\n\n /** Set tabbable state */\n setTabbable(state: boolean): void {\n this._tabbable = state;\n }\n\n /** @hidden */\n @HostListener('focus')\n async _onFocus(): Promise<void> {\n if (this._gridPosition) {\n this._gridListFocused$.next(this._gridPosition);\n\n this._liveAnnouncer.clear();\n await this._liveAnnouncer.announce(this.listFocusedEventAnnouncer(this._gridPosition));\n\n this.setTabbable(true);\n }\n }\n\n /** @hidden */\n _updateNavigationDirection(): void {\n if (!this._keyManager) {\n return;\n }\n\n if (this.navigationDirection === 'vertical') {\n this._keyManager = this._keyManager.withVerticalOrientation(true);\n this._keyManager = this._keyManager.withHorizontalOrientation(null);\n } else {\n this._keyManager = this._keyManager.withVerticalOrientation(false);\n this._keyManager = this._keyManager.withHorizontalOrientation(this.contentDirection || 'ltr');\n }\n }\n\n /** @hidden */\n _setItemsTabbable(state: boolean): void {\n this._focusableItems.forEach((item) => item.setTabbable(state));\n }\n\n /** @hidden */\n _setGridPosition(position: FocusableListPosition): void {\n this._gridPosition = position;\n\n this._focusableItems.changes\n .pipe(startWith(this._focusableItems), takeUntil(this._destroy$))\n .subscribe((items) =>\n items.forEach(\n (item, index) =>\n (item._position = {\n ...this._gridPosition,\n colIndex: index,\n totalCols: this._focusableItems.length\n })\n )\n );\n }\n\n /** @hidden */\n private _initializeFocusManager(\n items: FocusableItem[],\n list: FocusableListDirective,\n config: FocusableListConfig = {}\n ): void {\n this._refreshItems$.next();\n\n let keyManager = new FocusKeyManager<any>(items).withHomeAndEnd();\n\n if (config.wrap !== false) {\n keyManager = keyManager.withWrap();\n }\n\n if (config.direction === 'horizontal') {\n keyManager = keyManager.withHorizontalOrientation(config.contentDirection || 'ltr'); // should be replaced\n\n // Vertical is enabled by default, so let's disable it here in consistency purposes\n keyManager = keyManager.withVerticalOrientation(false);\n }\n\n keyManager.skipPredicate((item) => !(typeof item.focusable === 'boolean' ? item.focusable : item.focusable()));\n\n this._keyManager = keyManager;\n\n const focusListenerDestroyers = items.map((item, index) =>\n this._renderer.listen(getNativeElement(item), 'focus', () => {\n const directiveItem = this._focusableItems.get(index);\n if (!directiveItem) {\n return;\n }\n\n if (this._gridPosition) {\n this._gridItemFocused$.next(directiveItem._position);\n }\n\n this.itemFocused.next({ index: item.index, total: items.length });\n this._focusableItems.forEach((i) => i.setTabbable(i === directiveItem));\n this._keyManager?.setActiveItem(item.index);\n })\n );\n\n merge(...items.map((item) => item.keydown))\n .pipe(\n tap((event: KeyboardEvent) => {\n // Already handled\n if (event.defaultPrevented) {\n return;\n }\n\n this._keyManager?.onKeydown(event);\n }),\n takeUntil(merge(this._refreshItems$, this._destroy$)),\n finalize(() => focusListenerDestroyers.forEach((d) => d()))\n )\n .subscribe();\n }\n\n /** @hidden */\n private _defaultListFocusedEventAnnouncer(position: FocusableListPosition): string {\n return `Row: ${position.rowIndex + 1} of ${position.totalRows}, use F2 button to dive in and focus list's item`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FocusableListDirective, DeprecatedFocusableListDirective } from './focusable-list.directive';\nimport { FocusableItemModule } from '../focusable-item';\n\n@NgModule({\n imports: [FocusableItemModule, FocusableListDirective, DeprecatedFocusableListDirective],\n exports: [FocusableListDirective, FocusableItemModule, DeprecatedFocusableListDirective]\n})\nexport class FocusableListModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_FOCUSABLE_GRID_DIRECTIVE = new InjectionToken('Focusable grid directive token');\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, LEFT_ARROW, PAGE_DOWN, PAGE_UP, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, Input, Output, QueryList } from '@angular/core';\nimport { merge, startWith, switchMap, takeUntil } from 'rxjs';\nimport { KeyUtil } from '../../functions';\nimport { Nullable } from '../../models/nullable';\nimport { DestroyedService } from '../../services';\nimport { FocusableItemPosition } from '../focusable-item';\nimport { FDK_FOCUSABLE_LIST_DIRECTIVE, FocusableListDirective, FocusableListPosition } from '../focusable-list';\nimport { findLastIndex } from 'lodash-es';\nimport { ScrollPosition } from '../focusable-list';\nimport { FDK_FOCUSABLE_GRID_DIRECTIVE } from './focusable-grid.tokens';\n\nexport interface FocusableCellPosition {\n rowIndex: number;\n colIndex: number;\n}\n\n@Directive({\n selector: '[fdkFocusableGrid]',\n exportAs: 'fdkFocusableGrid',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_GRID_DIRECTIVE,\n useExisting: FocusableGridDirective\n },\n DestroyedService\n ]\n})\nexport class FocusableGridDirective implements AfterViewInit {\n /** Direction of the content. */\n @Input()\n contentDirection: 'ltr' | 'rtl' | null = 'ltr';\n\n /** Whether the item in the previous/next row should be selected when going out of the first/last cell in the row. Default is false. */\n @Input()\n set wrapHorizontally(value: BooleanInput) {\n this._wrapHorizontally = coerceBooleanProperty(value);\n }\n\n get wrapHorizontally(): boolean {\n return this._wrapHorizontally;\n }\n\n /** Specify which item to select in prev/next row if its length smaller than current index. Nullish value means do not select. Default is null. */\n @Input()\n shortRowFocus: Nullable<'first' | 'last'> = null;\n\n /** Event emitted when item focused, contains item's position info. */\n @Output()\n readonly itemFocused = new EventEmitter<FocusableItemPosition>();\n\n /** Event emitted when whole row focused, contains row's position info. */\n @Output()\n readonly rowFocused = new EventEmitter<FocusableListPosition>();\n\n /** @hidden */\n private _wrapHorizontally = false;\n\n /** @hidden */\n @ContentChildren(FDK_FOCUSABLE_LIST_DIRECTIVE, { descendants: true })\n private readonly _focusableLists: QueryList<FocusableListDirective>;\n\n /** @hidden */\n constructor(private readonly _destroy$: DestroyedService) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._focusableLists.changes\n .pipe(startWith(this._focusableLists), takeUntil(this._destroy$))\n .subscribe((lists) =>\n lists.forEach((list, index) =>\n list._setGridPosition({ rowIndex: index, totalRows: this._focusableLists.length })\n )\n );\n\n this._focusableLists.changes\n .pipe(\n startWith(this._focusableLists),\n switchMap((queryList: QueryList<FocusableListDirective>) =>\n merge(...queryList.toArray().map((list) => list._gridListFocused$))\n ),\n takeUntil(this._destroy$)\n )\n .subscribe((focusedEvent) => {\n this.rowFocused.emit(focusedEvent);\n\n this._focusableLists.forEach((list) => list.setTabbable(false));\n this._focusableLists.forEach((list) => list._setItemsTabbable(false));\n });\n\n this._focusableLists.changes\n .pipe(\n startWith(this._focusableLists),\n switchMap((queryList: QueryList<FocusableListDirective>) =>\n merge(...queryList.toArray().map((list) => list._gridItemFocused$))\n ),\n takeUntil(this._destroy$)\n )\n .subscribe((focusedEvent) => {\n this.itemFocused.emit(focusedEvent);\n\n this._focusableLists.forEach((list) => list.setTabbable(false));\n this._focusableLists.forEach((list) => list._setItemsTabbable(false));\n });\n\n this._focusableLists.changes\n .pipe(\n startWith(this._focusableLists),\n switchMap((queryList: QueryList<FocusableListDirective>) =>\n merge(...queryList.toArray().map((list) => list._keydown$))\n ),\n takeUntil(this._destroy$)\n )\n .subscribe(({ event, list, activeItemIndex }) => this._onKeydown(event, list, activeItemIndex));\n }\n\n /**\n * Focus cell by position.\n * @param position position of the cell\n */\n focusCell(position: FocusableCellPosition): void {\n const list = this._focusableLists.get(position.rowIndex);\n if (list) {\n list.setActiveItem(position.colIndex);\n }\n }\n\n /** @hidden */\n _onKeydown(event: KeyboardEvent, list: FocusableListDirective, activeItemIndex: Nullable<number>): void {\n if (!KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, PAGE_DOWN, PAGE_UP])) {\n return;\n }\n\n const lists = this._focusableLists.toArray();\n const currentRowIndex = lists.findIndex((item) => item === list);\n let nextRowIndex: number | undefined;\n let nextRowItemIndex = activeItemIndex ?? 0;\n let scrollIntoView: ScrollPosition;\n\n const isFirstItemLtr = activeItemIndex === 0 && this.contentDirection !== 'rtl';\n const isLastItemRtl = activeItemIndex === list._focusableItems.length - 1 && this.contentDirection === 'rtl';\n\n const isFirstItemRtl = activeItemIndex === 0 && this.contentDirection === 'rtl';\n const isLastItemLtr = activeItemIndex === list._focusableItems.length - 1 && this.contentDirection !== 'rtl';\n\n switch (event.keyCode) {\n case UP_ARROW:\n event.preventDefault();\n nextRowIndex = currentRowIndex - 1;\n break;\n case DOWN_ARROW:\n event.preventDefault();\n nextRowIndex = currentRowIndex + 1;\n break;\n case LEFT_ARROW:\n if (this.wrapHorizontally && (isFirstItemLtr || isLastItemRtl)) {\n event.preventDefault();\n nextRowIndex = currentRowIndex - 1;\n nextRowItemIndex = lists[nextRowIndex]?._focusableItems.length - 1;\n }\n break;\n case RIGHT_ARROW:\n if (this.wrapHorizontally && (isFirstItemRtl || isLastItemLtr)) {\n event.preventDefault();\n nextRowIndex = currentRowIndex + 1;\n nextRowItemIndex = 0;\n }\n break;\n case PAGE_DOWN:\n event.preventDefault();\n nextRowIndex = findLastIndex(lists, (item) => item._isVisible);\n scrollIntoView = 'top';\n break;\n case PAGE_UP:\n event.preventDefault();\n nextRowIndex = lists.findIndex((item) => item._isVisible);\n scrollIntoView = 'bottom';\n break;\n }\n\n const nextRow = lists[nextRowIndex ?? -1];\n if (nextRow) {\n if (nextRow.focusable) {\n nextRow.focus(scrollIntoView);\n return;\n }\n\n const itemIndex = this._getItemIndex(nextRow, nextRowItemIndex);\n if (itemIndex != null) {\n nextRow.setActiveItem(itemIndex, scrollIntoView);\n }\n }\n }\n\n /** @hidden */\n private _getItemIndex(list: FocusableListDirective, activeIndex: number): Nullable<number> {\n if (activeIndex >= 0 && activeIndex < list._focusableItems.length) {\n return activeIndex;\n }\n\n if (this.shortRowFocus == null) {\n return null;\n }\n\n return this.shortRowFocus === 'first' ? 0 : list._focusableItems.length - 1;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FocusableListModule } from '../focusable-list';\nimport { FocusableGridDirective } from './focusable-grid.directive';\n\n@NgModule({\n imports: [FocusableListModule, FocusableGridDirective],\n exports: [FocusableListModule, FocusableGridDirective]\n})\nexport class FocusableGridModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_READONLY_DIRECTIVE = new InjectionToken('Readonly directive token');\n","import { ElementRef } from '@angular/core';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\n\n/** @Hidden */\nexport function setReadonlyState(\n element: HasElementRef<Element> | Element | ElementRef<Element>,\n isReadonly: boolean\n): void {\n const htmlElement = getNativeElement(element);\n if (isReadonly) {\n htmlElement.classList.add('is-readonly');\n htmlElement.setAttribute('readonly', '');\n } else {\n htmlElement.classList.remove('is-readonly');\n htmlElement.removeAttribute('readonly');\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { FDK_READONLY_DIRECTIVE } from './fdk-readonly.token';\nimport { ReadonlyBehavior } from './readonly-behavior.interface';\nimport { setReadonlyState } from './set-readonly-state';\nimport { DestroyedService } from '../../services/destroyed.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnReadonly]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkReadonly]', '[fnReadonly]')\n }\n ]\n})\nexport class DeprecatedReadonlyBehaviorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkReadonly], [fnReadonly]',\n standalone: true,\n providers: [\n {\n provide: FDK_READONLY_DIRECTIVE,\n useExisting: ReadonlyBehaviorDirective\n },\n DestroyedService\n ]\n})\nexport class ReadonlyBehaviorDirective\n extends ReplaySubject<boolean>\n implements ReadonlyBehavior, AfterViewInit, OnDestroy\n{\n /** @Hidden */\n @Input()\n set fdkReadonly(value: BooleanInput) {\n this._readonlyInput$.next(coerceBooleanProperty(value));\n }\n\n get fdkReadonly(): boolean {\n return this._readonly;\n }\n\n /** @Hidden */\n _readonly = false;\n /** @hidden */\n private readonly _readonlyInput$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(private _elementRef: ElementRef<HTMLElement>, private _destroy$: DestroyedService) {\n super(1);\n }\n\n /** @Hidden */\n setReadonlyState = (isReadonly: boolean): void => {\n setReadonlyState(this._elementRef, isReadonly);\n };\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._readonlyInput$\n .pipe(\n tap((isReadonly) => {\n if (isReadonly !== this._readonly) {\n this.setReadonlyState(isReadonly);\n this._readonly = isReadonly;\n this.next(isReadonly);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective } from './readonly-behavior.directive';\n\n@NgModule({\n imports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective],\n exports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective]\n})\nexport class ReadonlyBehaviorModule {}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { AttributeObserver } from '../../services/observers/attribute.observer';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReadonlyObserver {\n /** @Hidden */\n constructor(private _attributeObserver: AttributeObserver) {}\n\n /** @Hidden */\n static isReadonly(element: Element): boolean {\n return element.classList.contains('is-readonly') || element.hasAttribute('readonly');\n }\n\n /** @hidden */\n observe(element: HasElementRef<Element> | Element | ElementRef<Element>): Observable<boolean> {\n return this._attributeObserver.observe(element).pipe(\n map(() => ReadonlyObserver.isReadonly(getNativeElement(element))),\n distinctUntilChanged()\n );\n }\n\n /** @Hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._attributeObserver.unobserve(element);\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { ReadonlyViewModifier } from './readonly-view-modifier.interface';\nimport { setReadonlyState } from './set-readonly-state';\n\nexport class DefaultReadonlyViewModifier implements ReadonlyViewModifier {\n /** @hidden */\n constructor(private elementRef: ElementRef<Element>) {}\n\n /** @hidden */\n setReadonlyState = (isDisabled: boolean): void => {\n setReadonlyState(this.elementRef, isDisabled);\n };\n}\n","import { ElementRef, Inject, Injectable, NgZone, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, Observable, ReplaySubject, Subject } from 'rxjs';\nimport { distinctUntilChanged, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { ReadonlyObserver } from './readonly.observer';\nimport { ReadonlyBehavior } from './readonly-behavior.interface';\nimport { DefaultReadonlyViewModifier } from './default-readonly-view-modifier';\nimport { ReadonlyViewModifier } from './readonly-view-modifier.interface';\nimport { FDK_READONLY_DIRECTIVE } from './fdk-readonly.token';\n\n@Injectable()\nexport class FdkReadonlyProvider extends ReplaySubject<boolean> implements ReadonlyBehavior, OnDestroy {\n /** @Hidden */\n fdkReadonly = false;\n\n /** @hidden */\n private readonly _viewModifiers$: BehaviorSubject<ReadonlyViewModifier[]> = new BehaviorSubject<\n ReadonlyViewModifier[]\n >(this._getInitialViewModifiers());\n\n /** @hidden */\n private _readonlyChange$: Observable<boolean> = this._getReadonlyChange$();\n\n /** @hidden */\n private readonly _destroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef<Element>,\n private readonlyObserver: ReadonlyObserver,\n @Optional() @Self() @Inject(FDK_READONLY_DIRECTIVE) private selfReadonly$: ReadonlyBehavior,\n @Optional() @SkipSelf() @Inject(FDK_READONLY_DIRECTIVE) private parentReadonly$: ReadonlyBehavior\n ) {\n super(1);\n combineLatest([this._readonlyChange$, this._viewModifiers$])\n .pipe(\n tap(([isReadonly]) => this.setReadonlyState(isReadonly)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n this._readonlyChange$\n .pipe(\n tap((isDisabled) => (this.fdkReadonly = isDisabled)),\n tap((isDisabled) => this.next(isDisabled)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n addViewModifier(modifier: ReadonlyViewModifier): void {\n const viewModifiers = [...new Set([...this._viewModifiers$.value, modifier]).values()];\n this._viewModifiers$.next(viewModifiers);\n }\n\n /** @hidden */\n setReadonlyState(isReadonly: boolean): void {\n firstValueFrom(this.ngZone.onStable).then(() => {\n this._viewModifiers$.value.forEach((viewModifier) => viewModifier.setReadonlyState(isReadonly));\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n this._destroy$.next();\n this._destroy$.complete();\n this.readonlyObserver.unobserve(this.elementRef);\n }\n\n /** @hidden */\n private _getReadonlyChange$(): Observable<boolean> {\n let selfReadonly = false;\n let parentReadonly = false;\n\n if (this.parentReadonly$) {\n this.parentReadonly$\n .pipe(\n startWith(this.parentReadonly$.fdkReadonly),\n tap((d) => (parentReadonly = d)),\n distinctUntilChanged(),\n tap(() => {\n if (parentReadonly) {\n this.setReadonlyState(true);\n }\n if (!selfReadonly && !parentReadonly) {\n this.setReadonlyState(false);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n if (this.selfReadonly$) {\n this.selfReadonly$\n .pipe(\n startWith(this.selfReadonly$.fdkReadonly),\n tap((d) => (selfReadonly = d)),\n distinctUntilChanged(),\n tap((isReadonly) => {\n if (!parentReadonly) {\n this.setReadonlyState(isReadonly);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n return this.readonlyObserver.observe(this.elementRef).pipe(distinctUntilChanged());\n }\n\n /** @hidden */\n private _getInitialViewModifiers(): ReadonlyViewModifier[] {\n return !this.selfReadonly$ ? [new DefaultReadonlyViewModifier(this.elementRef)] : [this.selfReadonly$];\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\n\n/** @hidden */\nexport function setDisabledState(\n element: HasElementRef<Element> | Element | ElementRef<Element>,\n isDisabled: boolean,\n disabledClass: string,\n addDisabledClass: boolean\n): void {\n const htmlElement = getNativeElement(element);\n if (isDisabled) {\n if (addDisabledClass) {\n htmlElement.classList.add(disabledClass);\n }\n htmlElement.setAttribute('disabled', '');\n htmlElement.setAttribute('aria-disabled', 'true');\n } else {\n htmlElement.classList.remove(disabledClass);\n htmlElement.removeAttribute('disabled');\n htmlElement.removeAttribute('aria-disabled');\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { DisabledBehavior } from './disabled-behavior.interface';\n\nexport const FDK_DISABLED_DIRECTIVE = new InjectionToken<DisabledBehavior>('Disabled directive token');\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnClicked]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkClicked]', '[fnClicked]')\n }\n ]\n})\nexport class DeprecatedClickedDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkClicked]'\n})\nexport class ClickedDirective {\n /**\n * Event name.\n */\n static eventName = 'fdkClicked';\n /**\n * FdkClicked output. Sole purpose of existence of this directive is to just silence Angular Language Service.\n * This is only viable solution, since NO_ERRORS_SCHEMA silences everything and valuable exception might slip\n * through your eyes.\n */\n @Output() fdkClicked: Observable<MouseEvent | KeyboardEvent> = new EventEmitter();\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport { ClickedDirective } from './clicked.directive';\n\ntype EventHandlerFunction = ($event: Event) => void;\ntype HandlerRemoveFunction = () => void;\n\n@Injectable()\nexport class ClickedEventPlugin {\n /** @hidden */\n constructor(@Inject(DOCUMENT) private document: Document, @Inject(PLATFORM_ID) private platformId: any) {}\n\n /** @hidden */\n addEventListener(element: HTMLElement, eventName: string, handler: EventHandlerFunction): ($event: Event) => void {\n return this._setupEventBinding(element, handler);\n }\n\n /** @hidden */\n addGlobalEventListener(\n higherOrderElement: string,\n eventName: string,\n handler: EventHandlerFunction\n ): HandlerRemoveFunction {\n const target = this._parseHigherOrderElement(higherOrderElement);\n return this._setupEventBinding(target, handler);\n }\n\n /** @hidden */\n supports(eventName: string): boolean {\n return eventName === ClickedDirective.eventName;\n }\n\n /** @hidden */\n private _parseHigherOrderElement(selector: string): EventTarget {\n if (this.platformId !== 'browser') {\n return this.document;\n }\n switch (selector) {\n case 'window':\n return window;\n case 'document':\n return document;\n case 'body':\n return document.body;\n default:\n throw new Error(`Element selector [${selector}] not supported.`);\n }\n }\n\n /** @hidden */\n private _setupEventBinding(target: EventTarget, handler: EventHandlerFunction): HandlerRemoveFunction {\n const addProxyFunction = (): void => {\n target.addEventListener('click', proxyFunction, false);\n target.addEventListener('keydown', proxyFunction, false);\n };\n\n const removeProxyFunction = (): void => {\n target.removeEventListener('click', proxyFunction, false);\n target.removeEventListener('keydown', proxyFunction, false);\n };\n\n const proxyFunction = (event: Event | MouseEvent | KeyboardEvent): void => {\n if (event instanceof KeyboardEvent) {\n if (event.keyCode !== ENTER && event.keyCode !== SPACE) {\n return;\n }\n }\n handler(event);\n };\n\n addProxyFunction();\n\n return removeProxyFunction;\n }\n}\n","import { Inject, InjectionToken, isDevMode, ModuleWithProviders, NgModule } from '@angular/core';\nimport { EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';\nimport { ClickedEventPlugin } from './clicked-event.plugin';\nimport { ClickedDirective } from './clicked.directive';\n\nconst ClickedBehaviorModuleForRootLoadedOnce = new InjectionToken<boolean>(\n 'Checking Module providers had been loaded',\n { factory: () => false }\n);\n\n@NgModule({\n declarations: [ClickedDirective],\n exports: [ClickedDirective]\n})\nexport class ClickedBehaviorModule {\n /** @hidden */\n constructor(@Inject(ClickedBehaviorModuleForRootLoadedOnce) clickedBehaviorModuleForRootLoadedOnce: boolean) {\n if (!clickedBehaviorModuleForRootLoadedOnce && isDevMode()) {\n console.warn(\n 'ClickedBehaviorModule.forRoot() was not called from RootModule, you will not be able to use (fdkClicked) events'\n );\n }\n }\n\n /** @hidden */\n static forRoot(): ModuleWithProviders<ClickedBehaviorModule> {\n return {\n ngModule: ClickedBehaviorModule,\n providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: ClickedEventPlugin,\n multi: true\n },\n {\n provide: ClickedBehaviorModuleForRootLoadedOnce,\n useValue: true\n }\n ]\n };\n }\n}\n","import { ElementRef, Inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';\nimport { ClickedEventPlugin } from './clicked-event.plugin';\nimport { ClickedDirective } from './clicked.directive';\n\n@Injectable()\nexport class FdkClickedProvider extends Subject<MouseEvent | KeyboardEvent> implements OnDestroy {\n /** @hidden */\n private _preventDefault = true;\n /** @hidden */\n private _listeners!: Array<() => void>;\n /** @hidden */\n private readonly _fdkClickedEventManagerPluginLoaded: boolean;\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<Element>,\n private _renderer: Renderer2,\n @Inject(EVENT_MANAGER_PLUGINS) private eventManagerPlugins: any[]\n ) {\n super();\n this._fdkClickedEventManagerPluginLoaded = eventManagerPlugins.some((em) => em instanceof ClickedEventPlugin);\n this._initialize();\n }\n\n /** @hidden */\n setPreventDefault(val: boolean): void {\n this._preventDefault = val;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._listeners.forEach((d) => d());\n this.complete();\n }\n\n /** @hidden */\n private _initialize(): void {\n const eventsList: string[] = this._fdkClickedEventManagerPluginLoaded\n ? [ClickedDirective.eventName]\n : ['click', 'keydown.enter', 'keydown.space'];\n this._listeners = eventsList.map((eventName) =>\n this._renderer.listen(this._elementRef.nativeElement, eventName, (event: MouseEvent | KeyboardEvent) => {\n if (this._preventDefault) {\n event.preventDefault();\n }\n this.next(event);\n })\n );\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, filter, ReplaySubject } from 'rxjs';\nimport { DisabledBehavior } from './disabled-behavior.interface';\nimport { setDisabledState } from './set-disabled-state';\nimport { FDK_DISABLED_DIRECTIVE } from './fdk-disabled.token';\nimport { DisabledViewModifier } from './disabled-view-modifier.interface';\nimport { FdkClickedProvider } from '../clicked';\nimport { DestroyedService } from '../../services/destroyed.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnDisabled]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkDisabled]', '[fnDisabled]')\n }\n ]\n})\nexport class DeprecatedDisabledBehaviorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkDisabled]',\n standalone: true,\n providers: [\n {\n provide: FDK_DISABLED_DIRECTIVE,\n useExisting: DisabledBehaviorDirective\n },\n DestroyedService,\n FdkClickedProvider\n ]\n})\nexport class DisabledBehaviorDirective\n extends ReplaySubject<boolean>\n implements OnDestroy, AfterViewInit, DisabledBehavior, DisabledViewModifier\n{\n /** @hidden */\n @Input()\n set fdkDisabled(value: BooleanInput) {\n const val = coerceBooleanProperty(value);\n this._clicked.setPreventDefault(val);\n this._fdkDisableInput$.next(val);\n }\n\n get fdkDisabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Whether to add `disabledClass` class to the element.\n */\n @Input()\n addDisabledClass = true;\n\n /**\n * Disabled css class to apply to the element.\n */\n @Input()\n disabledClass = 'is-disabled';\n\n /** @hidden */\n private _disabled = false;\n /** @hidden */\n private readonly _fdkDisableInput$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _destroy$: DestroyedService,\n private _clicked: FdkClickedProvider\n ) {\n super(1);\n }\n\n /** @hidden */\n setDisabledState = (isDisabled: boolean): void => {\n setDisabledState(this._elementRef, isDisabled, this.disabledClass, this.addDisabledClass);\n };\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._fdkDisableInput$\n .pipe(\n filter((isDisabled) => isDisabled !== this._disabled),\n tap((isDisabled) => {\n this.setDisabledState(isDisabled);\n this._disabled = isDisabled;\n this.next(isDisabled);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DisabledBehaviorDirective, DeprecatedDisabledBehaviorDirective } from './disabled-behavior.directive';\n\n@NgModule({\n imports: [DisabledBehaviorDirective, DeprecatedDisabledBehaviorDirective],\n exports: [DisabledBehaviorDirective, DeprecatedDisabledBehaviorDirective]\n})\nexport class DisabledBehaviorModule {}\n","import { ElementRef } from '@angular/core';\nimport { DisabledViewModifier } from './disabled-view-modifier.interface';\nimport { setDisabledState } from './set-disabled-state';\n\nexport class DefaultDisabledViewModifier implements DisabledViewModifier {\n /** @hidden */\n constructor(private elementRef: ElementRef<Element>) {}\n\n /** @hidden */\n setDisabledState = (isDisabled: boolean): void => {\n setDisabledState(this.elementRef, isDisabled, 'is-disabled', true);\n };\n}\n","import { ElementRef, Inject, Injectable, NgZone, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, Observable, ReplaySubject, Subject } from 'rxjs';\nimport { distinctUntilChanged, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { FDK_DISABLED_DIRECTIVE } from './fdk-disabled.token';\nimport { DisabledObserver } from './disabled.observer';\nimport { DisabledBehavior } from './disabled-behavior.interface';\nimport { DisabledViewModifier } from './disabled-view-modifier.interface';\nimport { DefaultDisabledViewModifier } from './default-disabled-view-modifier';\n\n@Injectable()\nexport class FdkDisabledProvider extends ReplaySubject<boolean> implements DisabledBehavior, OnDestroy {\n /** @Hidden */\n fdkDisabled = false;\n /** @Hidden */\n private readonly _destroy$ = new Subject<void>();\n /** @hidden */\n private readonly _viewModifiers$: BehaviorSubject<DisabledViewModifier[]> = new BehaviorSubject<\n DisabledViewModifier[]\n >(this._getInitialViewModifiers());\n /** @hidden */\n private _disabledChange$: Observable<boolean> = this._getDisabledChange$();\n\n /** @hidden */\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef<HTMLElement>,\n private disabledObserver: DisabledObserver,\n @Optional() @Self() @Inject(FDK_DISABLED_DIRECTIVE) private selfDisabled$?: DisabledBehavior,\n @Optional() @SkipSelf() @Inject(FDK_DISABLED_DIRECTIVE) private parentDisabled$?: DisabledBehavior\n ) {\n super(1);\n combineLatest([this._disabledChange$, this._viewModifiers$])\n .pipe(\n tap(([isDisabled]) => this.setDisabledState(isDisabled)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n this._disabledChange$\n .pipe(\n tap((isDisabled) => (this.fdkDisabled = isDisabled)),\n tap((isDisabled) => this.next(isDisabled)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n addViewModifier(modifier: DisabledViewModifier): void {\n const viewModifiers = [...new Set([...this._viewModifiers$.value, modifier]).values()];\n this._viewModifiers$.next(viewModifiers);\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n firstValueFrom(this.ngZone.onStable).then(() => {\n this._viewModifiers$.value.forEach((viewModifier) => viewModifier.setDisabledState(isDisabled));\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n this._destroy$.next();\n this.disabledObserver.unobserve(this.elementRef);\n }\n\n /** @hidden */\n private _getDisabledChange$(): Observable<boolean> {\n let selfDisabled = false;\n let parentDisabled = false;\n\n if (this.parentDisabled$) {\n this.parentDisabled$\n .pipe(\n startWith(this.parentDisabled$.fdkDisabled),\n tap((d) => (parentDisabled = d)),\n distinctUntilChanged(),\n tap(() => {\n if (parentDisabled) {\n this.setDisabledState(true);\n }\n if (!selfDisabled && !parentDisabled) {\n this.setDisabledState(false);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n if (this.selfDisabled$) {\n this.selfDisabled$\n .pipe(\n startWith(this.selfDisabled$.fdkDisabled),\n tap((d) => (selfDisabled = d)),\n distinctUntilChanged(),\n tap((isDisabled) => {\n if (!parentDisabled) {\n this.setDisabledState(isDisabled);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n return this.disabledObserver.observe(this.elementRef).pipe(distinctUntilChanged());\n }\n\n /** @hidden */\n private _getInitialViewModifiers(): DisabledViewModifier[] {\n return !this.selfDisabled$ ? [new DefaultDisabledViewModifier(this.elementRef)] : [this.selfDisabled$];\n }\n}\n","import { ChangeDetectorRef, Injectable, OnDestroy, QueryList } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { combineLatest, merge, Observable, ReplaySubject, Subject, switchMap } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith, takeUntil, tap } from 'rxjs/operators';\nimport equal from 'fast-deep-equal';\nimport { SelectableItemToken } from './selectable-item.token';\nimport { SelectableListValueType, SelectComponentRootToken } from './select-component-root.token';\n\n@Injectable()\nexport class SelectionService<ElementType extends Element, ValueType = ElementType> implements OnDestroy {\n /** @hidden */\n value$: Observable<SelectableListValueType<ValueType>>;\n\n /** @hidden */\n private _items$!: Observable<SelectableItemToken<ElementType, ValueType>[]>;\n /** @hidden */\n private _value$ = new ReplaySubject<SelectableListValueType<ValueType>>(1);\n /** @hidden */\n private _normalizedValue$: Observable<ValueType[]>;\n /** @hidden */\n private _rootComponent!: SelectComponentRootToken<ElementType>;\n /** @hidden */\n private _destroy$ = new Subject<void>();\n /** @hidden */\n private _clear$ = new Subject<void>();\n /** @hidden */\n private _value: ValueType[] = [];\n\n /** @hidden */\n constructor(private _cd: ChangeDetectorRef) {\n this._normalizedValue$ = this._value$.pipe(\n distinctUntilChanged(equal),\n map((v) => coerceArray<ValueType>(v)),\n map((value) => (this._isMultipleMode ? value : [value[0]])),\n map((coerced: ValueType[]) => coerced.filter(Boolean))\n );\n this._normalizedValue$.pipe(takeUntil(this._destroy$)).subscribe((val) => (this._value = val));\n this.value$ = this._normalizedValue$.pipe(\n map((v) => this._getProperValues(v as SelectableListValueType<ElementType>)),\n shareReplay(1)\n );\n }\n\n /**\n * Register main select component, which holds config\n * */\n registerRootComponent(rootComponent: SelectComponentRootToken<ElementType>): void {\n this._rootComponent = rootComponent;\n }\n\n /**\n * Clear listeners\n */\n clear(): void {\n this._clear$.next();\n }\n\n /**\n * Initialize watcher for selection changes and user interactions\n * */\n initialize(queryList: QueryList<SelectableItemToken<ElementType, ValueType>>): void {\n this._items$ = queryList.changes.pipe(\n startWith(queryList),\n map((items: QueryList<SelectableItemToken<ElementType, ValueType>>) => items.toArray()),\n shareReplay(1)\n );\n this.listenToItemInteractions();\n }\n\n /**\n * Sets Value, on which service looks at and updates UI accordingly\n * */\n setValue(v: SelectableListValueType<ElementType>): void {\n this._value$.next(v);\n }\n\n /** @hidden */\n getValue(): SelectableListValueType<ElementType> {\n return this._getProperValues(this._value as SelectableListValueType<ElementType>);\n }\n\n /**\n * Start listening for item interactions. Will destroy() first.\n * Will silently continue if service was not initialized first.\n * */\n listenToItemInteractions(): void {\n this.clear();\n const unsubscribe$ = merge(this._destroy$, this._clear$);\n if (this._items$) {\n this._items$\n .pipe(\n map((items) => items.filter((itm) => itm.fdkSelectableItem !== false)),\n switchMap((items: SelectableItemToken<ElementType, ValueType>[]) => {\n const clickedEvents$ = items.map((item) => item.clicked.pipe(map(() => item)));\n return merge(...clickedEvents$);\n }),\n tap((clickedItem) => this._itemClicked(clickedItem)),\n takeUntil(unsubscribe$)\n )\n .subscribe();\n combineLatest([this._normalizedValue$, this._items$])\n .pipe(\n tap(([value, items]) => {\n if (\n value.length === 0 &&\n items.some((itm) => itm.getSelected()) &&\n !this._rootComponent.toggle\n ) {\n const selectedValues = this._getSelectedValues(items);\n this._rootComponent.onChange(selectedValues as SelectableListValueType<ElementType>);\n return this._value$.next(selectedValues as SelectableListValueType<ElementType>);\n }\n items.forEach((item) => {\n item.setSelected(value.includes(item.value));\n });\n this._cd.detectChanges();\n }),\n takeUntil(unsubscribe$)\n )\n .subscribe();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n /** @hidden */\n selectItem(item: SelectableItemToken<ElementType, ValueType>): void {\n if (item.fdkSelectableItem !== false) {\n const val: ValueType[] = [item.value, ...this._value];\n const properValues = this._getProperValues(val as SelectableListValueType<ElementType>);\n this._value$.next(properValues);\n this._rootComponent.onChange(properValues);\n }\n }\n\n /** @hidden */\n deselectItem(item: SelectableItemToken<ElementType, ValueType>): void {\n const canBeDeselected = this._rootComponent.toggle || (this._isMultipleMode && this._value.length > 1);\n if (canBeDeselected) {\n const val: SelectableListValueType<ElementType> = this._value.filter(\n (v) => v !== item.value\n ) as SelectableListValueType<ElementType>;\n const properValues = this._getProperValues(val);\n this._value$.next(properValues);\n this._rootComponent.onChange(properValues);\n }\n }\n\n /** @hidden */\n private get _isMultipleMode(): boolean {\n return this._rootComponent.multiple === true;\n }\n\n /** @hidden */\n private _itemClicked(item: SelectableItemToken<ElementType, ValueType>): void {\n const wasSelected = this._value.includes(item.value);\n if (wasSelected) {\n this.deselectItem(item);\n } else {\n this.selectItem(item);\n }\n }\n\n /** @hidden */\n private _getSelectedValues(items: SelectableItemToken<ElementType, ValueType>[]): ElementType | ElementType[] {\n const selectedValues = items.filter((itm) => itm.getSelected()).map((itm) => itm.value);\n return this._getProperValues(selectedValues as SelectableListValueType<ElementType>);\n }\n\n /** @hidden */\n private _getProperValues(values: SelectableListValueType<ElementType>): SelectableListValueType<ElementType> {\n return this._isMultipleMode ? values : values[0];\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Observable } from 'rxjs';\n\nexport type SelectableListValueType<T> = T extends any[] ? Array<any> : any;\n\nexport abstract class SelectComponentRootToken<T = any> {\n abstract selected?: SelectableListValueType<T>;\n abstract selectedChange: Observable<SelectableListValueType<T>>;\n abstract multiple?: BooleanInput;\n abstract toggle?: BooleanInput;\n abstract onChange: (value: SelectableListValueType<T>) => void;\n}\n","import { ElementRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\n\nexport abstract class SelectableItemToken<ElementType extends Element = HTMLElement, TValue = ElementType>\n implements HasElementRef<ElementType>\n{\n abstract value: TValue;\n abstract fdkSelectableItem?: boolean;\n\n abstract elementRef(): ElementRef<ElementType>;\n\n abstract setSelected(isSelected: boolean): void;\n\n abstract getSelected(): boolean;\n\n abstract clicked: Observable<MouseEvent | KeyboardEvent>;\n}\n","/**\n * Function, which generates decorator. Passed mutator will be called during value set\n */\nexport function alternateSetter(mutator: (value: any, self: Record<string | symbol, any>) => any): PropertyDecorator {\n return function (targetObj: Record<string | symbol, any>, propertyKey: string | symbol) {\n const _key = Symbol();\n targetObj[_key] = targetObj[propertyKey];\n Object.defineProperty(targetObj, propertyKey, {\n get() {\n return this[_key];\n },\n set(v: any) {\n this[_key] = mutator.call(this, v, this);\n }\n });\n };\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { alternateSetter } from './setter-alternator';\n\n/**\n * Decorator for coercing passed value to boolean, using @angular/cdk coerceBooleanProperty\n */\nexport const coerceBoolean = alternateSetter(coerceBooleanProperty);\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, Input, Output, QueryList } from '@angular/core';\nimport { SelectionService } from './selection.service';\nimport { SelectableListValueType, SelectComponentRootToken } from './select-component-root.token';\nimport { SelectableItemToken } from './selectable-item.token';\nimport { coerceBoolean } from '../../decorators/coerce-boolean';\n\n@Directive({\n selector: '[fdkSelectableList]',\n exportAs: 'fdkSelectableList',\n standalone: true,\n providers: [\n {\n provide: SelectComponentRootToken,\n useExisting: SelectableListDirective\n },\n SelectionService\n ]\n})\nexport class SelectableListDirective<T extends Element = HTMLElement, V = any>\n implements SelectComponentRootToken<T>, AfterViewInit\n{\n /** @hidden */\n @Output()\n selectedChange = new EventEmitter<SelectableListValueType<T>>();\n\n /** @hidden */\n @Input()\n @coerceBoolean\n toggle: BooleanInput = false;\n\n /** @hidden */\n @Input()\n @coerceBoolean\n multiple: BooleanInput = false;\n\n /** @hidden */\n @Input()\n set selected(value: SelectableListValueType<T>) {\n this._selectionService.setValue(value);\n }\n\n /** @hidden */\n @ContentChildren(SelectableItemToken) selectableItems!: QueryList<SelectableItemToken<T, V>>;\n\n /** @hidden */\n constructor(private _selectionService: SelectionService<T, V>) {\n this._selectionService.registerRootComponent(this);\n }\n\n /** @hidden */\n select(item: SelectableItemToken<T, V>): void {\n this._selectionService.selectItem(item);\n }\n\n /** @hidden */\n deselect(item: SelectableItemToken<T, V>): void {\n this._selectionService.deselectItem(item);\n }\n\n /** @hidden */\n toggleSelect(item: SelectableItemToken<T, V>): void {\n if (item.getSelected()) {\n this.deselect(item);\n } else {\n this.select(item);\n }\n }\n\n /** @hidden */\n onChange(value: SelectableListValueType<T>): void {\n this.selectedChange.emit(value);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._selectionService.initialize(this.selectableItems);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_SELECTABLE_ITEM_PROVIDER = new InjectionToken(\n 'Token for providing custom behaviors to the SelectableListItem'\n);\n","import { ChangeDetectorRef, Directive, ElementRef, Inject, Input, Optional, Output } from '@angular/core';\nimport { merge, Observable } from 'rxjs';\nimport { SelectableItemToken } from './selectable-item.token';\nimport { FDK_SELECTABLE_ITEM_PROVIDER } from './selectable-list.tokens';\nimport { FdkDisabledProvider } from '../disabled';\nimport { FdkReadonlyProvider } from '../readonly';\nimport { SelectionService } from './selection.service';\nimport { FdkClickedProvider } from '../clicked';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\n@Directive({\n selector: '[fdkSelectableItem]',\n exportAs: 'fdkSelectableItem',\n standalone: true,\n providers: [\n {\n provide: SelectableItemToken,\n useExisting: SelectableItemDirective\n },\n FdkReadonlyProvider,\n FdkDisabledProvider,\n FdkClickedProvider\n ]\n})\nexport class SelectableItemDirective<ElementType extends Element = HTMLElement, ValueType = any>\n implements SelectableItemToken<ElementType, ValueType>\n{\n /** @hidden */\n @Input()\n set value(val: ValueType) {\n this._value = val;\n }\n get value(): ValueType {\n if (this.provider && this.provider.value) {\n return this.provider.value;\n }\n return this._value;\n }\n\n /** @hidden */\n @Input()\n set fdkSelectableItem(value: BooleanInput) {\n const isSelectable = coerceBooleanProperty(value);\n if (isSelectable !== this._selectable) {\n this._selectable = isSelectable;\n }\n }\n\n get fdkSelectableItem(): boolean {\n let selectable = this._selectable;\n if (typeof this.provider?.fdkSelectableItem !== 'undefined') {\n selectable = this.provider.fdkSelectableItem;\n }\n return (\n selectable &&\n (!this.disabled$ || !this.disabled$?.fdkDisabled) &&\n (!this.readonly$ || !this.readonly$?.fdkReadonly)\n );\n }\n\n /** @hidden */\n @Output()\n clicked: Observable<MouseEvent | KeyboardEvent>;\n\n /** @hidden */\n private _value!: ValueType;\n /** @hidden */\n private _selected = false;\n /** @hidden */\n private _selectable = true;\n\n /** @hidden */\n constructor(\n @Optional()\n @Inject(FDK_SELECTABLE_ITEM_PROVIDER)\n private provider: Partial<SelectableItemToken<ElementType, ValueType>>,\n private disabled$: FdkDisabledProvider,\n private readonly$: FdkReadonlyProvider,\n private selectionService: SelectionService<ElementType, ValueType>,\n private _elementRef: ElementRef<ElementType>,\n private _cd: ChangeDetectorRef,\n _clicked: FdkClickedProvider\n ) {\n this.clicked = this.provider?.clicked || _clicked.asObservable();\n this._listenToDisablingEvents();\n }\n\n /** @hidden */\n getSelected(): boolean {\n if (this.provider?.getSelected) {\n return this.provider.getSelected();\n }\n return this._selected;\n }\n\n /** @hidden */\n setSelected(isSelected: boolean): void {\n if (this.provider?.setSelected) {\n this.provider.setSelected(isSelected);\n } else {\n this._selected = isSelected;\n const htmlElement = this._elementRef.nativeElement;\n const { classList } = htmlElement;\n if (isSelected) {\n classList.add('is-selected');\n } else {\n classList.remove('is-selected');\n }\n htmlElement.setAttribute('aria-selected', `${isSelected}`);\n }\n }\n\n /** @hidden */\n elementRef(): ElementRef<ElementType> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _listenToDisablingEvents(): void {\n const disablingEvents$: Observable<boolean>[] = [];\n if (this.disabled$) {\n disablingEvents$.push(this.disabled$);\n }\n if (this.readonly$) {\n disablingEvents$.push(this.readonly$);\n }\n merge(...disablingEvents$).subscribe(() => this._updateSelectionAndSelectableWatcher());\n }\n\n /** @hidden */\n private _updateSelectionAndSelectableWatcher(): void {\n if (this.disabled$?.fdkDisabled) {\n this.selectionService.deselectItem(this);\n }\n this._updateSelectableWatcher();\n }\n\n /** @hidden */\n private _updateSelectableWatcher(): void {\n this.selectionService.listenToItemInteractions();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SelectableListDirective } from './selectable-list.directive';\nimport { SelectableItemDirective } from './selectable-item.directive';\n\n@NgModule({\n imports: [SelectableListDirective, SelectableItemDirective],\n exports: [SelectableListDirective, SelectableItemDirective]\n})\nexport class SelectableListModule {}\n","import { inject, InjectionToken } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { startWith } from 'rxjs/operators';\n\n/**\n * Injection token for the viewport size observable.\n * Emits the viewport size in pixels, which are outputted by the ViewportRuler\n * from @angular/cdk/overlay.\n */\nexport const ViewportSizeObservable = new InjectionToken<Observable<number>>('ViewportSizeObservable', {\n providedIn: 'root',\n factory: () => {\n const viewportRuler = inject(ViewportRuler);\n return viewportRuler\n .change(50)\n .pipe(map((e) => (e.target as Window).innerWidth))\n .pipe(startWith(window.innerWidth));\n }\n});\n","export const ResponsiveBreakpoints = {\n S: 600,\n M: 1024,\n L: 1440\n} as const;\n\ntype breakpointName = keyof typeof ResponsiveBreakpoints | 'XL';\n\nexport type BreakpointName = Lowercase<breakpointName> | Uppercase<breakpointName>;\n\n/** @hidden */\nexport function getBreakpointName(width: number): breakpointName {\n if (width < ResponsiveBreakpoints.S) {\n return 'S';\n }\n if (width < ResponsiveBreakpoints.M) {\n return 'M';\n }\n if (width < ResponsiveBreakpoints.L) {\n return 'L';\n }\n return 'XL';\n}\n","/* eslint-disable @angular-eslint/no-input-rename */\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n inject,\n Input,\n NgModule,\n OnChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty, coerceElement } from '@angular/cdk/coercion';\nimport { ViewportSizeObservable } from '../../tokens/viewport-size.observable';\nimport { DestroyedService, ResizeObserverService } from '../../services';\nimport { finalize, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\nimport { BreakpointName, getBreakpointName } from './responsive-breakpoints';\n\n/**\n * Directive to show/hide element on specific breakpoint or range of window width.\n * Uses native ngIf directive to show/hide element.\n */\n@Directive({\n selector:\n '[fdkBreakpoint], [fdkBreakpointS], [fdkBreakpointM], [fdkBreakpointL], [fdkBreakpointXL], [fdkBreakpointLt], [fdkBreakpointGt]',\n standalone: true,\n providers: [DestroyedService]\n})\nexport class BreakpointDirective implements OnChanges, AfterViewInit {\n /**\n * Provide list of the breakpoints to show element on.\n * */\n @Input()\n set fdkBreakpoint(value: BreakpointName[]) {\n const providedValues = value.map((v) => v.toLowerCase());\n this.showOnS = providedValues.includes('s');\n this.showOnM = providedValues.includes('m');\n this.showOnL = providedValues.includes('l');\n this.showOnXL = providedValues.includes('xl');\n }\n\n /**\n * Show element on S breakpoint.\n * S - 0 - 599px\n * */\n @Input('fdkBreakpointS')\n set showOnS(value: BooleanInput) {\n this._showOnS = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on M breakpoint.\n * M - 0 - 1023px\n * */\n @Input('fdkBreakpointM')\n set showOnM(value: BooleanInput) {\n this._showOnM = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on L breakpoint.\n * L - 0 - 1439px\n * */\n @Input('fdkBreakpointL')\n set showOnL(value: BooleanInput) {\n this._showOnL = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on XL breakpoint.\n * */\n @Input('fdkBreakpointXL')\n set showOnXL(value: BooleanInput) {\n this._showOnXL = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on breakpoint less than provided value.\n * */\n @Input()\n fdkBreakpointLt: number;\n\n /**\n * Show element on breakpoint greater than provided value.\n * */\n @Input()\n fdkBreakpointGt: number;\n\n /**\n * Observe element width changes.\n */\n @Input('fdkBreakpointObserve')\n set observationSource(value: HTMLElement | ElementRef<HTMLElement>) {\n const element = coerceElement(value);\n this._sizeObservable$.next(\n this._resizeObserverService.observe(value).pipe(\n map(() => element.offsetWidth),\n startWith(element.offsetWidth)\n )\n );\n }\n\n /** @hidden */\n templateViewRef?: EmbeddedViewRef<unknown>;\n\n /** @hidden */\n private _showOnS = false;\n /** @hidden */\n private _showOnM = false;\n /** @hidden */\n private _showOnL = false;\n /** @hidden */\n private _showOnXL = false;\n\n /** @hidden */\n private viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private _destroyed$ = inject(DestroyedService);\n\n /** @hidden */\n private _resizeObserverService = inject(ResizeObserverService);\n\n /** @hidden */\n onChanges$ = new Subject<void>();\n\n /** @hidden */\n _sizeObservable$: BehaviorSubject<Observable<number>> = new BehaviorSubject<Observable<number>>(this.viewportSize$);\n\n /** @hidden */\n constructor(private readonly templateRef: TemplateRef<any>, private readonly viewContainer: ViewContainerRef) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n combineLatest([this._sizeObservable$.pipe(switchMap((obs$) => obs$)), this.onChanges$.pipe(startWith(void 0))])\n .pipe(\n map(([w]) => [w, getBreakpointName(w)] as const),\n map(([width, breakpointName]) => this._shouldShow(width, breakpointName)),\n tap((shouldShow) => {\n if (shouldShow) {\n if (!this.templateViewRef) {\n this.viewContainer.clear();\n this.templateViewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n this.templateViewRef.detectChanges();\n }\n } else {\n this.viewContainer.clear();\n this.templateViewRef = undefined;\n }\n }),\n takeUntil(this._destroyed$),\n finalize(() => {\n this.viewContainer.clear();\n this.templateViewRef = undefined;\n })\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.onChanges$.next();\n }\n\n /** @hidden */\n private _shouldShow(width: number, currentBreakpoint: BreakpointName): boolean {\n const shouldShowOnBreakpoints = [\n this._showOnS && 'S',\n this._showOnM && 'M',\n this._showOnL && 'L',\n this._showOnXL && 'XL'\n ].filter(Boolean);\n const shouldShow = shouldShowOnBreakpoints.includes(currentBreakpoint);\n if (this.fdkBreakpointLt) {\n return width < this.fdkBreakpointLt;\n }\n if (this.fdkBreakpointGt) {\n return width > this.fdkBreakpointGt;\n }\n return shouldShow;\n }\n}\n\n@NgModule({\n imports: [BreakpointDirective],\n exports: [BreakpointDirective]\n})\nexport class BreakpointModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const DND_ITEM = new InjectionToken('Drag and drop Item');\nexport const DND_LIST = new InjectionToken('Drag and drop List');\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { ElementChord, FdDropEvent, LinkPosition, ElementPosition, DndItem, FdDndDropType } from '../dnd.interfaces';\nimport { DND_ITEM, DND_LIST } from '../tokens';\n\n@Directive({\n selector: '[fdkDndList], [fd-dnd-list]',\n providers: [{ provide: DND_LIST, useExisting: forwardRef(() => DndListDirective) }]\n})\nexport class DndListDirective<T> implements AfterContentInit, OnDestroy {\n /**\n * Defines if the element is allowed to be dragged in 2 dimensions,\n * When true - replace indicator will be displayed vertically\n */\n @Input()\n gridMode = false;\n\n /**\n * Defines drop strategy:\n * * `shift` mode will create line after closest drop element.\n * * `group` mode will create replace indicator on whole closest drop element.\n * * `auto` mode will create line after closest drop element,\n * if dragged element coordinates are shifted for 30% from center of the closest drop element.\n * Otherwise, it will create replace indicator on whole closest drop element.\n *\n * `shift` mode is the default.\n */\n @Input()\n dropMode: FdDndDropType = 'shift';\n\n /**\n * Threshold of dragged item over another item to define which type of `dropMode` should be used.\n */\n @Input()\n threshold = 0.3;\n\n /**\n * @deprecated\n * Use `dropMode` property for better configuration.\n *\n * @description\n * When enabled, replace indicator will appear on whole element, instead of horizontal/vertical line before/after element.\n */\n @Input()\n set replaceMode(value: boolean) {\n this._replaceMode = value;\n this.dropMode = value ? 'group' : 'shift';\n this._detectedDropMode = this.dropMode;\n }\n\n get replaceMode(): boolean {\n return this._replaceMode;\n }\n\n /** @hidden */\n private _replaceMode = false;\n\n /** Array of items, that will be sorted */\n @Input()\n items: Array<T>;\n\n /** Defines if drag and drop feature should be enabled for list items */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this._changeDraggableState(draggable);\n }\n\n /** Event that is thrown, when items are reordered */\n @Output()\n readonly itemsChange = new EventEmitter<Array<T>>();\n\n /** Event that is thrown, when the item is dropped */\n @Output()\n readonly itemDropped = new EventEmitter<FdDropEvent<T>>();\n\n /** @hidden */\n @ContentChildren(DND_ITEM)\n dndItems: QueryList<DndItem>;\n\n /** @hidden */\n private _elementsCoordinates: ElementChord[];\n\n /** @hidden */\n private _closestItemIndex: number | null = null;\n\n /** @hidden */\n private _closestItemPosition: 'before' | 'after' | null = null;\n\n /** An RxJS Subject that will kill the current data stream (for unsubscribing) */\n private readonly _refresh$ = new Subject<void>();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private _dndItemReference: DndItem[];\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-dnd-list';\n\n /** @hidden */\n private _detectedDropMode: 'shift' | 'group';\n\n /** @hidden */\n private _linesRemoved = true;\n\n /** @hidden */\n private _indicatorsRemoved = true;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._changeDraggableState(this._draggable);\n this.dndItems.changes.pipe(takeUntil(this._onDestroy$), startWith(0)).subscribe(() => this._refreshQueryList());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Method called, when the item is being moved by 1 px */\n onMove(mousePosition: ElementPosition, draggedItemIndex: number): void {\n /** Temporary object, to store lowest distance values */\n let closestItemIndex: number | null = null;\n\n const closestItem = this._elementsCoordinates.find((element, index) => {\n /** Check if element can be replaced */\n if (!element.stickToPosition && closestItemIndex !== index) {\n const isMouseOnElement = _isMouseOnElement(element, mousePosition);\n if (isMouseOnElement) {\n closestItemIndex = index;\n\n return true;\n }\n }\n return false;\n });\n\n if (!closestItem) {\n closestItemIndex = null;\n }\n\n /** If the closest element is different from the old one, new one is picked. It prevents from performance issues */\n if (\n (closestItemIndex || closestItemIndex === 0) &&\n (closestItemIndex !== this._closestItemIndex || this.dropMode === 'auto')\n ) {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n this._closestItemIndex = closestItemIndex;\n this._closestItemPosition = this._elementsCoordinates[closestItemIndex].position;\n // If closest item index is same as dragged item, just remove indicators\n if (closestItemIndex === draggedItemIndex) {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n return;\n }\n /** Generating line, that shows where the element will be placed, on drop */\n if (this.dropMode === 'group') {\n this._createReplaceIndicator(this._closestItemIndex);\n } else if (this.dropMode === 'shift') {\n this._createLine(this._closestItemIndex, this._closestItemPosition);\n } else {\n this._selectDropModeIndicator(draggedItemIndex, closestItem, closestItemIndex);\n }\n }\n }\n\n /** Method called, when element is started to be dragged */\n dragStart(index: number): void {\n const draggedItemElement = this._dndItemReference[index].elementRef;\n /** Counting all the element's chords */\n this._elementsCoordinates = this._dndItemReference.map((item: DndItem) =>\n item.getElementCoordinates(this._isBefore(draggedItemElement, item.elementRef), this.gridMode)\n );\n }\n\n /** Method called, when element is released */\n dragEnd(draggedItemIndex: number): void {\n const items = this.items.slice();\n const replacedItemIndex = this._closestItemIndex;\n const draggedItem = items[draggedItemIndex];\n\n if (replacedItemIndex || replacedItemIndex === 0) {\n if (draggedItemIndex !== replacedItemIndex) {\n if (draggedItemIndex < replacedItemIndex) {\n for (let i = draggedItemIndex; i < replacedItemIndex; i++) {\n items[i] = items[i + 1];\n }\n } else {\n for (let i = draggedItemIndex; i > replacedItemIndex; i--) {\n items[i] = items[i - 1];\n }\n }\n\n /** Replacing items */\n items[replacedItemIndex] = draggedItem;\n\n this.itemsChange.emit(items);\n }\n\n this.itemDropped.emit({\n replacedItemIndex,\n draggedItemIndex,\n items,\n insertAt: this._closestItemPosition,\n mode: this.dropMode !== 'auto' ? this.dropMode : this._detectedDropMode\n });\n\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n\n /** Reset */\n this._elementsCoordinates = [];\n this._closestItemIndex = null;\n this._closestItemPosition = null;\n }\n }\n\n /** @hidden */\n private _selectDropModeIndicator(\n draggedItemIndex: number,\n closestItem: ElementChord | undefined,\n closestItemIndex: number\n ): void {\n if (!closestItem || !this._dndItemReference[draggedItemIndex]) {\n return;\n }\n\n let newDetectedDropMode: 'shift' | 'group';\n const draggedElmCoords =\n this._dndItemReference[draggedItemIndex].elementRef.nativeElement.getBoundingClientRect();\n\n const closestItemBoundaries = getElementBoundaries(closestItem, this.threshold);\n const draggedItemStartCoords = getElementStartCoords(draggedElmCoords, closestItem.position);\n\n if (\n _between(draggedItemStartCoords.x, closestItemBoundaries.x.start, closestItemBoundaries.x.end) &&\n _between(draggedItemStartCoords.y, closestItemBoundaries.y.start, closestItemBoundaries.y.end)\n ) {\n newDetectedDropMode = 'group';\n } else {\n newDetectedDropMode = 'shift';\n }\n\n if (newDetectedDropMode === this._detectedDropMode && (!this._linesRemoved || !this._indicatorsRemoved)) {\n return;\n }\n\n this._detectedDropMode = newDetectedDropMode;\n\n if (this._detectedDropMode === 'shift') {\n this._createLine(closestItemIndex, this._elementsCoordinates[closestItemIndex].position);\n } else {\n this._createReplaceIndicator(closestItemIndex);\n }\n }\n\n /** @hidden */\n private _removeAllLines(): void {\n this._linesRemoved = true;\n this.dndItems.forEach((item) => item.removeLine());\n }\n\n /** @hidden */\n private _removeAllReplaceIndicators(): void {\n this._indicatorsRemoved = true;\n this.dndItems.forEach((item) => item.removeReplaceIndicator());\n }\n\n /** @hidden */\n private _createLine(closestItemIndex: number, linkPosition: LinkPosition): void {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n this._linesRemoved = false;\n this._dndItemReference[closestItemIndex].createLine(linkPosition, this.gridMode);\n }\n\n /** @hidden */\n private _createReplaceIndicator(closestItemIndex: number): void {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n this._indicatorsRemoved = false;\n this._dndItemReference[closestItemIndex].createReplaceIndicator();\n }\n\n /** @hidden */\n private _refreshQueryList(): void {\n const refresh$ = merge(this._refresh$, this._onDestroy$);\n this._refresh$.next();\n\n this._dndItemReference = this.dndItems.toArray();\n\n this._changeDraggableState(this._draggable);\n\n this.dndItems.forEach((item, index) => {\n item.moved.pipe(takeUntil(refresh$)).subscribe((position: ElementPosition) => this.onMove(position, index));\n item.started.pipe(takeUntil(refresh$)).subscribe(() => this.dragStart(index));\n item.released.pipe(takeUntil(refresh$)).subscribe(() => this.dragEnd(index));\n });\n }\n\n /**\n * @hidden\n * Return information if element is placed before the dragged element\n */\n private _isBefore(draggedElement: ElementRef, targetElement: ElementRef): boolean {\n /** Sometimes the element are not straight in one column, that's why offset is needed */\n const VERTICAL_OFFSET = 20;\n\n /** Distances from the top of screen */\n const draggedElementBound = <DOMRect>draggedElement.nativeElement.getBoundingClientRect();\n const targetElementBound = <DOMRect>targetElement.nativeElement.getBoundingClientRect();\n\n if (draggedElementBound.top - targetElementBound.top > VERTICAL_OFFSET) {\n /** If element is higher than the dragged element, it's for sure before */\n return true;\n } else if (targetElementBound.top - draggedElementBound.top > VERTICAL_OFFSET) {\n /** If element is lower than the dragged element, it's for sure after */\n return false;\n } else {\n /** If elements are in same level, the horizontal position decides if it's before/after */\n return draggedElementBound.left - targetElementBound.left > 0;\n }\n }\n\n /** @hidden */\n private _changeDraggableState(draggable: boolean): void {\n if (this.dndItems) {\n this.dndItems.forEach((item) => {\n item.listDraggable = draggable;\n item.changeCDKDragState();\n });\n }\n }\n}\n\nfunction _isMouseOnElement(element: ElementChord, mousePosition: ElementPosition): boolean {\n const startX = element.x;\n const endX = element.x + element.width;\n\n const startY = element.y;\n const endY = element.y + element.height;\n\n return _between(mousePosition.x, startX, endX) && _between(mousePosition.y, startY, endY);\n}\n\nfunction _between(x: number, min: number, max: number): boolean {\n return x >= min && x <= max;\n}\n\ninterface ElementBoundaries {\n x: {\n start: number;\n end: number;\n };\n y: {\n start: number;\n end: number;\n };\n}\n\nfunction getElementStartCoords(rect: DOMRect, position: ElementChord['position']): { x: number; y: number } {\n return {\n x: position === 'after' ? rect.x + rect.width : rect.x,\n y: position === 'after' ? rect.y + rect.height : rect.y\n };\n}\n\nfunction getElementBoundaries(coordinates: ElementChord, threshold: number): ElementBoundaries {\n const widthOffset = coordinates.width * (coordinates.position === 'after' ? 1 : -1);\n const heightOffset = coordinates.height * (coordinates.position === 'after' ? 1 : -1);\n const xStart = coordinates.position === 'after' ? coordinates.x : coordinates.x + coordinates.width;\n const xEnd = xStart + widthOffset + (widthOffset / 2) * threshold;\n const yStart = coordinates.position === 'after' ? coordinates.y : coordinates.y + coordinates.height;\n const yEnd = yStart + heightOffset + (heightOffset / 2) * threshold;\n return {\n x: {\n start: xStart > xEnd ? xEnd : xStart,\n end: xStart > xEnd ? xStart : xEnd\n },\n y: {\n start: yStart > yEnd ? yEnd : yStart,\n end: yStart > yEnd ? yStart : yEnd\n }\n };\n}\n","import {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DndItem, ElementChord, ElementPosition, LinkPosition } from '../dnd.interfaces';\nimport { Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { DND_ITEM } from '../tokens';\n\n@Directive({\n selector: '[fdkDndItem], [fd-dnd-item]',\n providers: [DragDrop, { provide: DND_ITEM, useExisting: forwardRef(() => DndItemDirective) }]\n})\nexport class DndItemDirective implements DndItem, AfterContentInit, OnDestroy {\n /**\n * Whether to apply \"fd-dnd-item\" class.\n * @default true\n */\n @Input()\n @HostBinding('class.fd-dnd-item')\n applyDragItemClass = true;\n\n /** Container selector */\n @Input()\n containerSelector?: string;\n\n /** Event thrown when the element is moved by 1px */\n @Output()\n readonly moved = new EventEmitter<ElementPosition>();\n\n /** Event thrown when the element is released */\n @Output()\n readonly released = new EventEmitter<void>();\n\n /** Event thrown when the element is started to be dragged */\n @Output()\n readonly started = new EventEmitter<void>();\n\n /**\n * Defines if the item is prevented from being moved by other elements.\n * So nothing can be placed just before and just after it\n */\n @Input()\n stickInPlace = false;\n\n /** Defines if element is draggable */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this.changeCDKDragState();\n }\n\n /** Class added to element, when it's dragged. */\n @Input()\n classWhenElementDragged = 'fd-dnd-on-drag';\n\n /** Defines if every element in list is draggable */\n listDraggable = true;\n\n /** @hidden\n * Drag reference, object created from DND CDK Service\n */\n private _dragRef: DragRef;\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _placeholderElement: HTMLElement | null;\n\n /** @hidden */\n private _lineElement: HTMLElement | null;\n\n /** @hidden */\n private _replaceIndicator: HTMLElement | null;\n\n /** @hidden */\n constructor(public elementRef: ElementRef, private _dragDrop: DragDrop) {}\n\n /** @hidden */\n getElementCoordinates(isBefore: boolean): ElementChord {\n /** Takes distance from the beginning of window page */\n const rect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n const position: LinkPosition = isBefore ? 'before' : 'after';\n\n /** Vertically distance is counted by distance from top of the side + half of the element height */\n return {\n x: rect.left,\n position,\n y: rect.top,\n stickToPosition: this.stickInPlace,\n width: rect.width,\n height: rect.height\n };\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setCDKDrag();\n this._listenElementEvents();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._dragRef.dispose();\n }\n\n /** @hidden */\n onCdkMove(position: ElementPosition): void {\n this.moved.emit(position);\n }\n\n /** @hidden */\n onCdkDragReleased(): void {\n /** Remove class which is added, when element is dragged */\n this.elementRef.nativeElement.classList.remove(this.classWhenElementDragged);\n this.released.emit();\n\n /** Resets the position of element. */\n this._dragRef.reset();\n\n /** Removes placeholder element */\n this.removePlaceholder();\n }\n\n /** @hidden */\n onCdkDragStart(): void {\n /** Adds class */\n this.elementRef.nativeElement.classList.add(this.classWhenElementDragged);\n\n if (!this._placeholderElement) {\n this.createPlaceholder();\n }\n this.started.emit();\n }\n\n /** @hidden */\n removePlaceholder(): void {\n if (this._placeholderElement && this._placeholderElement.parentNode) {\n // IE11 workaround\n this._placeholderElement.parentNode.removeChild(this._placeholderElement);\n this._placeholderElement = null;\n }\n }\n\n /** @hidden */\n removeLine(): void {\n if (this._lineElement && this._lineElement.parentNode) {\n // IE11 workaround\n this._lineElement.parentNode.removeChild(this._lineElement);\n this._lineElement = null;\n }\n }\n\n /** @hidden */\n removeReplaceIndicator(): void {\n if (this._replaceIndicator && this._replaceIndicator.parentNode) {\n // IE11 workaround\n this._replaceIndicator.parentNode.removeChild(this._replaceIndicator);\n this._replaceIndicator = null;\n }\n }\n\n /** @hidden */\n createReplaceIndicator(): void {\n this._replaceIndicator = document.createElement('DIV');\n this._replaceIndicator.classList.add('fd-replace-indicator');\n\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._replaceIndicator);\n }\n\n /** @hidden */\n createLine(position: LinkPosition, gridMode: boolean): void {\n /** Creating of line element */\n this._lineElement = document.createElement('div');\n this._lineElement.classList.add('drop-area__line');\n\n if (gridMode) {\n this._lineElement.classList.add('drop-area__line--vertical');\n } else {\n this._lineElement.classList.add('drop-area__line--horizontal');\n }\n if (position === 'after') {\n this._lineElement.classList.add('after');\n }\n if (position === 'before') {\n this._lineElement.classList.add('before');\n }\n\n /** Putting element to the container */\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._lineElement);\n }\n\n /** @hidden */\n changeCDKDragState(): void {\n if (this._dragRef) {\n this._dragRef.disabled = !(this._draggable && this.listDraggable);\n }\n }\n\n /** @hidden */\n private createPlaceholder(): void {\n const placeholder = this.elementRef.nativeElement.cloneNode(true);\n /** Cloning container element */\n this._placeholderElement = placeholder;\n\n placeholder.classList.add('fd-dnd-placeholder');\n this._setPlaceholderStyles();\n\n /** Including element to the container\n * IE11 equivalent to `this.element.nativeElement.after(clone);`\n */\n this._placeAfter(this.elementRef.nativeElement, placeholder);\n }\n\n /** @hidden */\n private _setPlaceholderStyles(): void {\n const offset = this._getOffsetToParent(this.elementRef.nativeElement);\n\n if (!offset || !this._placeholderElement) {\n return;\n }\n\n this._placeholderElement.style.top = offset.y + 'px';\n this._placeholderElement.style.left = offset.x + 'px';\n this._placeholderElement.style.position = 'absolute';\n this._placeholderElement.style.zIndex = '0';\n this._placeholderElement.style.opacity = '0.3';\n\n this._placeholderElement.style.width = this.elementRef.nativeElement.offsetWidth + 'px';\n this._placeholderElement.style.height = this.elementRef.nativeElement.offsetHeight + 'px';\n }\n\n /** @hidden */\n private _getOffsetToParent(element: Element): { x: number; y: number } | undefined {\n const parentElement = element.parentElement;\n if (!parentElement) {\n return;\n }\n\n const parentTop = parentElement.getBoundingClientRect().top;\n const parentLeft = parentElement.getBoundingClientRect().left;\n\n return {\n x: Math.abs(element.getBoundingClientRect().left - parentLeft),\n y: Math.abs(element.getBoundingClientRect().top - parentTop)\n };\n }\n\n /** @hidden */\n private _setCDKDrag(): void {\n this._dragRef = this._dragDrop.createDrag(this.elementRef);\n this._dragRef.disabled = !this._draggable;\n this._subscriptions.add(this._dragRef.moved.subscribe((event) => this.onCdkMove(event.pointerPosition)));\n this._subscriptions.add(this._dragRef.released.subscribe(() => this.onCdkDragReleased()));\n this._subscriptions.add(this._dragRef.started.subscribe(() => this.onCdkDragStart()));\n }\n\n /** IE11 equivalent of Node.after() Method */\n private _placeAfter(element: Element, cloneNode: Node): void {\n const docFrag = document.createDocumentFragment();\n docFrag.appendChild(cloneNode);\n element.parentNode?.insertBefore(docFrag, element.nextSibling);\n }\n\n /** @hidden */\n private _listenElementEvents(): void {\n this._subscriptions.add(\n this.released\n .pipe(\n // postpone blur\n delay(0)\n )\n .subscribe(() => {\n if (this.containerSelector) {\n this.elementRef.nativeElement.children[0].blur();\n }\n this.elementRef.nativeElement.blur();\n })\n );\n }\n}\n","import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ChangeDetectorRef, Directive, Input, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KeyUtil } from '../../functions';\nimport { RtlService } from '../../services/rtl.service';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardItem.\n */\n@Directive({ selector: '[fdkDndKeyboardGroup], [fdDndKeyboardGroup]' })\nexport class DndKeyboardGroupDirective {\n /** Group of items */\n @Input()\n groups: any[][];\n\n /** Whether to disable drag & drop */\n @Input()\n disableKeyboardDragDrop = false;\n\n /** Used to apply indexes when moving between groups */\n @Input()\n orientation: 'horizontal' | 'vertical' = 'vertical';\n\n /** @hidden */\n _onDndItemFocus$ = new Subject<[number, number]>();\n\n /** Custom function to call when moving item inside the group */\n @Input()\n customMoveFn = (group: any[], fromIndex: number, toIndex: number): void =>\n moveItemInArray(group, fromIndex, toIndex);\n\n /** Custom function to call when moving item between groups */\n @Input()\n customTransferFn = (group: any[], nextGroup: any[], fromIndex: number, toIndex: number): void =>\n transferArrayItem(group, nextGroup, fromIndex, toIndex);\n\n /** @hidden */\n constructor(private readonly _cdr: ChangeDetectorRef, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Process drag & drop */\n processDragDrop(event: KeyboardEvent, itemIndex: number, groupIndex: number): void {\n if (this.disableKeyboardDragDrop || !event.altKey) {\n return;\n }\n\n const isRtl = this._rtlService.rtl.value;\n\n const group = this.groups[groupIndex];\n const indexInNextGroup = this.orientation === 'vertical' ? 0 : itemIndex;\n\n const nextGroupExists = this.groups.length > groupIndex + 1;\n const prevGroupExists = !!groupIndex;\n\n if (KeyUtil.isKeyCode(event, RIGHT_ARROW) && (isRtl ? prevGroupExists : nextGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? -1 : 1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, LEFT_ARROW) && (isRtl ? nextGroupExists : prevGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? 1 : -1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex + 1);\n this._focusDndItem(groupIndex, itemIndex + 1);\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex - 1);\n this._focusDndItem(groupIndex, itemIndex - 1);\n }\n }\n\n /** @hidden Focus after moving elements with keyboard */\n private _focusDndItem(groupIndex: number, itemIndex: number): void {\n this._cdr.detectChanges();\n\n this._onDndItemFocus$.next([groupIndex, itemIndex]);\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { DndKeyboardGroupDirective } from '../dnd-keyboard-group/dnd-keyboard-group.directive';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardGroup.\n * We are using _groups from fdDndKeyboardGroup and adding a possibility to move cards.\n * Please see example below:\n * @Component({\n * selector: 'cdk-drag-drop-example',\n * template: `<div\n * cdkDragListGroup\n * fdDndKeyboardGroup\n * [groups]=\"groups\"\n * >\n * <div\n * *ngFor=\"let group of groups; let groupIndex = index\"\n * cdkDragList\n * >\n * Group #{{ groupIndex }}\n * <div\n * *ngFor=\"let item of group; let index = index\"\n * cdkDrag\n * fdDndKeyboardItem\n * [itemIndex]=\"index\"\n * [groupIndex]=\"groupIndex\"\n * [dndKeyboardDisabled]=\"flag for disable/enable keyboard navigation if needed\"\n * tabindex=\"0\"\n * >\n * Item #{{ item }}\n * </div>\n * </div>\n * </div>`,\n * })\n * export class CdkDragDropExample {\n * groups = [\n * [1, 2, 3],\n * [4, 5, 6],\n * ];\n * }\n */\n@Directive({ selector: '[fdkDndKeyboardItem], [fdDndKeyboardItem]' })\nexport class DndKeyboardItemDirective implements OnInit, OnDestroy {\n /** item index in group(column) */\n @Input()\n itemIndex: number;\n\n /** group(column) index */\n @Input()\n groupIndex: number;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private readonly _dndGroup: DndKeyboardGroupDirective, private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dndGroup._onDndItemFocus$.subscribe(([groupIndex, itemIndex]) => {\n if (this.groupIndex === groupIndex && this.itemIndex === itemIndex) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeyDown(event: KeyboardEvent): void {\n this._dndGroup.processDragDrop(event, this.itemIndex, this.groupIndex);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DndListDirective } from './dnd-list/dnd-list.directive';\nimport { DndItemDirective } from './dnd-item/dnd-item.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { DndKeyboardItemDirective } from './dnd-keyboard-item/dnd-keyboard-item.directive';\nimport { DndKeyboardGroupDirective } from './dnd-keyboard-group/dnd-keyboard-group.directive';\n\n@NgModule({\n imports: [CommonModule, DragDropModule],\n exports: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective],\n declarations: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective]\n})\nexport class DragAndDropModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RtlService } from './services/rtl.service';\nimport { ThemesService } from './services/themes.service';\nimport {\n AutoCompleteModule,\n ClickedBehaviorModule,\n DisabledBehaviorModule,\n FocusableGridModule,\n FocusableItemModule,\n FocusableListModule,\n InitialFocusModule,\n LineClampModule,\n OnlyDigitsModule,\n OverflowListModule,\n ReadonlyBehaviorModule,\n RepeatModule,\n ResizeModule,\n SelectableListModule,\n TemplateModule,\n TruncateModule\n} from './directives';\nimport { DragAndDropModule } from './drag-and-drop/drag-and-drop.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FocusableItemModule,\n FocusableListModule,\n FocusableGridModule,\n DragAndDropModule,\n OnlyDigitsModule,\n TruncateModule,\n LineClampModule,\n OverflowListModule,\n RepeatModule,\n ResizeModule,\n TemplateModule,\n AutoCompleteModule,\n DisabledBehaviorModule,\n SelectableListModule,\n ReadonlyBehaviorModule,\n ClickedBehaviorModule,\n InitialFocusModule\n ],\n exports: [\n FocusableItemModule,\n FocusableListModule,\n FocusableGridModule,\n DragAndDropModule,\n OnlyDigitsModule,\n TruncateModule,\n LineClampModule,\n OverflowListModule,\n RepeatModule,\n ResizeModule,\n TemplateModule,\n AutoCompleteModule,\n DisabledBehaviorModule,\n SelectableListModule,\n ReadonlyBehaviorModule,\n ClickedBehaviorModule,\n InitialFocusModule\n ],\n providers: [RtlService, ThemesService]\n})\nexport class UtilsModule {}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isBlank } from '../typecheck';\n\n/** @hidden */\nexport function coerceArraySafe<T>(value: T | T[]): T[] {\n return isBlank(value) ? [] : coerceArray(value);\n}\n","import { ElementRef } from '@angular/core';\n\nexport interface HasElementRef<ElementType extends Element = HTMLElement> {\n elementRef(): ElementRef<ElementType>;\n}\n\nexport const ELEMENT_REF_EXCEPTION = 'HasElementRef interface has to be implemented';\n","import { ELEMENT_REF_EXCEPTION } from '../interfaces/has-element-ref.interface';\nimport { uuidv4 } from '../functions/uuidv4-generator';\nimport { CssClassBuilder } from '../interfaces/css-class-builder.interface';\n\n/**\n * Method decorator to apply css class to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement CssClassBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssClass(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): string[] {\n const self = this as unknown as CssClassBuilder & { _uuidv4?: string };\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const classListToApply: string[] = sanitize(originalMethod.apply(this));\n\n const elementRef = self.elementRef.apply(this);\n\n const nativeElement: HTMLElement & { _classMap?: any } = elementRef?.nativeElement;\n\n if (nativeElement) {\n if (!nativeElement._classMap) {\n nativeElement._classMap = {};\n }\n\n if (!self._uuidv4) {\n self._uuidv4 = uuidv4();\n }\n\n const currentClassList = Array.from(nativeElement.classList);\n\n const previousClassListToApply = nativeElement._classMap[self._uuidv4] || [];\n\n const newClassList = createComponentClassList(currentClassList, previousClassListToApply, classListToApply);\n\n nativeElement.className = newClassList.join(' ');\n\n nativeElement._classMap[self._uuidv4] = classListToApply;\n }\n\n return classListToApply;\n };\n}\n\n/** Filter list to unique items */\nfunction unique(value: unknown, index: number, list: unknown[]): boolean {\n return list.indexOf(value) === index;\n}\n\n/** Splits merged classes, removes falsy elements and leaves only unique items */\nfunction sanitize(array: string[]): string[] {\n return array\n .filter(Boolean)\n .reduce((classList: string[], cssClass: string) => [...classList, ...cssClass.split(/\\s+/)], [])\n .filter(unique);\n}\n\nfunction firstCommonElementIndex(array1: string[], array2: string[]): number {\n return array1.findIndex((element) => array2.indexOf(element) !== -1);\n}\n\n/** Create set of component classes based on previous set and new set */\nfunction createComponentClassList(\n allClasses: string[],\n previousComponentClassList: string[],\n newComponentClassList: string[]\n): string[] {\n allClasses = allClasses.slice();\n let index = firstCommonElementIndex(allClasses, previousComponentClassList);\n index = index === -1 ? 0 : index;\n allClasses.splice(index, previousComponentClassList.length, ...newComponentClassList);\n\n return allClasses;\n}\n","import { ELEMENT_REF_EXCEPTION, HasElementRef } from '../interfaces/has-element-ref.interface';\nimport { Hash } from '../datatypes/hash.datatype';\n\n/**\n * Method decorator to apply css styles to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement HasElementRef or CssStyleBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssStyle(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): Hash<number | string> {\n const self = this as unknown as HasElementRef;\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const _styles: Hash<number | string> = originalMethod.apply(this);\n if (self.elementRef()) {\n const htmlElement = self.elementRef().nativeElement as HTMLElement;\n Object.keys(_styles).forEach((key) => {\n htmlElement.style[key] = _styles[key];\n });\n }\n\n return _styles;\n };\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { alternateSetter } from './setter-alternator';\n\nexport const coerceCssPixel = alternateSetter(coerceCssPixelValue);\n","import { CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Nullable } from '../models/nullable';\n\nexport abstract class DynamicComponentContainer<T = TemplateRef<any> | Type<any>> {\n /** @hidden */\n abstract portalOutlet: CdkPortalOutlet;\n\n /** @hidden */\n childContent: Nullable<T> = undefined;\n\n /** @hidden */\n protected _componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n protected _contentLoaded$ = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n protected constructor(\n protected _elementRef: ElementRef,\n protected _injector: Injector,\n protected _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden Load received content */\n protected abstract _loadContent(): void;\n\n /** @hidden Load received content as component */\n protected _createFromComponent(content: Type<any>): void {\n this.portalOutlet?.attachedRef?.destroy();\n const injector = Injector.create({\n parent: this._injector,\n providers: []\n });\n this._componentRef = this.portalOutlet.attach(new ComponentPortal(content, null, injector));\n this._cdr.markForCheck();\n }\n\n /** @hidden Load received content as embedded view */\n protected _createFromTemplate(content: TemplateRef<any>, context: any): void {\n this.portalOutlet?.attachedRef?.destroy();\n this._componentRef = this.portalOutlet.attach(\n new TemplatePortal(content, null as unknown as ViewContainerRef, context)\n );\n this._cdr.markForCheck();\n }\n}\n","import { Injector } from '@angular/core';\n\nexport class DynamicComponentInjector implements Injector {\n /** @hidden */\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) {}\n\n /**\n *\n * @param token\n * @param notFoundValue\n */\n get(token: any, notFoundValue?: any): void {\n const value = this._additionalTokens.get(token);\n\n if (value) {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","import {\n ComponentFactoryResolver,\n Injectable,\n ApplicationRef,\n Injector,\n EmbeddedViewRef,\n ComponentRef,\n TemplateRef,\n Type,\n Compiler,\n NgModuleFactory,\n ViewContainerRef\n} from '@angular/core';\nimport { DynamicComponentInjector } from './dynamic-component-injector';\nimport { DynamicComponentConfig } from './dynamic-component-config';\n\n/**\n * Service used to dynamically generate components like dialogs/alerts/notifications\n */\n@Injectable()\nexport class DynamicComponentService {\n /** @hidden */\n constructor(\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _applicationRef: ApplicationRef,\n private readonly _injector: Injector,\n private readonly _compiler: Compiler\n ) {}\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param componentType Type of component that should be rendered.\n * @param config Configuration that will be passed to the component.\n * @param inject enables to provide preconfigured component injector and dependencies\n */\n public createDynamicComponent<T>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n componentType: Type<T>,\n config: DynamicComponentConfig,\n inject: { injector?: Injector; services?: any[] } = {}\n ): ComponentRef<T> {\n const { injector, services } = inject;\n const dependenciesMap = this._createDependencyMap(services);\n const componentRef = this._createComponent<T>(componentType, dependenciesMap, injector);\n this._passExternalContent<T>(componentRef, content);\n this._attachToContainer<T>(componentRef, config);\n\n return componentRef;\n }\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param moduleType Type of module that should be compiled.\n * @param componentType Type of component that should be rendered.\n * @param containerRef The container that the dynamic component is appended to.\n * @param injector enables to provide preconfigured component injector\n */\n async createDynamicModule<M, C>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n moduleType: Type<M> | NgModuleFactory<M>,\n componentType: Type<C>,\n containerRef: ViewContainerRef,\n injector?: Injector\n ): Promise<ComponentRef<C>> {\n const moduleFactory =\n moduleType instanceof NgModuleFactory ? moduleType : await this._compiler.compileModuleAsync<M>(moduleType);\n const moduleRef = moduleFactory.create(injector || this._injector);\n const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(componentType);\n\n containerRef.clear();\n\n const componentRef: ComponentRef<C> = containerRef.createComponent(componentFactory);\n\n this._passExternalContent<C>(componentRef, content);\n\n return componentRef;\n }\n\n /** Function that destroys dynamic component */\n public destroyComponent(componentRef: ComponentRef<any>): void {\n this._applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n\n /** @hidden */\n private _createDependencyMap(services: any[] = []): WeakMap<any, any> {\n const dependencyMap = new WeakMap();\n services.filter((service) => !!service).forEach((service) => dependencyMap.set(service.constructor, service));\n return dependencyMap;\n }\n\n /** @hidden */\n private _attachToContainer<V>(componentRef: ComponentRef<V>, config: DynamicComponentConfig): void {\n const configObj = Object.assign({}, config);\n const componentEl = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n if (configObj.container !== 'body') {\n configObj.container?.appendChild(componentEl);\n } else {\n document.body.appendChild(componentEl);\n }\n }\n\n /** @hidden */\n private _createComponent<V>(\n componentType: Type<V>,\n dependenciesMap: WeakMap<any, any>,\n injector?: Injector\n ): ComponentRef<V> {\n const dynamicComponentInjector = new DynamicComponentInjector(injector || this._injector, dependenciesMap);\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(componentType);\n const componentRef = componentFactory.create(dynamicComponentInjector);\n this._applicationRef.attachView(componentRef.hostView);\n return componentRef;\n }\n\n /** @hidden */\n private _passExternalContent<V>(\n componentRef: ComponentRef<V>,\n content: TemplateRef<any> | Type<any> | string | Record<string, any>\n ): void {\n // TODO: this approach should be revisited, it can cause issues, that is really hard to debug\n if (Object.prototype.hasOwnProperty.call(componentRef.instance, 'childContent')) {\n (componentRef.instance as any).childContent = content;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LIST_ITEM_COMPONENT = new InjectionToken<string[]>('ListItemComponent');\n\nexport interface ListItemInterface {\n selected: boolean;\n\n link: boolean;\n\n focus(): void;\n}\n","import { ElementRef, OnChanges, OnInit, Input, Directive } from '@angular/core';\n\n/*\n This abstract class allows the user to set their own custom styles on a Fundamental Library for Angular directive, in addition to the\n styles the library needs to add itself.\n When library styles were added through the directive's host: {'[class]'} property, any styles the user added would be\n overwritten. By extending this class, we instead add library styles to the user's classList rather than replace them.\n */\n\n/** @hidden */\n@Directive()\nexport abstract class AbstractFdNgxClass implements OnInit, OnChanges {\n /** @hidden */\n private _elementRef: ElementRef;\n\n /** @hidden */\n @Input() class: string; // user's custom classes\n\n /*\n each directive that extends this class will implement this function and populate it with one or more calls to\n the '_addClassToElement' function, passing the style names to be added with each call\n */\n /** @hidden */\n abstract _setProperties(): void;\n\n /** @hidden */\n _setClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = `${className} ${this.class}`;\n }\n\n /** @hidden */\n _clearElementClass(): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = '';\n }\n\n /** @hidden */\n _addClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.add(...className.split(' '));\n }\n\n /** @hidden */\n _addStyleToElement(attribute, value): void {\n (this._elementRef.nativeElement as HTMLElement).style[attribute] = value;\n }\n\n /** @hidden */\n protected constructor(elementRef: ElementRef) {\n this._elementRef = elementRef;\n this._setProperties();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n const classList = (this._elementRef.nativeElement as HTMLElement).classList;\n while (classList.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n classList.remove(classList.item(0)!);\n }\n if (this.class) {\n this._addClassToElement(this.class);\n }\n this._setProperties();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._setProperties();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'displayFnPipe',\n standalone: true\n})\nexport class DisplayFnPipe implements PipeTransform {\n /** Transform value with display function. */\n transform(value: any, displayFn: any, ...args: any): string {\n return displayFn(value, ...args);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Nullable } from '../models/nullable';\n\n@Pipe({\n name: 'fdFilterStrings',\n standalone: true\n})\nexport class FilterStringsPipe implements PipeTransform {\n /**\n * Performs filtering.\n * @param values Array of items.\n * @param params Search parameters.\n */\n transform(values: any[] = [], params: { searchTerm: Nullable<string>; key: string }): any[] {\n if (!params.searchTerm) {\n return values;\n }\n if (params.key) {\n values = values.filter((item) =>\n item[params.key].toLocaleLowerCase().includes(params.searchTerm?.toLocaleLowerCase())\n );\n } else {\n values = values.filter((item) => item.toLocaleLowerCase().includes(params.searchTerm?.toLocaleLowerCase()));\n }\n return values;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ContentDensity } from '../interfaces/content-density';\nimport { isCompactDensity } from './../functions/is-compact-density';\n\n@Pipe({ name: 'isCompactDensity', standalone: true })\nexport class IsCompactDensityPipe implements PipeTransform {\n /** Check if the content density is compact. */\n transform(size: ContentDensity): boolean {\n return isCompactDensity(size);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { isPromise, isSubscribable } from '../typecheck';\nimport { Observable } from 'rxjs';\n\n@Pipe({\n name: 'fdkAsyncOrSync',\n standalone: true,\n pure: false\n})\nexport class AsyncOrSyncPipe implements OnDestroy, PipeTransform {\n /** @hidden */\n private _cdr: ChangeDetectorRef | null;\n /** @hidden */\n private _asyncPipe: AsyncPipe | null;\n\n /** @hidden */\n constructor(ref: ChangeDetectorRef) {\n this._cdr = ref;\n this._asyncPipe = new AsyncPipe(this._cdr);\n }\n\n /**\n * Transforms raw async-like value into static one.\n * @param value raw value. Can be either a static value, or Promise-like, or Observable-like.\n */\n transform<T>(value: T | Promise<T> | Observable<T>): T | null {\n return !isPromise(value) && !isSubscribable(value) ? value : this._asyncPipe?.transform(value) ?? null;\n }\n\n /** @Hidden */\n ngOnDestroy(): void {\n this._asyncPipe?.ngOnDestroy();\n this._asyncPipe = null;\n this._cdr = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport escape from 'lodash-es/escape';\n\n@Pipe({\n name: 'highlight',\n standalone: true\n})\nexport class SearchHighlightPipe implements PipeTransform {\n /** Highlight search term in string. */\n transform(value: string, args: string, active: boolean = true, includeSpans: boolean = false): string {\n value = escape(value);\n let result: string = value;\n if (args && value && active) {\n const testStr: string = escape(args.trim().toLowerCase());\n const startIndex = value.toLowerCase().indexOf(testStr);\n if (startIndex !== -1) {\n const matchingString = value.substr(startIndex, testStr.length);\n result = value.replace(matchingString, '<strong>' + matchingString + '</strong>');\n }\n }\n if (includeSpans) {\n result = '<span>' + result + '</span>';\n }\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'twoDigits',\n standalone: true\n})\nexport class TwoDigitsPipe implements PipeTransform {\n /** Transform number to two digits. */\n transform(value: number, enable: boolean = true): string {\n if ((value || value === 0) && enable) {\n return value < 10 ? '0' + value : value.toString();\n } else {\n return String(value);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe',\n standalone: true\n})\nexport class SafePipe implements PipeTransform {\n /** @hidden */\n constructor(protected sanitizer: DomSanitizer) {}\n\n /** Sanitize HTML string. */\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { get } from 'lodash-es';\n\n@Pipe({ name: 'valueByPath', standalone: true })\nexport class ValueByPathPipe implements PipeTransform {\n /** Get value by path. */\n transform(value: any, key: string): any {\n return get(value, key);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate',\n standalone: true\n})\nexport class TruncatePipe implements PipeTransform {\n /** Truncate string to given length. */\n transform(value: string, limit: number = 500): string {\n return value && value.length > limit ? value.substring(0, limit) + '...' : value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { isPromise, isSubscribable } from '../typecheck';\n\n@Pipe({\n name: 'fdkMakeAsync',\n pure: true,\n standalone: true\n})\nexport class MakeAsyncPipe implements PipeTransform {\n /**\n * Transforms raw value into observable.\n * @param value raw value. Can be either a static value, or Promise-like, or Observable-like.\n */\n transform<T>(value: T | Promise<T> | Observable<T>): Observable<T> | Promise<T> {\n return isPromise(value) || isSubscribable(value) ? value : of(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AsyncOrSyncPipe } from './async-or-sync.pipe';\n\nimport { DisplayFnPipe } from './displayFn.pipe';\nimport { FilterStringsPipe } from './filter-strings.pipe';\nimport { SearchHighlightPipe } from './search-highlight.pipe';\nimport { TwoDigitsPipe } from './two-digits.pipe';\nimport { SafePipe } from './safe.pipe';\nimport { ValueByPathPipe } from './value-by-path.pipe';\nimport { IsCompactDensityPipe } from './is-compact.pipe';\nimport { TruncatePipe } from './truncate.pipe';\nimport { MakeAsyncPipe } from './make-async.pipe';\n\n@NgModule({\n imports: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe,\n FilterStringsPipe,\n MakeAsyncPipe,\n AsyncOrSyncPipe\n ],\n exports: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe,\n FilterStringsPipe,\n MakeAsyncPipe,\n AsyncOrSyncPipe\n ]\n})\nexport class PipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RtlService","i1.FocusKeyManagerListDirective","i1.TabbableElementService","i1","i1.AttributeObserver","takeUntil","i1.FocusableObserver","i2.DestroyedService","i2.TabbableElementService","i3","i1.DestroyedService","i2","i3.FocusableObserver","startWith","i1.ReadonlyObserver","filter","i2.FdkClickedProvider","i1.DisabledObserver","i1.SelectionService","i1.FdkDisabledProvider","i2.FdkReadonlyProvider","i3.SelectionService","i4.FdkClickedProvider","map","switchMap","i1.DndKeyboardGroupDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-cdk-utils.mjs","sources":["../../../../libs/cdk/src/lib/utils/services/rtl.service.ts","../../../../libs/cdk/src/lib/utils/consts/error-messages.ts","../../../../libs/cdk/src/lib/utils/consts/unicode-letters.regex.ts","../../../../libs/cdk/src/lib/utils/consts/unicode-numbers.regex.ts","../../../../libs/cdk/src/lib/utils/consts/overflow-priority-score.ts","../../../../libs/cdk/src/lib/utils/services/themes.service.ts","../../../../libs/cdk/src/lib/utils/functions/key-util.ts","../../../../libs/cdk/src/lib/utils/deprecated-selector.class.ts","../../../../libs/cdk/src/lib/utils/directives/auto-complete/auto-complete.directive.ts","../../../../libs/cdk/src/lib/utils/directives/auto-complete/auto-complete.module.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager.tokens.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focus-key-manager/focus-key-manager-helpers.module.ts","../../../../libs/cdk/src/lib/utils/directives/ignore-click-on-selection/tokens.ts","../../../../libs/cdk/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.ts","../../../../libs/cdk/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.ts","../../../../libs/cdk/src/lib/utils/services/tabbable-element.service.ts","../../../../libs/cdk/src/lib/utils/directives/initial-focus/initial-focus.directive.ts","../../../../libs/cdk/src/lib/utils/directives/initial-focus/initial-focus.module.ts","../../../../libs/cdk/src/lib/utils/directives/line-clamp/line-clamp.directive.ts","../../../../libs/cdk/src/lib/utils/directives/line-clamp/line-clamp.module.ts","../../../../libs/cdk/src/lib/utils/functions/element-size.ts","../../../../libs/cdk/src/lib/utils/functions/uuidv4-generator.ts","../../../../libs/cdk/src/lib/utils/functions/parser-file-size.ts","../../../../libs/cdk/src/lib/utils/functions/scroll.ts","../../../../libs/cdk/src/lib/utils/functions/random-color-accent.ts","../../../../libs/cdk/src/lib/utils/functions/resize-observable.ts","../../../../libs/cdk/src/lib/utils/functions/intersection-observable.ts","../../../../libs/cdk/src/lib/utils/functions/is-compact-density.ts","../../../../libs/cdk/src/lib/utils/tokens/module-deprecations.token.ts","../../../../libs/cdk/src/lib/utils/functions/module-deprecations-provider.ts","../../../../libs/cdk/src/lib/utils/functions/consumer-provider-factory.ts","../../../../libs/cdk/src/lib/utils/functions/get-document-font-size.ts","../../../../libs/cdk/src/lib/utils/functions/is-odd.ts","../../../../libs/cdk/src/lib/utils/directives/only-digits/only-digits.directive.ts","../../../../libs/cdk/src/lib/utils/directives/only-digits/only-digits.module.ts","../../../../libs/cdk/src/lib/utils/directives/overflow-list/overflow-list-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/overflow-list/overflow-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/overflow-list/overflow-list.module.ts","../../../../libs/cdk/src/lib/utils/directives/repeat/repeat.directive.ts","../../../../libs/cdk/src/lib/utils/directives/repeat/repeat.module.ts","../../../../libs/cdk/src/lib/utils/directives/resize/resize-handle.directive.ts","../../../../libs/cdk/src/lib/utils/directives/resize/resize.directive.ts","../../../../libs/cdk/src/lib/utils/directives/resize/resize.module.ts","../../../../libs/cdk/src/lib/utils/directives/template/template.directive.ts","../../../../libs/cdk/src/lib/utils/directives/template/template.module.ts","../../../../libs/cdk/src/lib/utils/directives/truncate/truncate.directive.ts","../../../../libs/cdk/src/lib/utils/directives/truncate/truncate.module.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable-item.tokens.ts","../../../../libs/cdk/src/lib/utils/services/content-density.service.ts","../../../../libs/cdk/src/lib/utils/services/destroyed.service.ts","../../../../libs/cdk/src/lib/utils/services/focus-trap.service.ts","../../../../libs/cdk/src/lib/utils/services/keyboard-support/keyboard-support.service.ts","../../../../libs/cdk/src/lib/utils/services/local-storage.service.ts","../../../../libs/cdk/src/lib/utils/services/resize-observer.service.ts","../../../../libs/cdk/src/lib/utils/helpers/get-native-element.ts","../../../../libs/cdk/src/lib/utils/services/observers/attribute.observer.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/is-element-focusable-by-default.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/disabled.observer.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable.observer.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-item/focusable-item.module.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/focusable-list.tokens.ts","../../../../libs/cdk/src/lib/utils/typecheck.ts","../../../../libs/cdk/src/lib/utils/helpers/range-selector.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/scroll.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/focusable-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-list/focusable-list.module.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-grid/focusable-grid.tokens.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-grid/focusable-grid.directive.ts","../../../../libs/cdk/src/lib/utils/directives/focusable-grid/focusable-grid.module.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/fdk-readonly.token.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/set-readonly-state.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/readonly-behavior.directive.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/readonly-behavior.module.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/readonly.observer.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/default-readonly-view-modifier.ts","../../../../libs/cdk/src/lib/utils/directives/readonly/fdk-readonly-provider.service.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/set-disabled-state.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/fdk-disabled.token.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/clicked.directive.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/clicked-event.plugin.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/clicked-behavior.module.ts","../../../../libs/cdk/src/lib/utils/directives/clicked/fdk-clicked-provider.service.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/disabled-behavior.directive.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/disabled-behavior.module.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/default-disabled-view-modifier.ts","../../../../libs/cdk/src/lib/utils/directives/disabled/fdk-disabled-provider.service.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selection.service.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/select-component-root.token.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-item.token.ts","../../../../libs/cdk/src/lib/utils/decorators/setter-alternator.ts","../../../../libs/cdk/src/lib/utils/decorators/coerce-boolean.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-list.directive.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-list.tokens.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-item.directive.ts","../../../../libs/cdk/src/lib/utils/directives/selectable-list/selectable-list.module.ts","../../../../libs/cdk/src/lib/utils/tokens/viewport-size.observable.ts","../../../../libs/cdk/src/lib/utils/directives/breakpoints/responsive-breakpoints.ts","../../../../libs/cdk/src/lib/utils/directives/breakpoints/breakpoint.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/tokens.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-list/dnd-list.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-item/dnd-item.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.ts","../../../../libs/cdk/src/lib/utils/drag-and-drop/drag-and-drop.module.ts","../../../../libs/cdk/src/lib/utils/utils.module.ts","../../../../libs/cdk/src/lib/utils/coercion/array.ts","../../../../libs/cdk/src/lib/utils/interfaces/has-element-ref.interface.ts","../../../../libs/cdk/src/lib/utils/decorators/apply-css-class.decorator.ts","../../../../libs/cdk/src/lib/utils/decorators/apply-css-style.decorator.ts","../../../../libs/cdk/src/lib/utils/decorators/coerce-css-pixel.ts","../../../../libs/cdk/src/lib/utils/dynamic-component/dynamic-component-container.ts","../../../../libs/cdk/src/lib/utils/dynamic-component/dynamic-component-injector.ts","../../../../libs/cdk/src/lib/utils/dynamic-component/dynamic-component.service.ts","../../../../libs/cdk/src/lib/utils/list-item/list-item-utils.ts","../../../../libs/cdk/src/lib/utils/abstract-fd-ngx-class.ts","../../../../libs/cdk/src/lib/utils/pipes/displayFn.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/filter-strings.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/is-compact.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/async-or-sync.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/search-highlight.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/two-digits.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/safe.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/value-by-path.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/truncate.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/make-async.pipe.ts","../../../../libs/cdk/src/lib/utils/pipes/pipe.module.ts","../../../../libs/cdk/src/lib/utils/fundamental-ngx-cdk-utils.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\nimport { Optional, Injectable, Inject, InjectionToken } from '@angular/core';\n\nconst DefaultRtlLanguages = ['ar', 'arc', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ku', 'ps', 'ur', 'yi'];\nexport const RTL_LANGUAGE = new InjectionToken<string[]>('RtlLanguage');\n\n@Injectable()\n/**\n * Service taking care of RTL trough behavior subject\n * language list is used to determine if rtl should be enabled at start\n * user can overwrite default languages by using injection token RtlLanguageToken\n */\nexport class RtlService {\n /** RTL value */\n rtl: BehaviorSubject<boolean>;\n\n /** @hidden */\n constructor(@Optional() @Inject(RTL_LANGUAGE) injectedRtlLanguages: string[]) {\n injectedRtlLanguages = injectedRtlLanguages || DefaultRtlLanguages;\n\n const filtered = injectedRtlLanguages.filter((language) => navigator.language.includes(language));\n\n this.rtl = new BehaviorSubject(filtered.length > 0);\n }\n}\n","export const MOBILE_CONFIG_ERROR = `Missing configuration object for mobile version of the component.\n Consult the documentation on how to provide MobileModeConfiguration object for this component.\n`;\n\nexport const THEME_SWITCHER_ROUTER_MISSING_ERROR = `You need to import RouterModule to enable theme settings via the url.`;\n\nexport const INVALID_DATE_ERROR = 'Invalid Date';\n","/**\n * Instead of `/\\p{L}/u` because of it's not working in IE11 and Edge\n * - https://github.com/Microsoft/ChakraCore/issues/2969\n * */\n// eslint-disable-next-line max-len\nexport const LETTERS_UNICODE_RANGE = `[A-Za-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]`;\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_REGEX = new RegExp(LETTERS_UNICODE_RANGE, 'g');\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_GROUP_REGEX = new RegExp(`(${LETTERS_UNICODE_RANGE})+`, 'g');\n","/**\n * Polyfill for `/\\p{Nd}/u` to work in IE11 and Edge\n */\n// eslint-disable-next-line max-len\nexport const DECIMAL_NUMBER_UNICODE_RANGE = `[0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]`;\nexport const DECIMAL_NUMBER_UNICODE_REGEX = new RegExp(DECIMAL_NUMBER_UNICODE_RANGE, 'g');\nexport const DECIMAL_NUMBER_UNICODE_GROUP_REGEX = new RegExp(`(${DECIMAL_NUMBER_UNICODE_RANGE})+`, 'g');\n","export type OverflowPriority = 'always' | 'never' | 'low' | 'high' | 'disappear';\n\nexport const OVERFLOW_PRIORITY_SCORE: Map<OverflowPriority, number> = new Map([\n ['always', 0],\n ['disappear', 1],\n ['low', 2],\n ['high', 3],\n ['never', 4]\n]);\n","import { Injectable, isDevMode, Optional } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '../consts';\n\nexport interface ThemeServiceOutput {\n themeUrl: SafeResourceUrl;\n customThemeUrl: SafeResourceUrl;\n}\n\nexport interface Theme {\n id: string;\n name: string;\n description?: string;\n}\n\n@Injectable()\n/**\n * @deprecated\n * Service providing theme switcher functionality.\n * Deprecated since 0.35.0 in favor of ThemingService from ThemingModule\n */\nexport class ThemesService {\n /** Available themes */\n themes: Theme[] = [\n {\n id: 'sap_horizon',\n name: 'Morning Horizon (Light)'\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon (Dark)'\n },\n {\n id: 'sap_horizon_hcb',\n name: 'Horizon High Contrast Black',\n description: 'Optimized contrast and accessibiliwty for extremely bright environments'\n },\n {\n id: 'sap_horizon_hcw',\n name: 'Horizon High Contrast White Horizon',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3',\n name: 'Quartz Light',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Quartz Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'Quartz High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'Quartz High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Quartz Auto (Depending on the OS Settings)'\n }\n ];\n\n /** Subject triggered, when the theming is changed by URL parameter */\n readonly onThemeQueryParamChange: Subject<ThemeServiceOutput> = new Subject<ThemeServiceOutput>();\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private _activatedRoute: ActivatedRoute, private _sanitizer: DomSanitizer) {}\n\n /**\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n * By default it's `theme`.\n **/\n setThemeByRoute(themeParamName?: string): void {\n const paramName = themeParamName || 'theme';\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this._propagateThemes(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (nativeTheme) {\n this._propagateThemes(nativeTheme);\n }\n }\n\n /** Method to get once theme object directly from url. */\n getThemesFromURL(param?: string): ThemeServiceOutput | undefined {\n const paramName = param || 'theme';\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (!nativeTheme && isDevMode()) {\n console.warn('There is no theme param set named: ' + param);\n return;\n }\n\n return {\n themeUrl: this.setTheme(nativeTheme),\n customThemeUrl: this.setCustomTheme(nativeTheme)\n };\n }\n\n /** Assign css file corresponding to chosen theme from @sap-theming **/\n setTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/theming-base/' + theme + '/css_variables.css');\n }\n\n /** Assign css file corresponding to chosen theme fundamental-styles **/\n setCustomTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/fundamental-styles-theming/' + theme + '.css');\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /** @hidden */\n private _propagateThemes(theme: string): void {\n this.onThemeQueryParamChange.next({\n themeUrl: this.setTheme(theme),\n customThemeUrl: this.setCustomTheme(theme)\n });\n }\n}\n","import { isDevMode } from '@angular/core';\nimport {\n A,\n ALT,\n BACKSPACE,\n C,\n CONTROL,\n DASH,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n MAC_ENTER,\n ESCAPE,\n F2,\n HOME,\n LEFT_ARROW,\n META,\n NUMPAD_EIGHT,\n NUMPAD_FIVE,\n NUMPAD_FOUR,\n NUMPAD_MINUS,\n NUMPAD_NINE,\n NUMPAD_ONE,\n NUMPAD_SEVEN,\n NUMPAD_SIX,\n NUMPAD_THREE,\n NUMPAD_TWO,\n NUMPAD_ZERO,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW,\n V,\n X\n} from '@angular/cdk/keycodes';\n\n/** Map of keyCodes and their corresponding \"key\" values */\nconst keyMap: Map<number, string[]> = new Map([\n [RIGHT_ARROW, ['ArrowRight', 'Right']],\n [DOWN_ARROW, ['ArrowDown', 'Down']],\n [LEFT_ARROW, ['ArrowLeft', 'Left']],\n [UP_ARROW, ['ArrowUp', 'Up']],\n [SPACE, ['Space', 'Spacebar', ' ']],\n [ESCAPE, ['Escape', 'Esc']],\n [DELETE, ['Delete', 'Del']],\n [ENTER, ['Enter']],\n [MAC_ENTER, ['Enter']],\n [TAB, ['Tab']],\n [HOME, ['Home']],\n [END, ['End']],\n [ALT, ['Alt']],\n [CONTROL, ['Ctrl', 'Control', 'Meta']],\n [META, ['Meta']],\n [SHIFT, ['Shift']],\n [BACKSPACE, ['Backspace']],\n [A, ['KeyA']],\n [C, ['KeyC']],\n [V, ['KeyV']],\n [X, ['KeyX']],\n [PAGE_UP, ['PageUp']],\n [PAGE_DOWN, ['PageDown']],\n [DASH, ['-']],\n [NUMPAD_MINUS, ['-']],\n [NUMPAD_ZERO, ['NumPad0']],\n [NUMPAD_ONE, ['NumPad1']],\n [NUMPAD_TWO, ['NumPad2']],\n [NUMPAD_THREE, ['NumPad3']],\n [NUMPAD_FOUR, ['NumPad4']],\n [NUMPAD_FIVE, ['NumPad5']],\n [NUMPAD_SIX, ['NumPad6']],\n [NUMPAD_SEVEN, ['NumPad7']],\n [NUMPAD_EIGHT, ['NumPad8']],\n [NUMPAD_NINE, ['NumPad9']],\n [F2, ['F2']]\n]);\n\nexport class KeyUtil {\n /**\n * Function used to unify key identification across different browsers using KeyCodes\n *\n * @param event - KeyboardEvent\n * @param keyCode - event.key name matching W3C specification / (ASSCI char. codes)\n * */\n static isKeyCode(event: KeyboardEvent, keyCode: number | number[]): boolean {\n if (Array.isArray(keyCode)) {\n return keyCode.some((key) => this.isKeyCode(event, key));\n }\n\n if (event && keyMap.get(keyCode)) {\n return keyMap.get(keyCode)?.some((alias) => alias === event.key) || keyCode === event.keyCode;\n }\n\n if (isDevMode()) {\n throw new Error(\n `Invalid function arguments. Check if \"event\" is a KeyboardEvent or \"key\" is defined in keyMap`\n );\n }\n\n return false;\n }\n\n /**\n * Function used to unify key identification across different browsers\n *\n * @param event - KeyboardEvent\n * @param keyType - Type of key\n * */\n static isKeyType(event: KeyboardEvent, keyType: 'alphabetical' | 'numeric' | 'control'): boolean {\n if (event && keyType) {\n switch (keyType) {\n case 'numeric':\n return event.code\n ? event.code.toLowerCase().includes('digit')\n : (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105);\n case 'alphabetical':\n return event.code\n ? event.code.toLowerCase().includes('key')\n : event.keyCode >= 65 && event.keyCode <= 90;\n // some service commands as alt, ctr, insert, print, f4 etc. All except letters, numbers and symbols\n case 'control':\n return event.keyCode < 48 || (event.keyCode >= 112 && event.keyCode <= 123);\n }\n }\n\n if (isDevMode()) {\n throw new Error(`Invalid function arguments.`);\n }\n\n return false;\n }\n}\n","import { inject, InjectionToken, isDevMode } from '@angular/core';\n\nexport interface DeprecatedSelectorModel {\n deprecated: string;\n current: string;\n}\n\n/** @hidden */\nexport function getDeprecatedModel(current: string, deprecated: string): DeprecatedSelectorModel {\n return {\n current,\n deprecated\n };\n}\n\nexport const FD_DEPRECATED_DIRECTIVE_SELECTOR = new InjectionToken<DeprecatedSelectorModel>(\n 'FdDeprecatedDirectiveSelector'\n);\n\nexport abstract class DeprecatedSelector {\n /** @hidden */\n protected _selectors: DeprecatedSelectorModel | null = inject(FD_DEPRECATED_DIRECTIVE_SELECTOR, { optional: true });\n /** @hidden */\n constructor() {\n if (isDevMode() && this._selectors) {\n console.warn(\n `${this._selectors.deprecated} selector(s) are deprecated and may affect input properties. Use ${this._selectors.current} instead.`\n );\n }\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BACKSPACE, CONTROL, DELETE, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { KeyUtil } from '../../functions/key-util';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\nexport interface AutoCompleteEvent {\n term: string;\n forceClose: boolean;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdAutoComplete], [fd-auto-complete]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkAutoComplete]', '[fdAutoComplete], [fd-auto-complete]')\n }\n ]\n})\nexport class DeprecatedAutoCompleteDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkAutoComplete], [fdAutoComplete], [fd-auto-complete]',\n standalone: true\n})\nexport class AutoCompleteDirective {\n /** Values that will fill missing text in the input. */\n @Input()\n options: any[];\n\n /**\n * Input text, that is taken from ngModel of formControl,\n * there has to be difference between native input value and model value\n */\n @Input()\n inputText: string;\n\n /** Whether the auto complete directive should be enabled */\n @Input()\n enable = true;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /** Event thrown, when the auto ahead text is accepted */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onComplete: EventEmitter<AutoCompleteEvent> = new EventEmitter<AutoCompleteEvent>();\n\n /** @hidden */\n private readonly _completeKeys: number[] = [ENTER];\n\n /** @hidden */\n private readonly _fillKeys: number[] = [LEFT_ARROW, RIGHT_ARROW];\n\n /** @hidden */\n private readonly _stopKeys: number[] = [BACKSPACE, DELETE, ESCAPE];\n\n /** @hidden */\n private oldValue: string;\n\n /** @hidden */\n private lastKeyUpEvent: KeyboardEvent;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (this.enable) {\n if (KeyUtil.isKeyCode(event, this._stopKeys)) {\n this._elementRef.nativeElement.value = this.inputText;\n } else if (KeyUtil.isKeyCode(event, this._completeKeys)) {\n this._sendCompleteEvent(true);\n this._moveIndicatorToLastCharacter();\n } else if (KeyUtil.isKeyCode(event, this._fillKeys)) {\n this._sendCompleteEvent(false);\n } else if (!this._isControlKey(event) && this.inputText) {\n /** Prevention from triggering typeahead, when having crtl/cmd + keys */\n if (!this._triggerTypeAhead()) {\n return;\n }\n\n this.oldValue = this.inputText;\n\n const item = this.options.find((option) =>\n this.displayFn(option).toLocaleLowerCase().startsWith(this.inputText.toLocaleLowerCase())\n );\n\n if (item) {\n this._typeahead(this.displayFn(item));\n }\n }\n }\n this.lastKeyUpEvent = event;\n }\n\n /** @hidden */\n private _typeahead(displayedValue: string): void {\n this._elementRef.nativeElement.value = displayedValue;\n const selectionStartIndex = this.inputText.length;\n this._elementRef.nativeElement.setSelectionRange(selectionStartIndex, displayedValue.length);\n }\n\n /** @hidden */\n private _isControlKey(event: KeyboardEvent): boolean {\n return KeyUtil.isKeyCode(event, CONTROL) || event.ctrlKey;\n }\n\n /** @hidden */\n private _defaultDisplay(value: any): string {\n return value;\n }\n\n /** @hidden */\n private _triggerTypeAhead(): boolean {\n if (\n this.lastKeyUpEvent &&\n KeyUtil.isKeyCode(this.lastKeyUpEvent, CONTROL) &&\n this.inputText === this.oldValue\n ) {\n return false;\n } else {\n return true;\n }\n }\n\n /** @hidden */\n private _sendCompleteEvent(forceClose: boolean): void {\n this.onComplete.emit({\n term: this._elementRef.nativeElement.value,\n forceClose\n });\n }\n\n /** @hidden */\n private _moveIndicatorToLastCharacter(): void {\n const inputTextLength = this.inputText?.length ?? 0;\n this._elementRef.nativeElement.setSelectionRange(inputTextLength, inputTextLength);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AutoCompleteDirective, DeprecatedAutoCompleteDirective } from './auto-complete.directive';\n\n@NgModule({\n imports: [AutoCompleteDirective, DeprecatedAutoCompleteDirective],\n exports: [AutoCompleteDirective, DeprecatedAutoCompleteDirective],\n declarations: []\n})\nexport class AutoCompleteModule {}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { InjectionToken } from '@angular/core';\n\nexport const FOCUSABLE_ITEM = new InjectionToken<FocusableOption>('Focusable Option');\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n QueryList,\n SimpleChanges\n} from '@angular/core';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { RtlService } from '../../services/rtl.service';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-focus-key-manager-list], [fdFocusKeyManagerList]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel(\n '[fdkFocusKeyManagerList]',\n '[fd-focus-key-manager-list], [fdFocusKeyManagerList]'\n )\n }\n ]\n})\nexport class DeprecatedFocusKeyManagerListDirective extends DeprecatedSelector {}\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: `[fdkFocusKeyManagerList], [fd-focus-key-manager-list], [fdFocusKeyManagerList]`,\n standalone: true\n})\nexport class FocusKeyManagerListDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Orientation for the FocusKeyManager */\n @Input()\n orientation: 'horizontal' | 'vertical';\n\n /** Skip predicate for the FocusKeyManager */\n @Input()\n skipPredicate: (item: Record<any, any> & FocusableOption) => boolean;\n\n /** @hidden */\n @ContentChildren(FOCUSABLE_ITEM)\n readonly _items: QueryList<FocusableOption>;\n\n /** @hidden */\n get focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._focusKeyManager;\n }\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<FocusableOption>;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private readonly _rtlService: RtlService, private readonly _cdr: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._focusKeyManager) {\n return;\n }\n\n if ('orientation' in changes) {\n this._applyOrientation();\n }\n\n if ('skiPredicate' in changes) {\n this._focusKeyManager.skipPredicate(this.skipPredicate);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._focusKeyManager = new FocusKeyManager<FocusableOption>(this._items).skipPredicate(this.skipPredicate);\n\n this._applyOrientation();\n\n this._cdr.detectChanges();\n\n this._rtlService?.rtl\n .pipe(\n filter(() => this.orientation === 'horizontal'),\n takeUntil(this._onDestroy$)\n )\n .subscribe(() => this._applyOrientation());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._focusKeyManager.destroy();\n }\n\n /** Focus certain list's item */\n focusItem(item: number | FocusableOption): any {\n if (typeof item === 'number') {\n this._focusKeyManager.setActiveItem(item);\n } else {\n this._focusKeyManager.setActiveItem(item);\n }\n }\n\n /** @hidden */\n private _applyOrientation(): void {\n switch (this.orientation) {\n case 'horizontal':\n this._focusKeyManager.withHorizontalOrientation(this._rtlService?.rtl.value ? 'rtl' : 'ltr');\n break;\n case 'vertical':\n this._focusKeyManager.withVerticalOrientation(true);\n break;\n }\n }\n}\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, forwardRef, HostBinding, HostListener, Input } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-focus-key-manager-item], [fdFocusKeyManagerItem]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel(\n '[fdkFocusKeyManagerItem]',\n '[fd-focus-key-manager-item], [fdFocusKeyManagerItem]'\n )\n }\n ]\n})\nexport class DeprecatedFocusKeyManagerItemDirective extends DeprecatedSelector {}\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: '[fdkFocusKeyManagerItem], [fd-focus-key-manager-item], [fdFocusKeyManagerItem]',\n standalone: true,\n providers: [{ provide: FOCUSABLE_ITEM, useExisting: forwardRef(() => FocusKeyManagerItemDirective) }]\n})\nexport class FocusKeyManagerItemDirective implements FocusableOption {\n /** Whether item should be initially focused */\n @Input()\n set initialFocus(value: BooleanInput) {\n this._initialFocus = coerceBooleanProperty(value);\n }\n\n /** @hidden */\n @Input()\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n if (this._initialFocus) {\n return 0;\n }\n\n return this.nativeElement?.tabIndex ?? -1;\n }\n\n /** @hidden */\n private _initialFocus = false;\n\n /** Native element of the item */\n get nativeElement(): any {\n return this._elRef?.nativeElement;\n }\n\n /** @hidden */\n private get _focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._list.focusKeyManager;\n }\n\n /** @hidden */\n constructor(private readonly _list: FocusKeyManagerListDirective, private readonly _elRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n // For cases where initially selected item doesn't have 0 index\n this._focusKeyManager?.updateActiveItem(this);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n this._focusKeyManager?.onKeydown(event);\n }\n\n /** Focus current item native element */\n focus(): void {\n this._elRef?.nativeElement.focus();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n FocusKeyManagerItemDirective,\n DeprecatedFocusKeyManagerItemDirective\n} from './focus-key-manager-item.directive';\nimport {\n DeprecatedFocusKeyManagerListDirective,\n FocusKeyManagerListDirective\n} from './focus-key-manager-list.directive';\n\n@NgModule({\n imports: [\n FocusKeyManagerItemDirective,\n FocusKeyManagerListDirective,\n DeprecatedFocusKeyManagerItemDirective,\n DeprecatedFocusKeyManagerListDirective\n ],\n exports: [\n FocusKeyManagerItemDirective,\n FocusKeyManagerListDirective,\n DeprecatedFocusKeyManagerItemDirective,\n DeprecatedFocusKeyManagerListDirective\n ]\n})\nexport class FocusKeyManagerHelpersModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const IgnoreClickOnSelectionDirectiveToken = new InjectionToken('Ignore click on selection directive');\n","import { Directive, ElementRef, HostListener, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IgnoreClickOnSelectionDirectiveToken } from './tokens';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdIgnoreClickOnSelection]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkIgnoreClickOnSelection]', '[fdIgnoreClickOnSelection]')\n }\n ]\n})\nexport class DeprecatedIgnoreClickOnSelectionDirective extends DeprecatedSelector {}\n\n/**\n * Directive will stop propagation and prevent default of click, if selected area is coming from\n * directive's host element. This gives ability to not cancel all clicks on element, just the ones\n * which include selection\n */\n@Directive({\n selector: '[fdkIgnoreClickOnSelection], [fdIgnoreClickOnSelection]',\n standalone: true,\n providers: [\n {\n provide: IgnoreClickOnSelectionDirectiveToken,\n useExisting: IgnoreClickOnSelectionDirective\n }\n ]\n})\nexport class IgnoreClickOnSelectionDirective {\n /** @hidden */\n constructor(@Inject(DOCUMENT) private document: Document, private _elementRef: ElementRef<HTMLElement>) {}\n\n /** Host click listener. Checks for selection existence and if finds one, checks anchor */\n @HostListener('click', ['$event'])\n clicked($event: MouseEvent): void {\n const selection = this.document.getSelection();\n if (selection?.toString()) {\n if (\n selection.anchorNode &&\n (this._elementRef.nativeElement.isSameNode(selection.anchorNode) ||\n this._elementRef.nativeElement.isSameNode(selection.anchorNode.parentElement))\n ) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n IgnoreClickOnSelectionDirective,\n DeprecatedIgnoreClickOnSelectionDirective\n} from './ignore-click-on-selection.directive';\n\n@NgModule({\n imports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective],\n exports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective]\n})\nexport class IgnoreClickOnSelectionModule {}\n","import { InteractivityChecker } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class TabbableElementService {\n /** @hidden */\n constructor(\n private readonly _checker: InteractivityChecker,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n getTabbableElement(root: HTMLElement, focusLastElement = false, skipSelf = false): HTMLElement | null {\n if (!skipSelf && this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n\n // Iterate in DOM order. Note that IE doesn't have `children` for SVG, so we fall\n // back to `childNodes` which includes text nodes, comments etc.\n const rootChildren = root.children || root.childNodes;\n\n const children = focusLastElement ? Array.from(rootChildren).reverse() : rootChildren;\n\n for (let i = 0; i < children.length; i++) {\n const tabbableChild =\n children[i].nodeType === this._document?.ELEMENT_NODE\n ? this.getTabbableElement(children[i] as HTMLElement, focusLastElement)\n : null;\n\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n\n return null;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { TabbableElementService } from '../../services/tabbable-element.service';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdInitialFocus], [fd-initial-focus]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')\n }\n ]\n})\nexport class DeprecatedInitialFocusDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]',\n standalone: true,\n providers: [\n TabbableElementService,\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')\n }\n ]\n})\nexport class InitialFocusDirective implements AfterViewInit {\n /**\n * CSS selector of element that should be focused.\n */\n @Input('fd-initial-focus')\n focusableItem = '.fd-initial-focus-item';\n\n /**\n * Whether initial focus enabled for current element.\n */\n @Input()\n enabled = true;\n\n /**\n * Whether to focus last element in found array of elements.\n */\n @Input()\n focusLastElement = false;\n\n /** @hidden */\n constructor(\n private _elmRef: ElementRef<HTMLElement>,\n private _ngZone: NgZone,\n private readonly _tabbableService: TabbableElementService\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._executeOnEmpty(() => this._focus());\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnEmpty(fn: () => any): void {\n if (!this._ngZone.hasPendingMicrotasks) {\n fn();\n } else {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(fn);\n }\n }\n\n /**\n * @hidden\n * Searches for appropriate focusable element\n */\n private _getFocusableElement(): HTMLElement | null {\n if (!this.focusableItem) {\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n const autoFocusableItems = this._elmRef.nativeElement.querySelectorAll(\n this.focusableItem\n ) as NodeListOf<HTMLElement>;\n\n if (autoFocusableItems.length > 0) {\n return !this.focusLastElement ? autoFocusableItems[0] : autoFocusableItems[autoFocusableItems.length - 1];\n }\n\n // If no elements found, fallback to first tabbable element.\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n /** @hidden */\n private _focus(): void {\n if (!this.enabled) {\n return;\n }\n this._getFocusableElement()?.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { InitialFocusDirective, DeprecatedInitialFocusDirective } from './initial-focus.directive';\n\n@NgModule({\n imports: [InitialFocusDirective, DeprecatedInitialFocusDirective],\n exports: [InitialFocusDirective, DeprecatedInitialFocusDirective]\n})\nexport class InitialFocusModule {}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n AfterViewInit,\n OnDestroy,\n OnChanges,\n Output,\n Renderer2,\n ChangeDetectorRef\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { Nullable } from '../../models/nullable';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdLineClampTarget], [fd-lineclamp-target]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClampTarget], [fd-lineclamp-target]')\n }\n ]\n})\nexport class DeprecatedLineClampTargetDirective extends DeprecatedSelector {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdLineClamp], [fd-lineclamp]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClamp], [fd-lineclamp]')\n }\n ]\n})\nexport class DeprecatedLineClampDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkLineClampTarget], [fdLineClampTarget], [fd-lineclamp-target]',\n exportAs: 'fdLineClampTarget',\n standalone: true\n})\nexport class LineClampTargetDirective implements OnChanges, AfterViewInit {\n /**\n * Target text for clamping\n */\n @Input()\n fdLineClampTargetText: string;\n\n /**\n * Event with target instance for clamping\n */\n @Output() update = new EventEmitter<LineClampTargetDirective>();\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Native element of clamping target\n */\n get targetElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.update.emit(this);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.update.emit(this);\n }\n}\n\n@Directive({\n selector: '[fdkLineClamp], [fdLineClamp], [fd-lineclamp]',\n exportAs: 'fdLineClamp',\n standalone: true\n})\nexport class LineClampDirective implements OnChanges, AfterViewInit, OnDestroy {\n /**\n * Count lines for clamping\n */\n @Input()\n set fdLineClampLines(value: Nullable<number>) {\n this._lineCount = coerceNumberProperty(value);\n }\n\n /**\n * Clamping state\n */\n @Input()\n fdLineclampState = false;\n\n /**\n * Event return count of lines from the target\n */\n @Output()\n lineCountUpdate = new EventEmitter<number>();\n\n /** @hidden */\n private _lineClampTarget: HTMLElement;\n /** @hidden */\n private _originalText: string;\n /** @hidden */\n private windowResize$: Subscription;\n /** @hidden */\n private _isNativeSupport = true;\n /** @hidden */\n private _lineCount: number;\n\n /** @hidden */\n /**\n * Root native element of clamping box\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _renderer: Renderer2,\n private readonly _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._isNativeSupport = typeof this.rootElement.style.webkitLineClamp !== 'undefined';\n\n // need to use setTimeout to force recheck of parent elements\n setTimeout(() => {\n this._checkLineCount();\n });\n\n this.windowResize$ = fromEvent(window, 'resize')\n .pipe(distinctUntilChanged(), debounceTime(200))\n .subscribe({\n next: () => this._checkLineCount()\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.windowResize$) {\n this.windowResize$.unsubscribe();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.reset();\n this.refreshClamp();\n }\n\n /** @hidden */\n reset(): void {\n if (this._lineClampTarget && this._originalText) {\n this._lineClampTarget.textContent = this._originalText;\n }\n if (this._isNativeSupport) {\n this._resetNative();\n }\n }\n\n /** @hidden */\n refreshTarget(event: LineClampTargetDirective): void {\n this._lineClampTarget = event.targetElement;\n this._originalText = event.fdLineClampTargetText;\n this._checkLineCount();\n }\n\n /** @hidden */\n refreshClamp(): void {\n if (this.fdLineclampState && this._lineCount) {\n this.native();\n if (!this._isNativeSupport) {\n this._truncate();\n }\n }\n }\n\n /** @hidden\n * Truncate text in the target box, if browser not support lineclamp style\n */\n private _truncate(): void {\n if (!this._lineClampTarget) {\n return;\n }\n const lineClampHeight = Math.ceil(this.getLineHeight() * this._lineCount);\n const ellipsisTextArray = this._originalText.split(' ');\n const ellipsisText = (): void => {\n if (this.rootElement.scrollHeight > lineClampHeight) {\n ellipsisTextArray.pop();\n this._lineClampTarget.textContent = ellipsisTextArray.join(' ') + '...';\n ellipsisText.call(this);\n }\n };\n ellipsisText();\n }\n\n /** @hidden\n * Get lineheight for rootelement, if browser not support lineclamp style\n */\n private getLineHeight(): number {\n const lineHeight = window.getComputedStyle(this.rootElement, null).getPropertyValue('line-height');\n if (lineHeight === 'normal') {\n return parseInt(window.getComputedStyle(this.rootElement, null).getPropertyValue('font-size'), 10) * 1.25;\n }\n\n return parseFloat(lineHeight);\n }\n\n /** @hidden\n * Setup native styles for lineclamp text\n */\n private native(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '-webkit-box');\n this._renderer.setStyle(this.rootElement, 'overflow', 'hidden');\n this._renderer.setStyle(this.rootElement, 'text-overflow', 'ellipsis');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', 'vertical');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', `${this._lineCount}`);\n }\n }\n\n /** @hidden\n * Reset native styles for lineclamp text\n */\n private _resetNative(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '');\n this._renderer.setStyle(this.rootElement, 'overflow', '');\n this._renderer.setStyle(this.rootElement, 'text-overflow', '');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', '');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', '');\n }\n }\n\n /** @hidden */\n private _checkLineCount(): void {\n if (!this.rootElement) {\n return;\n }\n const style = window.getComputedStyle(this.rootElement, null);\n\n this.reset();\n\n const fontSize = parseInt(style.getPropertyValue('font-size'), 10);\n const boxSizing = style.getPropertyValue('box-sizing');\n let height = parseInt(style.getPropertyValue('height'), 10);\n let lineHeight = parseFloat(style.getPropertyValue('line-height'));\n if (isNaN(lineHeight)) {\n lineHeight = fontSize * 1.2;\n }\n if (boxSizing === 'border-box') {\n const padding_top = parseInt(style.getPropertyValue('padding-top'), 10);\n const padding_bottom = parseInt(style.getPropertyValue('padding-bottom'), 10);\n const border_top = parseInt(style.getPropertyValue('border-top-width'), 10);\n const border_bottom = parseInt(style.getPropertyValue('border-bottom-width'), 10);\n height = height - padding_top - padding_bottom - border_top - border_bottom;\n }\n this.refreshClamp();\n this.lineCountUpdate.emit(Math.ceil(height / lineHeight));\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n LineClampTargetDirective,\n LineClampDirective,\n DeprecatedLineClampDirective,\n DeprecatedLineClampTargetDirective\n} from './line-clamp.directive';\n\n@NgModule({\n imports: [\n LineClampTargetDirective,\n LineClampDirective,\n DeprecatedLineClampDirective,\n DeprecatedLineClampTargetDirective\n ],\n exports: [\n LineClampTargetDirective,\n LineClampDirective,\n DeprecatedLineClampDirective,\n DeprecatedLineClampTargetDirective\n ]\n})\nexport class LineClampModule {}\n","import { ElementRef } from '@angular/core';\n\nexport const pxToNum = (pixels: string): number => Number(pixels.replace('px', '')) || 0;\n\nexport const toNativeElement = (element: HTMLElement | ElementRef): HTMLElement =>\n element instanceof ElementRef ? element.nativeElement : element;\n\n/** Return elements capacity (width subtract by element padding)\n * @param element - HTMLelement or element reference\n * */\nexport function getElementCapacity(element: HTMLElement | ElementRef): number {\n const _element = toNativeElement(element);\n const computedStyle = window.getComputedStyle(_element);\n\n return pxToNum(computedStyle.width) - pxToNum(computedStyle.paddingLeft) - pxToNum(computedStyle.paddingRight);\n}\n\n/** Return elements width\n * @param element - HTMLelement or element reference\n * @param withMargin - weather to add element margins to width\n * */\nexport function getElementWidth(element: HTMLElement | ElementRef, withMargin?: boolean): number {\n const _element = toNativeElement(element);\n const computedStyle = getComputedStyle(_element);\n\n return withMargin\n ? pxToNum(computedStyle.width) + pxToNum(computedStyle.marginLeft) + pxToNum(computedStyle.marginRight)\n : pxToNum(computedStyle.width);\n}\n","/** Generate a UUID v4 */\nexport function uuidv4(): string {\n const modifier = 16;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * modifier) | 0,\n // eslint-disable-next-line no-bitwise\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(modifier);\n });\n}\n","const fileSizeMap = new Map([\n ['KB', 1024],\n ['MB', 1048576],\n ['GB', 1073741824],\n ['TB', 1099511627776]\n]);\n\n/** Parse file size to bytes */\nexport function parserFileSize(fileSize: string): number {\n if (fileSize === '') {\n return 0;\n }\n\n const sizes = fileSize.match(/[\\d.]+|\\D+/g);\n if (sizes && sizes.length > 1) {\n const size = Number(sizes[0].replace(/ +/g, ''));\n const unit = sizes[1].replace(/ +/g, '').toUpperCase();\n const unitSize = fileSizeMap.get(unit);\n\n if (isNaN(size)) {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n if (unit === 'B' || unit === 'BYTE' || unit === 'BYTES') {\n return size;\n }\n if (!unitSize) {\n throw new Error('FileSizeError - Invalid File size please check.');\n } else {\n return unitSize * size;\n }\n } else {\n if (isNaN(Number(sizes))) {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n\n return Number(sizes);\n }\n}\n","/**\n * Function used to scroll specified element by some distance\n *\n * @param containerElement - Container element scrolled\n * @param distanceToScroll - Distance of scroll in px\n * */\nexport function scrollTop(containerElement: Element, distanceToScroll: number): void {\n // Check if scrollTo method is supported by current browser\n if (containerElement.scrollTo && containerElement.scrollTo instanceof Function) {\n containerElement.scrollTo({\n top: distanceToScroll,\n behavior: 'smooth'\n });\n } else {\n containerElement.scrollTop = distanceToScroll;\n }\n}\n","import { ColorAccent } from '../datatypes';\n\n/** Get random number from 1 to 10. */\nexport function getRandomColorAccent(): ColorAccent {\n return (Math.floor(Math.random() * 10) + 1) as ColorAccent;\n}\n","import { fromEvent, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * RxJS wrapper for ResizeObserver class.\n * @param target HTML element to spy on.\n * @param options @see {ResizeObserverOptions}\n * @returns {Observable} with observer entries.\n */\nexport function resizeObservable(target: Element, options?: ResizeObserverOptions): Observable<ResizeObserverEntry[]> {\n if ('ResizeObserver' in window) {\n return new Observable((subscriber) => {\n let animationFrame: number;\n const ro = new ResizeObserver((entries) => {\n animationFrame = window.requestAnimationFrame(() => {\n subscriber.next(entries);\n });\n });\n\n ro.observe(target, options);\n\n return function unsubscribe(): void {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n ro.unobserve(target);\n ro.disconnect();\n };\n });\n } else {\n // If current browser does not support resizeObserver, rely on window resize and return empty array of items.\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n}\n","import { NEVER, Observable } from 'rxjs';\n\n/**\n * RxJS wrapper for IntersectionObserver class.\n * @param target HTML element to spy on.\n * @param options @see {IntersectionObserverInit}\n * @returns {Observable} with observer entries.\n */\nexport function intersectionObservable(\n target: Element,\n options?: IntersectionObserverInit\n): Observable<IntersectionObserverEntry[]> {\n if ('IntersectionObserver' in window) {\n return new Observable((subscriber) => {\n const io = new IntersectionObserver((entries) => {\n subscriber.next(entries);\n }, options);\n\n io.observe(target);\n\n return function unsubscribe(): void {\n io.disconnect();\n };\n });\n } else {\n // If browser doesn't support IntersectionObserver API never emit a value\n // since we're not supporting IE11 and any other browser should have it.\n return NEVER;\n }\n}\n","import { ContentDensity } from '../interfaces/content-density';\n\n/** Determines whether provided value is valid content density */\nexport function isValidContentDensity(size: any): size is ContentDensity {\n return size === 'cozy' || size === 'compact' || size === 'condensed';\n}\n\n/**\n * Determines if \"compact\" styles should be applied based on provided content density\n */\nexport function isCompactDensity(size: ContentDensity): boolean {\n return isValidContentDensity(size) && size !== 'cozy';\n}\n","import { InjectionToken } from '@angular/core';\nimport { ModuleDeprecation } from '../interfaces/module-deprecation.interface';\n\nexport const ModuleDeprecations = new InjectionToken<ModuleDeprecation>('ModuleDeprecations');\n","import { FactorySansProvider, Provider } from '@angular/core';\nimport { ModuleDeprecations } from '../tokens/module-deprecations.token';\n\n/** Module deprecations provider */\nexport function moduleDeprecationsProvider(classRef: any): Provider {\n return {\n provide: ModuleDeprecations,\n useClass: classRef,\n multi: true\n };\n}\n\n/** Module deprecations provider factory */\nexport function moduleDeprecationsFactory(factory: FactorySansProvider): Provider {\n return {\n provide: ModuleDeprecations,\n ...factory,\n multi: true\n };\n}\n","import { INJECTOR, Injector, Provider } from '@angular/core';\n\n/**\n * Creates provider for ConsumerClass\n */\nexport function consumerProviderFactory<T = any>(\n ConsumerClass: new (injector: Injector, additionalConfig: Record<any, any> | undefined) => T,\n providedConfiguration?: Record<any, any>\n): Provider {\n return {\n provide: ConsumerClass,\n useFactory: (injector: Injector) => new ConsumerClass(injector, providedConfiguration),\n deps: [INJECTOR]\n };\n}\n","/** Get document font size in pixels. */\nexport function getDocumentFontSize(): number {\n return document?.documentElement ? parseFloat(getComputedStyle(document.documentElement).fontSize) : 16;\n}\n","/**\n * Function checks whether the passed number is odd.\n * @param number number to check.\n * @returns Boolean whether the number is odd.\n */\nexport function isOdd(number: number): boolean {\n return number % 2 === 1;\n}\n","import {\n A,\n BACKSPACE,\n C,\n DASH,\n DELETE,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n NUMPAD_MINUS,\n RIGHT_ARROW,\n TAB,\n V,\n X\n} from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { KeyUtil } from '../../functions';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdOnlyDigits], [fd-only-digits]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkOnlyDigits]', '[fdOnlyDigits], [fd-only-digits]')\n }\n ]\n})\nexport class DeprecatedOnlyDigitsDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkOnlyDigits], [fdOnlyDigits], [fd-only-digits]',\n standalone: true\n})\nexport class OnlyDigitsDirective {\n /** Allow using decimal */\n @Input() decimal = false;\n /** Define decimal separator\n * Default: .(dot)\n */\n @Input() decimalSeparator = '.';\n\n /** @hidden */\n private _inputElement: HTMLInputElement;\n /** @hidden */\n private _hasDecimalPoint = false;\n\n /** @hidden */\n constructor(private readonly _el: ElementRef) {\n this._inputElement = this._el.nativeElement;\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent): void {\n if (\n // Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right\n KeyUtil.isKeyCode(e, [DELETE, BACKSPACE, TAB, ESCAPE, ENTER, END, HOME, LEFT_ARROW, RIGHT_ARROW]) ||\n // Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)\n (KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))\n ) {\n return; // let it happen, don't do anything\n }\n\n if (KeyUtil.isKeyCode(e, [DASH, NUMPAD_MINUS])) {\n const newValue = this._forecastValue(e.key);\n\n if (this._inputElement.value[0] === '-' || newValue[0] !== '-') {\n e.preventDefault();\n\n return; // has DASH point\n } else {\n return; // Allow: only one DASH point\n }\n }\n\n if (this.decimal && e.key === this.decimalSeparator) {\n const newValue = this._forecastValue(e.key);\n if (newValue.split(this.decimalSeparator).length > 2) {\n // has two or more decimal points\n e.preventDefault();\n return;\n } else {\n this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\n return; // Allow: only one decimal point\n }\n }\n\n // Ensure that it is a number and stop the keypress\n if (e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n return;\n }\n }\n\n /** @hidden */\n @HostListener('paste', ['$event'])\n onPaste(event: any): void {\n if (window['clipboardData']) {\n // Browser is IE\n this._pasteData(window['clipboardData'].getData('text'));\n } else if (event.clipboardData && event.clipboardData.getData) {\n // Other browsers\n this._pasteData(event.clipboardData.getData('text/plain'));\n }\n\n event.preventDefault();\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent): void {\n const textData = event.dataTransfer?.getData('text') ?? '';\n this._inputElement.focus();\n this._pasteData(textData);\n\n event.preventDefault();\n }\n\n /** @hidden */\n private _pasteData(pastedContent: string): void {\n const sanitizedContent = this._sanitizeInput(pastedContent);\n const pasted = document.execCommand('insertText', false, sanitizedContent);\n if (!pasted) {\n if (this._inputElement.setRangeText) {\n const { selectionStart: start, selectionEnd: end } = this._inputElement;\n this._inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\n // so we have to trigger it ourself.\n if (typeof window['InstallTrigger'] !== 'undefined') {\n this._inputElement.dispatchEvent(new Event('input', { cancelable: true }));\n }\n } else {\n // Browser does not support setRangeText, e.g. IE\n this._insertAtCursor(this._inputElement, sanitizedContent);\n }\n }\n\n if (this.decimal) {\n this._hasDecimalPoint = this._inputElement.value.indexOf(this.decimalSeparator) > -1;\n }\n }\n\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\n /** @hidden */\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\n const startPos = myField.selectionStart ?? 0;\n const endPos = myField.selectionEnd ?? 0;\n\n myField.value =\n myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);\n\n const pos = startPos + myValue.length;\n myField.focus();\n myField.setSelectionRange(pos, pos);\n\n this._triggerEvent(myField, 'input');\n }\n\n /** @hidden */\n private _triggerEvent(el: HTMLInputElement, type: string): void {\n if ('createEvent' in document) {\n // modern browsers, IE9+\n const e = document.createEvent('HTMLEvents');\n e.initEvent(type, false, true);\n el.dispatchEvent(e);\n }\n }\n // end stack overflow code\n\n /** @hidden */\n private _sanitizeInput(input: string): string {\n let result = '';\n if (this.decimal && this._isValidDecimal(input)) {\n const regex = new RegExp(`[^0-9${this.decimalSeparator}]`, 'g');\n result = input.replace(regex, '');\n } else {\n result = input.replace(/[^0-9]/g, '');\n }\n\n if (input[0] === '-') {\n result = `-${result}`;\n }\n\n const maxLength = this._inputElement.maxLength;\n if (maxLength > 0) {\n // the input element has maxLength limit\n const allowedLength = maxLength - this._inputElement.value.length;\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\n }\n\n return result;\n }\n\n /** @hidden */\n private _isValidDecimal(string: string): boolean {\n if (!this._hasDecimalPoint) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n // the input element already has a decimal separator\n const selectedText = this._getSelection;\n if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n return string.indexOf(this.decimalSeparator) < 0;\n }\n }\n }\n\n /** @hidden */\n private get _getSelection(): string {\n const { selectionStart, selectionEnd } = this._inputElement;\n\n return this._inputElement.value.substring(selectionStart ?? 0, selectionEnd ?? 0);\n }\n\n /** @hidden */\n private _forecastValue(key: string): string {\n const { selectionStart, selectionEnd, value: oldValue } = this._inputElement;\n const selection = oldValue.substring(selectionStart ?? 0, selectionEnd ?? 0);\n\n return selection\n ? oldValue.replace(selection, key)\n : oldValue.substring(0, selectionStart ?? 0) + key + oldValue.substring(selectionStart ?? 0);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { OnlyDigitsDirective, DeprecatedOnlyDigitsDirective } from './only-digits.directive';\n\n@NgModule({\n imports: [OnlyDigitsDirective, DeprecatedOnlyDigitsDirective],\n exports: [OnlyDigitsDirective, DeprecatedOnlyDigitsDirective]\n})\nexport class OnlyDigitsModule {}\n","import { Directive, ElementRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdOverflowListItem], [fd-overflow-list-item]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkOverflowListItem]', '[fdOverflowListItem], [fd-overflow-list-item]')\n }\n ]\n})\nexport class DeprecatedOverflowListItemDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkOverflowListItem], [fdOverflowListItem], [fd-overflow-list-item]',\n standalone: true\n})\nexport class OverflowListItemDirective {\n /** @hidden */\n constructor(public el: ElementRef) {}\n}\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { OverflowListItemDirective } from './overflow-list-item.directive';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdOverflowList], [fd-overflow-list]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkOverflowList]', '[fdOverflowList], [fd-overflow-list]')\n }\n ]\n})\nexport class DeprecatedOverflowListDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkOverflowList], [fdOverflowList], [fd-overflow-list]',\n standalone: true\n})\nexport class OverflowListDirective implements AfterViewInit, OnDestroy {\n /**\n * @description Offset to calculate correct position\n */\n @Input()\n overflowOffset = 0;\n\n /**\n * @description Flag representing rtl mode\n */\n @Input()\n isRtl: boolean;\n\n /**\n * @description value of display property of existed list items\n */\n @Input()\n itemCssBlockValue = 'flex';\n\n /**\n * @description Emits when changed amount of extra items\n */\n @Output()\n overflowChanged: EventEmitter<number> = new EventEmitter<number>();\n\n /**\n * @description References to QueryList of OverflowListItemDirective\n */\n @ContentChildren(OverflowListItemDirective)\n overflowItems: QueryList<OverflowListItemDirective>;\n\n /** @hidden */\n private _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private _el: ElementRef, private _viewportRuler: ViewportRuler, private _ngZone: NgZone) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewportRuler\n .change(50)\n .pipe(takeUntil(this._onDestroy$))\n // ViewportRuler invoked out of zone, that is why I need to invoke function in zone\n .subscribe(() => this._ngZone.run(() => this._calculateAmountOfOverflowedItems()));\n\n this._calculateAmountOfOverflowedItems();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * @description Get amount of extra items in current list\n * */\n getAmountOfExtraItems(): number {\n const elements = this.overflowItems.toArray().map((item) => item.el.nativeElement);\n const computed = getComputedStyle(this._el.nativeElement);\n const contentWidth =\n this._el.nativeElement.clientWidth - parseFloat(computed.paddingLeft) - parseFloat(computed.paddingRight);\n return this._checkWidthWithOffset(elements, contentWidth);\n }\n\n /** @hidden */\n private _calculateAmountOfOverflowedItems(): void {\n const extra = this.getAmountOfExtraItems();\n this.overflowChanged.emit(extra);\n }\n\n /**\n * @hidden\n * @param arrItems\n * @param containerWidth\n * @param checkWithOffset\n * */\n private _checkWidthWithOffset(\n arrItems: HTMLElement[],\n containerWidth: number,\n checkWithOffset: boolean = false\n ): number {\n let itemsTotalWidth = 0;\n const parentWidth = checkWithOffset ? containerWidth - this.overflowOffset : containerWidth;\n\n arrItems.forEach((item) => {\n item.hidden = true;\n item.style.display = this.itemCssBlockValue;\n });\n\n for (let i = 0; i < arrItems.length; i++) {\n const item = arrItems[i];\n\n itemsTotalWidth += this.isRtl\n ? containerWidth - item.offsetLeft - itemsTotalWidth\n : item.offsetWidth + item.offsetLeft - itemsTotalWidth;\n\n if (parentWidth < itemsTotalWidth) {\n this._clearTempStyles(arrItems);\n return checkWithOffset\n ? arrItems.length - i\n : this._checkWidthWithOffset(arrItems, containerWidth, true);\n }\n }\n\n this._clearTempStyles(arrItems);\n return 0;\n }\n\n /**\n * @param arrItems\n * @hidden\n * */\n private _clearTempStyles(arrItems: HTMLElement[]): void {\n arrItems.forEach((item) => {\n item.hidden = false;\n item.style.removeProperty('display');\n });\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { OverflowListDirective, DeprecatedOverflowListDirective } from './overflow-list.directive';\nimport { OverflowListItemDirective, DeprecatedOverflowListItemDirective } from './overflow-list-item.directive';\n\n@NgModule({\n imports: [\n OverflowListDirective,\n OverflowListItemDirective,\n DeprecatedOverflowListItemDirective,\n DeprecatedOverflowListDirective\n ],\n exports: [\n OverflowListDirective,\n OverflowListItemDirective,\n DeprecatedOverflowListItemDirective,\n DeprecatedOverflowListDirective\n ]\n})\nexport class OverflowListModule {}\n","import { Directive, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdRepeat]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkRepeat]', '[fdRepeat]')\n }\n ]\n})\nexport class DeprecatedRepeatDirective extends DeprecatedSelector {}\n\n/**\n * Directive to repeatably render template N times.\n */\n@Directive({\n selector: '[fdkRepeat], [fdRepeat]',\n standalone: true\n})\nexport class RepeatDirective implements OnChanges {\n /** Number of times to render a template. */\n @Input('fdkRepeat')\n count: number;\n\n /**\n * Deprecated fdRepeat input property. Use `[fdkRepeat]`.\n */\n @Input('fdRepeat')\n deprecatedCount: number;\n\n /** @hidden */\n private get _repeatCount(): number {\n return this.count || this.deprecatedCount;\n }\n\n /** @hidden */\n constructor(\n private readonly _templateRef: TemplateRef<any>,\n private readonly _viewContainerRef: ViewContainerRef\n ) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes['count'] || changes['deprecatedCount']) && Number.isInteger(this._repeatCount)) {\n this._viewContainerRef.clear();\n\n for (let index = 0; index < Math.max(0, this._repeatCount); index++) {\n this._viewContainerRef.createEmbeddedView(this._templateRef, { index });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DeprecatedRepeatDirective, RepeatDirective } from './repeat.directive';\n\n@NgModule({\n imports: [RepeatDirective, DeprecatedRepeatDirective],\n exports: [RepeatDirective, DeprecatedRepeatDirective]\n})\nexport class RepeatModule {}\n","import { Directive, ElementRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdResizeHandle], [fd-resize-handle]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkResizeHandle]', '[fdResizeHandle], [fd-resize-handle]')\n }\n ]\n})\nexport class DeprecatedResizeHandleDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkResizeHandle], [fdResizeHandle], [fd-resize-handle]',\n standalone: true\n})\nexport class ResizeHandleDirective {\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n}\n","import {\n AfterContentInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ResizeHandleDirective } from './resize-handle.directive';\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\nimport { filter, map, mapTo, pairwise, takeUntil, tap } from 'rxjs/operators';\nimport { RtlService } from '../../services/rtl.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdResize], [fd-resize]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkResize]', '[fdResize], [fd-resize]')\n }\n ]\n})\nexport class DeprecatedResizeDirective extends DeprecatedSelector {}\n\ninterface ResizeMove {\n x: number;\n y: number;\n}\n\n@Directive({\n selector: '[fdkResize], [fdResize], [fd-resize]',\n standalone: true\n})\nexport class ResizeDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Element limiting resizable container growth */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeBoundary') resizeBoundary: string | HTMLElement = 'body';\n\n /** Whether resizable behaviour should be disabled */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeDisabled') disabled = false;\n\n /** Localization of resize handle inside resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeHandleLocation') resizeHandleLocation: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' =\n 'bottom-right';\n\n /** Resize handle reference - should be used if Resize handle is not a ContentChild of resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdkResizeResizeHandleRef') set setResizeHandleReference(value: ResizeHandleDirective) {\n this.resizeHandleReference = value;\n }\n\n /** Emits event when resizing has tarted */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeStart = new EventEmitter<void>();\n\n /** Emits event when resizing has ended */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeEnd = new EventEmitter<void>();\n\n /** @hidden Reference to Resize handle */\n @ContentChild(ResizeHandleDirective, { static: false }) resizeHandleReference;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _isRtl = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef<HTMLElement>, @Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled']) {\n if (changes['disabled'].previousValue === false && changes['disabled'].currentValue === true) {\n this._subscriptions.unsubscribe();\n } else if (changes['disabled'].previousValue === true && changes['disabled'].currentValue === false) {\n this._setResizeListeners();\n }\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._rtlService) {\n this._subscriptions.add(this._rtlService.rtl.subscribe((isRtl) => (this._isRtl = isRtl)));\n }\n\n if (!this.disabled) {\n this._setResizeListeners();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private get _direction(): number {\n return this._isRtl ? -1 : 1;\n }\n\n /** @hidden Sets Resize listeners */\n private _setResizeListeners(): void {\n const resize = this._getResizeFunction();\n const moveOffset = this._getMoveOffsetFunction();\n const resizeContainer = this._findResizeContainer();\n if (!resizeContainer) {\n return;\n }\n const isBoundaryOverflow = this._getBoundaryOverflowFunction(resizeContainer);\n\n const mouseUpEvent$ = fromEvent<MouseEvent>(window, 'mouseup');\n const mouseMoveEvent$ = fromEvent<MouseEvent>(resizeContainer, 'mousemove');\n const mouseDownEvent$ = fromEvent<MouseEvent>(this.resizeHandleReference.elementRef.nativeElement, 'mousedown');\n\n const resizeActive$ = merge(mouseDownEvent$.pipe(mapTo(true)), mouseUpEvent$.pipe(mapTo(false)));\n const emitResizableEvents$ = this._getResizeEventsNotifiers(resizeActive$);\n const preventOtherPointerEvents$ = this._blockOtherPointerEvents(resizeActive$);\n\n const resizingCursorMovement$ = mouseMoveEvent$.pipe(\n pairwise(),\n map(([event1, event2]: [MouseEvent, MouseEvent]) => moveOffset(event1, event2)),\n filter((move) => isBoundaryOverflow(move))\n );\n\n const setupResizer = (): void => {\n resizingCursorMovement$.pipe(takeUntil(mouseUpEvent$)).subscribe((event) => resize(event));\n };\n const setupResize$ = resizeActive$.pipe(\n filter((isActive) => isActive),\n tap(() => setupResizer())\n );\n\n this._subscriptions.add(setupResize$.subscribe());\n this._subscriptions.add(emitResizableEvents$.subscribe());\n this._subscriptions.add(preventOtherPointerEvents$.subscribe());\n }\n\n /** @hidden Creates resize function*/\n private _getResizeFunction(): (move: ResizeMove) => void {\n return (move: ResizeMove) => {\n this._elementRef.nativeElement.style.width = `${this._elementRef.nativeElement.offsetWidth + move.x}px`;\n this._elementRef.nativeElement.style.height = `${this._elementRef.nativeElement.offsetHeight + move.y}px`;\n };\n }\n\n /** @hidden Creates move function */\n private _getMoveOffsetFunction(): (event1: MouseEvent, event2: MouseEvent) => ResizeMove {\n let verticalModifier: 1 | -1;\n let horizontalModifier: 1 | -1;\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n horizontalModifier = -1;\n verticalModifier = -1;\n break;\n case 'top-right':\n horizontalModifier = -1;\n verticalModifier = 1;\n break;\n case 'bottom-left':\n horizontalModifier = 1;\n verticalModifier = -1;\n break;\n case 'bottom-right':\n horizontalModifier = 1;\n verticalModifier = 1;\n break;\n }\n\n return (event1: MouseEvent, event2: MouseEvent) => {\n const x = (event2.screenX - event1.screenX) * this._direction;\n const y = event2.screenY - event1.screenY;\n\n return {\n x: x * verticalModifier,\n y: y * horizontalModifier\n };\n };\n }\n\n /** @hidden Return boundary container */\n private _findResizeContainer(): Element | null {\n let resizeContainer: Element | null;\n if (typeof this.resizeBoundary === 'string') {\n resizeContainer = this._elementRef.nativeElement.closest(this.resizeBoundary);\n } else {\n resizeContainer = this.resizeBoundary;\n }\n\n if (resizeContainer) {\n return resizeContainer;\n } else {\n console.warn(`fdResize - Cannot find \"${this.resizeBoundary}\", falling back to \"body\"`);\n return document.querySelector('body');\n }\n }\n\n /** @hidden Check whether resizable container is overflowing boundary container */\n private _getBoundaryOverflowFunction(resizeContainer: Element): (move: ResizeMove) => boolean {\n return (move: ResizeMove) => {\n const containerPosition = resizeContainer.getBoundingClientRect();\n const elementPosition = this._elementRef.nativeElement.getBoundingClientRect();\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'top-right':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n case 'bottom-left':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'bottom-right':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n }\n };\n }\n\n /** @hidden Create Observable notifying on resize actions */\n private _getResizeEventsNotifiers(trigger$: Observable<boolean>): Observable<any> {\n const emitResizableStart$ = trigger$.pipe(\n filter((isActive) => isActive),\n tap(() => this.onResizeStart.emit())\n );\n\n const emitResizableEnd$ = trigger$.pipe(\n filter((isActive) => !isActive),\n tap(() => this.onResizeEnd.emit())\n );\n\n return merge(emitResizableStart$, emitResizableEnd$);\n }\n\n /** @hidden Block resizable container pointer events when resizing */\n private _blockOtherPointerEvents(trigger$: Observable<boolean>): Observable<any> {\n return trigger$.pipe(\n map((isActive) => (isActive ? 'none' : 'auto')),\n tap((value) => (this._elementRef.nativeElement.style.pointerEvents = value))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ResizeDirective, DeprecatedResizeDirective } from './resize.directive';\nimport { ResizeHandleDirective, DeprecatedResizeHandleDirective } from './resize-handle.directive';\n\n@NgModule({\n imports: [ResizeDirective, DeprecatedResizeDirective, ResizeHandleDirective, DeprecatedResizeHandleDirective],\n exports: [ResizeDirective, DeprecatedResizeDirective, ResizeHandleDirective, DeprecatedResizeHandleDirective]\n})\nexport class ResizeModule {}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdTemplate]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkTemplate]', '[fdTemplate]')\n }\n ]\n})\nexport class DeprecatedTemplateSelectorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkTemplate], [fdTemplate]',\n standalone: true\n})\nexport class TemplateDirective {\n /** Name of the template */\n @Input('fdkTemplate')\n name: string;\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n\n /** @hidden */\n getName(): string {\n return this.name;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TemplateDirective, DeprecatedTemplateSelectorDirective } from './template.directive';\n\n@NgModule({\n imports: [TemplateDirective, DeprecatedTemplateSelectorDirective],\n exports: [TemplateDirective, DeprecatedTemplateSelectorDirective]\n})\nexport class TemplateModule {}\n","import { AfterViewInit, Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Nullable } from '../../models/nullable';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdTruncate], [fd-truncate]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkTemplate]', '[fdTruncate], [fd-truncate]')\n }\n ]\n})\nexport class DeprecatedTruncateSelectorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkTruncate], [fdTruncate], [fd-truncate]',\n standalone: true\n})\nexport class TruncateDirective implements OnChanges, AfterViewInit {\n /**\n * Width in pixel for truncation of an element , by default\n */\n @Input()\n set fdkTruncateWidth(value: Nullable<number>) {\n this._customWidthCount = coerceNumberProperty(value);\n }\n\n /**\n * Truncating state\n */\n @Input()\n fdkTruncateState = false;\n\n /** @hidden */\n private _customWidthCount = 200;\n\n /** @hidden */\n private _truncateTarget: HTMLElement;\n\n /** @hidden\n * saves default style of element before truncating\n */\n private _defaultStyle: string;\n\n /** @hidden */\n private takeDefaultStyleOnce = true;\n\n /** @hidden\n * truncation style for truncating element\n */\n private _truncationStyle: string;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Root native element\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /**\n * Method saves default style of target element before first truncate.\n */\n setDefaultStyle(): void {\n if (this.takeDefaultStyleOnce) {\n this._defaultStyle = this._truncateTarget.style.cssText;\n this.takeDefaultStyleOnce = false;\n }\n }\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.rootElement) {\n this._truncate();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._truncate();\n }\n\n /** @hidden */\n private _truncate(): void {\n this._truncateTarget = this.rootElement;\n\n if (!this._truncateTarget) {\n return;\n }\n this.setDefaultStyle();\n this._truncationStyle = `${this._defaultStyle} max-width: ${this._customWidthCount}px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`;\n this._truncateTarget.style.cssText = this.fdkTruncateState ? this._truncationStyle : this._defaultStyle;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { TruncateDirective, DeprecatedTruncateSelectorDirective } from './truncate.directive';\n\n@NgModule({\n imports: [TruncateDirective, DeprecatedTruncateSelectorDirective],\n exports: [TruncateDirective, DeprecatedTruncateSelectorDirective]\n})\nexport class TruncateModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_FOCUSABLE_ITEM_DIRECTIVE = new InjectionToken('Focusable directive token');\n","import { Injectable, isDevMode } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { isCompactDensity } from '../functions/is-compact-density';\nimport { ContentDensity } from '../interfaces/content-density';\n\nexport const DEFAULT_CONTENT_DENSITY: ContentDensity = 'cozy';\n\n/**\n * Service taking care of ContentDensity\n */\n@Injectable()\nexport class ContentDensityService {\n /** Content Density BehaviourSubject */\n readonly contentDensity = new BehaviorSubject(DEFAULT_CONTENT_DENSITY);\n\n /** @hidden */\n constructor() {\n if (isDevMode()) {\n console.warn(\n `[Deprecated] ContentDensityService is deprecated and will be removed in the next major version.\n Please use ContentDensityControllerService instead, or use the ContentDensityModule forRoot method.`\n );\n }\n }\n\n /** @hidden */\n get _contentDensityListener(): Observable<ContentDensity> {\n return this.contentDensity.pipe(distinctUntilChanged(), startWith(this.contentDensity.getValue()));\n }\n\n /** @hidden */\n get _isCompactDensity(): Observable<boolean> {\n return this._contentDensityListener.pipe(map((density) => isCompactDensity(density)));\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class DestroyedService extends ReplaySubject<void> implements OnDestroy {\n /** @hidden */\n constructor() {\n super(1);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { createFocusTrap, FocusTrap, Options } from 'focus-trap';\nimport { uuidv4 } from '../functions/uuidv4-generator';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusTrapService {\n /** @hidden */\n private _focusTrapInstances: Map<any, FocusTrap> = new Map();\n\n /**\n * Creates focus trap instance for defined element\n * @param element Container for which to create focus trap\n * @param userOptions Focus-trap specific configuration\n * @returns {string} Unique ID of focus trap instance\n */\n createFocusTrap(\n element: string | HTMLElement | SVGElement | (string | HTMLElement | SVGElement)[],\n userOptions?: Options\n ): string {\n const uid = uuidv4();\n\n const trap = createFocusTrap(element, userOptions);\n\n this._focusTrapInstances.set(uid, trap);\n\n this.activateFocusTrap(uid);\n\n return uid;\n }\n\n /**\n * Activates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n activateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.activate();\n }\n\n /**\n * Deactivates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n deactivateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.deactivate();\n\n this._focusTrapInstances.delete(id);\n }\n\n /**\n * Pauses current focus trap.\n */\n pauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.pause();\n }\n\n /**\n * Unpauses current focus trap.\n */\n unpauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.unpause();\n }\n\n /**\n * Get focus trap instance by ID.\n * @param id ID of the instance.\n * @returns Focus trap instance if exists.\n */\n getFocusTrapInstance(id: string): FocusTrap | undefined {\n return this._focusTrapInstances.get(id);\n }\n\n /** @hidden */\n private _getLastTrapedItem(): FocusTrap | undefined {\n const lastItem = Array.from(this._focusTrapInstances).pop();\n\n return lastItem ? lastItem[1] : undefined;\n }\n\n /** @hidden */\n private _focusTrapExists(id: string): boolean {\n return this._focusTrapInstances.has(id);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Injectable, QueryList } from '@angular/core';\nimport { KeyboardSupportItemInterface } from '../../interfaces/keyboard-support-item.interface';\nimport { merge, Subject } from 'rxjs';\nimport { filter, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { KeyUtil } from '../../functions';\nimport { DOWN_ARROW, hasModifierKey, TAB, UP_ARROW } from '@angular/cdk/keycodes';\n\nexport type FocusEscapeDirection = 'up' | 'down';\n\n@Injectable({ providedIn: 'root' })\nexport class KeyboardSupportService<T> {\n /** Subject that is thrown, when focus escapes the list */\n focusEscapeList = new Subject<FocusEscapeDirection>();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n private readonly _onRefresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _keyManager: FocusKeyManager<T>;\n\n /** @hidden */\n get keyManager(): FocusKeyManager<T> {\n return this._keyManager;\n }\n\n /** @hidden */\n private _itemList: QueryList<KeyboardSupportItemInterface & T>;\n\n /** @hidden\n * allow tab key navigation. default is true.\n */\n private _tabKeyNavigation = true;\n\n /** @hidden */\n setKeyboardService(\n queryList: QueryList<KeyboardSupportItemInterface & T>,\n wrap?: boolean,\n tabKeyNavigation = true\n ): void {\n this._itemList = queryList;\n this._tabKeyNavigation = tabKeyNavigation;\n this._keyManager = new FocusKeyManager(queryList).withWrap(wrap).withHomeAndEnd();\n queryList.changes\n .pipe(takeUntil(this._onDestroy$), startWith(0))\n .subscribe(() => this._refreshEscapeLogic(queryList));\n }\n\n /** @hidden */\n onKeyDown(event: KeyboardEvent): void {\n this._keyManager.onKeydown(event);\n if (KeyUtil.isKeyCode(event, TAB)) {\n if (KeyUtil.isKeyCode(event, TAB) && this._tabKeyNavigation) {\n event.preventDefault();\n hasModifierKey(event, 'shiftKey')\n ? this.keyManager.setPreviousItemActive()\n : this.keyManager.setNextItemActive();\n }\n }\n }\n\n /** Destroys KeyboardSupportService dependencies */\n onDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._keyManager.destroy();\n }\n\n /** @hidden */\n private _refreshEscapeLogic(queryList: QueryList<KeyboardSupportItemInterface & T>): void {\n const createEscapeListener = (\n listItem: KeyboardSupportItemInterface & T,\n onKeyCode: number,\n escapeDirection: FocusEscapeDirection\n ): void => {\n listItem.keyDown\n .pipe(\n takeUntil(unsubscribe$),\n filter((event) => KeyUtil.isKeyCode(event, onKeyCode)),\n tap((event) => event.preventDefault())\n )\n .subscribe(() => this.focusEscapeList.next(escapeDirection));\n };\n\n /** Finish all of the streams, form before */\n this._onRefresh$.next();\n\n const unsubscribe$ = merge(this._onRefresh$, this._onDestroy$);\n\n if (queryList.length) {\n createEscapeListener(queryList.last, DOWN_ARROW, 'down');\n createEscapeListener(queryList.first, UP_ARROW, 'up');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nclass MockStorage {\n readonly length: number;\n\n // eslint-disable-next-line\n key(index: number): any {}\n\n clear(): void {}\n\n // eslint-disable-next-line\n getItem(key: string): any {}\n\n // eslint-disable-next-line\n removeItem(key: string): void {}\n\n // eslint-disable-next-line\n setItem(key: string, value: string): void {}\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LocalStorageService {\n /** @hidden */\n private _storage: Storage;\n\n /** @hidden */\n constructor() {\n typeof localStorage !== 'undefined' ? (this._storage = localStorage) : (this._storage = new MockStorage());\n }\n\n /** Get item from local storage. */\n get(key: string): any {\n const value = this._storage.getItem(key);\n if (value) {\n return JSON.parse(value);\n }\n return null;\n }\n\n /** Set item in local storage. */\n set(key: string, value: any): void {\n this._storage.setItem(key, JSON.stringify(value));\n }\n}\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { coerceElement } from '@angular/cdk/coercion';\n\ninterface ObservedElement {\n observer: ResizeObserver | null;\n readonly stream: Subject<ResizeObserverEntry[]>;\n count: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n /** Factory to create ResizeObserver if it's present in browser. */\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n /** @hidden */\n private _observedElements = new Map<Element, ObservedElement>();\n\n /** @hidden */\n constructor(private _resizeObserverFactory: ResizeObserverFactory) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n\n /** Observe the given element and emit whenever its size changes. */\n observe(elementOrRef: Element | ElementRef<Element>): Observable<ResizeObserverEntry[]> {\n const element = coerceElement(elementOrRef);\n\n return new Observable((observer: Observer<ResizeObserverEntry[]>) => {\n const stream = this._observeElement(element);\n const subscription = stream?.subscribe(observer);\n\n return () => {\n subscription?.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n private _observeElement(element: Element): Subject<ResizeObserverEntry[]> | undefined {\n let observedElement = this._observedElements.get(element);\n\n if (!observedElement) {\n const stream = new Subject<ResizeObserverEntry[]>();\n const observer = this._resizeObserverFactory.create((mutations) => stream.next(mutations));\n if (observer) {\n observer.observe(element);\n }\n observedElement = { observer, stream, count: 0 };\n this._observedElements.set(element, observedElement);\n }\n observedElement.count++;\n return observedElement?.stream;\n }\n\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n private _unobserveElement(element: Element): void {\n const observedElement = this._observedElements.get(element);\n if (!observedElement) {\n return;\n }\n\n if (--observedElement.count) {\n return;\n }\n this._cleanupObserver(element);\n }\n\n /** Clean up the underlying MutationObserver for the specified element. */\n private _cleanupObserver(element: Element): void {\n const observedElement = this._observedElements.get(element);\n\n if (!observedElement) {\n return;\n }\n const { observer, stream } = observedElement;\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { ElementRef } from '@angular/core';\n\n/**\n * Retrieves native element from ElementRef.\n */\nexport function getNativeElement<T extends Element = HTMLElement>(\n element: { elementRef(): ElementRef<T> } | T | ElementRef<T>\n): T {\n let coercible = element;\n if (isHasElementRef<T>(element)) {\n coercible = element.elementRef();\n }\n return coerceElement(coercible as T | ElementRef<T>);\n}\n\n/**\n * Checks whether object has element reference in it.\n */\nexport function isHasElementRef<T extends Element = HTMLElement>(\n something: any\n): something is { elementRef(): ElementRef<T> } {\n return something && typeof something['elementRef'] === 'function';\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { MutationObserverFactory } from '@angular/cdk/observers';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { getNativeElement } from '../../helpers/get-native-element';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AttributeObserver implements OnDestroy {\n /** @Hidden */\n private readonly _observedElements = new Map<\n Element,\n {\n observer: MutationObserver | null;\n stream: Subject<MutationRecord[]>;\n count: number;\n }\n >();\n\n /** @hidden */\n constructor(private _mutationObserverFactory: MutationObserverFactory) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n\n /** @Hidden */\n observe(elementOrRef: Element | ElementRef<Element> | HasElementRef<Element>): Observable<MutationRecord[]> {\n const element = getNativeElement(elementOrRef);\n return new Observable((observer: Observer<MutationRecord[]>) => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n\n /** @Hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._unobserveElement(getNativeElement(element));\n }\n\n /** @hidden */\n private _observeElement(element: Element): Subject<MutationRecord[]> {\n if (!this._observedElements.has(element)) {\n const stream = new Subject<MutationRecord[]>();\n const observer = this._mutationObserverFactory.create((mutations) => stream.next(mutations));\n if (observer) {\n observer.observe(element, {\n attributes: true\n });\n }\n this._observedElements.set(element, { observer, stream, count: 1 });\n } else {\n this._observedElements.get(element)!.count++;\n }\n return this._observedElements.get(element)!.stream;\n }\n\n /** @Hidden */\n private _unobserveElement(element: Element): void {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element)!.count--;\n if (!this._observedElements.get(element)!.count) {\n this._cleanupObserver(element);\n }\n }\n }\n\n /** @hidden */\n private _cleanupObserver(element: Element): void {\n if (this._observedElements.has(element)) {\n const { observer, stream } = this._observedElements.get(element)!;\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { HasElementRef } from '../../interfaces';\nimport { getNativeElement } from '../../helpers/get-native-element';\n\nconst focusableTagnamesByDefault = new Set(['select', 'textarea', 'input', 'button', 'audio', 'video']);\n\nconst focusableTagOptions = [\n {\n tag: 'div',\n attributes: [\n {\n name: 'contenteditable',\n valueMatcher: (value: string) => coerceBooleanProperty(value)\n }\n ]\n }\n];\n\n/** @hidden */\nexport function isElementFocusableByDefault(el: HasElementRef<Element> | Element | ElementRef<Element>): boolean {\n const element = getNativeElement(el);\n const tagName = element.tagName.toLowerCase();\n if (focusableTagnamesByDefault.has(tagName)) {\n return true;\n }\n\n return focusableTagOptions.some((tagOptions) => {\n if (tagOptions.tag === tagName) {\n return tagOptions.attributes.some((attribute) => {\n const attrVal = element.getAttribute(attribute.name);\n return attrVal && attribute.valueMatcher(attrVal);\n });\n }\n return false;\n });\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { AttributeObserver } from '../../services/observers/attribute.observer';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DisabledObserver {\n /** @hidden */\n constructor(private _attributeObserver: AttributeObserver) {}\n\n /** @hidden */\n static isDisabled(el: Element): boolean {\n return (\n el.hasAttribute('disabled') ||\n el.getAttribute('aria-disabled') === 'true' ||\n el.classList.contains('is-disabled')\n );\n }\n\n /** @hidden */\n observe(element: HasElementRef<Element> | Element | ElementRef<Element>): Observable<boolean> {\n return this._attributeObserver.observe(element).pipe(\n map(() => DisabledObserver.isDisabled(getNativeElement(element))),\n distinctUntilChanged()\n );\n }\n\n /** @hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._attributeObserver.unobserve(element);\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { isElementFocusableByDefault } from './is-element-focusable-by-default';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { AttributeObserver } from '../../services/observers/attribute.observer';\nimport { DisabledObserver } from '../disabled/disabled.observer';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusableObserver {\n /** @hidden */\n constructor(private _attributeObserver: AttributeObserver) {}\n\n /** @Hidden */\n static isFocusable(element: Element, respectTabIndex: boolean): boolean {\n if (DisabledObserver.isDisabled(element)) {\n return false;\n }\n\n if (!respectTabIndex) {\n return true;\n }\n\n const tabIndex = parseInt(element.getAttribute('tabindex') + '', 10);\n if (isNaN(tabIndex)) {\n return isElementFocusableByDefault(element);\n }\n\n return tabIndex > -1;\n }\n\n /** @hidden */\n observe(\n element: HasElementRef<Element> | Element | ElementRef<Element>,\n respectTabIndex = true\n ): Observable<boolean> {\n const nativeElement = getNativeElement(element);\n return this._attributeObserver.observe(nativeElement).pipe(\n map(() => FocusableObserver.isFocusable(nativeElement, respectTabIndex)),\n distinctUntilChanged()\n );\n }\n\n /** @hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._attributeObserver.unobserve(element);\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';\nimport { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable-item.tokens';\nimport { DestroyedService, TabbableElementService } from '../../services';\nimport { HasElementRef } from '../../interfaces';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { FocusableObserver } from './focusable.observer';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Nullable } from '../../models/nullable';\nimport { KeyUtil } from '../../functions';\n\nexport type CellFocusedEventAnnouncer = Nullable<(position: FocusableItemPosition) => string>;\n\nexport interface FocusableItemPosition {\n rowIndex: number;\n colIndex: number;\n totalRows: number;\n totalCols: number;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnFocusableItem]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkFocusableItem]', '[fnFocusableItem]')\n }\n ]\n})\nexport class DeprecatedFocusableItemDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkFocusableItem]',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: FocusableItemDirective\n },\n DestroyedService\n ]\n})\nexport class FocusableItemDirective implements HasElementRef {\n /** Whether the item is focusable. Default is true. */\n @Input()\n set fdkFocusableItem(val: BooleanInput) {\n this._focusable = coerceBooleanProperty(val);\n this.setTabbable(this._focusable);\n }\n\n get fdkFocusableItem(): boolean {\n return this._focusable;\n }\n\n /** Function, which returns a string to be announced by screen-reader whenever an item which is in grid receives focus. */\n @Input()\n cellFocusedEventAnnouncer: CellFocusedEventAnnouncer = this._defaultItemFocusedEventAnnouncer;\n\n /** Event emitted when the cell receives focus, not being emitted when focus moves between item's children. */\n @Output()\n readonly cellFocused = new EventEmitter<FocusableItemPosition>();\n\n /** @hidden */\n public readonly _keydown$ = new Subject<KeyboardEvent>();\n\n /** @hidden */\n _position: FocusableItemPosition;\n\n /** @hidden */\n private _focusable = true;\n\n /** @hidden */\n private _tabbableElements = new Map<HTMLElement, number>();\n\n /** @hidden */\n private _tabbable = true;\n\n /** @hidden */\n private _timerId: ReturnType<typeof global.setTimeout> | null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n return this._tabbable ? 0 : -1;\n }\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusableObserver: FocusableObserver,\n private _destroy$: DestroyedService,\n private _tabbableElementService: TabbableElementService,\n private _liveAnnouncer: LiveAnnouncer\n ) {\n this._focusableObserver\n .observe(this._elementRef, false)\n .pipe(takeUntil(this._destroy$))\n .subscribe((isFocusable) => {\n if (!isFocusable && isFocusable !== this.fdkFocusableItem) {\n this.fdkFocusableItem = isFocusable;\n }\n });\n }\n\n /** Element reference. */\n elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** Set tabbable state */\n setTabbable(state: boolean): void {\n this._tabbable = state;\n\n if (state) {\n this._enableTabbableElements();\n } else {\n this._disableTabbableElements();\n }\n }\n\n /** @hidden */\n @HostListener('focusin')\n async _onFocusin(): Promise<void> {\n if (!this.fdkFocusableItem) {\n return;\n }\n\n if (this._timerId != null) {\n clearTimeout(this._timerId);\n this._timerId = null;\n return;\n }\n\n if (this._position) {\n this.cellFocused.next(this._position);\n\n if (this.cellFocusedEventAnnouncer) {\n this._liveAnnouncer.clear();\n await this._liveAnnouncer.announce(this.cellFocusedEventAnnouncer(this._position));\n }\n }\n }\n\n /** @hidden */\n @HostListener('focusout')\n _onFocusout(): void {\n if (!this.fdkFocusableItem) {\n return;\n }\n\n // Timeout is needed to prevent focusout event from being emitted when focus moves between item's children.\n this._timerId = setTimeout(() => (this._timerId = null));\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (!this.fdkFocusableItem) {\n return;\n }\n\n const isFocused = document.activeElement === this._elementRef.nativeElement;\n const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2]) && !event.shiftKey && isFocused;\n const shouldFocusCell =\n ((KeyUtil.isKeyCode(event, F2) && event.shiftKey) || KeyUtil.isKeyCode(event, ESCAPE)) && !isFocused;\n\n if (shouldFocusChild) {\n event.stopPropagation();\n\n const tabbableElement = this._tabbableElementService.getTabbableElement(\n this.elementRef().nativeElement,\n false,\n true\n );\n\n tabbableElement?.focus();\n\n return;\n } else if (shouldFocusCell) {\n event.stopPropagation();\n\n this._elementRef.nativeElement.focus();\n\n return;\n }\n\n if (isFocused) {\n this._keydown$.next(event);\n }\n }\n\n /** @hidden */\n private _enableTabbableElements(): void {\n if (this._tabbableElements.size === 0) {\n return;\n }\n\n this._tabbableElements.forEach((tabIndex, element) => (element.tabIndex = tabIndex));\n this._tabbable = false;\n }\n\n /** @hidden */\n private _disableTabbableElements(): void {\n // Since we cannot select by tabindex attribute (links, inputs, buttons might not have one but still can be focusable),\n // Select all elements from the cell and filter by tabIndex property.\n Array.from(this._elementRef.nativeElement.querySelectorAll<HTMLElement>('*'))\n .filter((elm) => elm.tabIndex >= 0)\n .forEach((elm) => {\n this._tabbableElements.set(elm, elm.tabIndex);\n elm.tabIndex = -1;\n });\n }\n\n /** @hidden */\n private _defaultItemFocusedEventAnnouncer(position: FocusableItemPosition): string {\n return `Column ${position.colIndex + 1} of ${position.totalCols}, row: ${position.rowIndex + 1} of ${\n position.totalRows\n }`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FocusableItemDirective, DeprecatedFocusableItemDirective } from './focusable-item.directive';\n\n@NgModule({\n imports: [FocusableItemDirective, DeprecatedFocusableItemDirective],\n exports: [FocusableItemDirective, DeprecatedFocusableItemDirective]\n})\nexport class FocusableItemModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_FOCUSABLE_LIST_DIRECTIVE = new InjectionToken('Focusable list token');\n","import { Observable } from 'rxjs';\n\n/**\n * Helper function check whether passed data is a JS object (including function).\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isJsObject(obj: any): obj is object | Function {\n return obj !== null && (typeof obj === 'function' || typeof obj === 'object');\n}\n\n/**\n * Helper function checks whether passed value is not empty.\n */\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\n/**\n * Helper function check whether passed value is empty.\n */\nexport function isBlank(obj: any): obj is undefined | null {\n return obj === undefined || obj === null;\n}\n\n/**\n * Helper function checks whether passed value is a boolean.\n */\nexport function isBoolean(obj: any): obj is boolean {\n return typeof obj === 'boolean';\n}\n\n/**\n * Helper function checks whether passed value is a valid number.\n */\nexport function isNumber(obj: any): obj is number {\n return typeof obj === 'number';\n}\n\n/**\n * Helper function checks whether passed value is a string.\n */\nexport function isString(obj: any): obj is string {\n return typeof obj === 'string';\n}\n\n/**\n * Helper function checks whether passed value is a function\n */\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\n/** @hidden */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isType(obj: any): obj is Function {\n return isFunction(obj);\n}\n\n/**\n * Helper function checks whether passed value is a record of `T` values.\n */\nexport function isStringMap<T = any>(obj: any): obj is Record<string, T> {\n return typeof obj === 'object' && obj !== null;\n}\n\n/**\n * Helper function checks whether passed value is an `object`.\n */\nexport function isObject<T>(item: T): boolean {\n return typeof item === 'object' && !Array.isArray(item) && item !== null;\n}\n\n/**\n * Helper function checks whether passed value is a promise.\n */\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && isFunction(obj.then);\n}\n\n/**\n * Helper function checks whether passed value is an Observable/Subscribable.\n */\nexport function isSubscribable<T = any>(obj: any | Observable<T>): obj is Observable<T> {\n return !!obj && isFunction(obj.subscribe);\n}\n","import { Nullable } from '../models/nullable';\nimport { isNumber } from '../typecheck';\n\n/**\n * Utility type, that allows to track and select ranges of elements while using multi-selection.\n *\n * @usage\n * Imagine we have a simple list of checkboxes:\n * ```html\n * <input\n * #checkboxInput\n * *ngFor=\"let o of options; let idx = index\"\n * type=\"checkbox\"\n * [checked]=\"selectionModel.checked(o)\"\n * (click)=\"toggle(idx, $event)\"\n * >\n * ```\n * With the given layout the logic should be as follows:\n * ```typescript\n * export class YourComponent {\n * options = ['a', 'b', 'c'];\n * readonly selectionModel = new SelectionModel(true);\n *\n * private readonly _rangeSelector = new RangeSelector();\n *\n *\n * toggle(idx: number, event: PointerEvent): void {\n * // getting the toggled value of the checkbox\n * const toggledSelection = event.target.value;\n *\n * // registering the selection of current checkbox\n * this._rangeSelector.onRangeElementToggled(idx, event);\n *\n * // Apply value to each element in range.\n * // If checkbox was toggled without shift pressed or without previously selected one,\n * // this method will select only it.\n * this._rangeSelector.applyValueToEachInRange(idx => {\n * if (toggledSelection) {\n * this.selectionModel.select(options[idx]);\n * } else {\n * this.selectionModel.deselect(options[idx]);\n * }\n * });\n * }\n * }\n * ```\n */\nexport class RangeSelector {\n /** @hidden */\n private _previousSelectedIndex: number | null = null;\n /** @hidden */\n private _state: RangeSelectionState | null;\n\n /**\n * Last registered selection state (either multiple or single).\n * Is updated on each `onRangeElementClicked` invokation. Will be `null` initially or once `reset()` is called.\n */\n get lastRangeSelectionState(): RangeSelectionState | null {\n return this._state ? { ...this._state } : null;\n }\n\n /**\n * The method that should be used to register each checkbox toggle.\n * Accepts two arguments: `index` and `event`. If none provided, will reset existing state.\n * Otherwise will register current index as last checked.\n *\n * If toggling was done with \"shift\" pressed and there's a previously registered index, will register a range selection.\n * At the same time if checkbox was toggled without shift pressed or without previously selected one, this method will select only it.\n *\n * After calling this method it's recommended to use `applyValueToEachInRange` to actually toggle each checkbox in range.\n *\n * See usage example on this class itself.\n */\n onRangeElementToggled(index?: number, event?: KeyboardEvent | MouseEvent | TouchEvent): RangeSelectionState | null {\n if (\n this._isNonNegativeInteger(this._previousSelectedIndex) &&\n this._isNonNegativeInteger(index) &&\n event?.shiftKey\n ) {\n this._state = {\n isRangeSelection: true,\n from: Math.min(this._previousSelectedIndex, index),\n to: Math.max(this._previousSelectedIndex, index)\n };\n this._previousSelectedIndex = index;\n } else if (this._isNonNegativeInteger(index)) {\n this._state = { isRangeSelection: false, from: index, to: index };\n this._previousSelectedIndex = index;\n } else {\n this.reset();\n }\n\n return this.lastRangeSelectionState;\n }\n\n /**\n * Allows to apply selection to each item in selection range.\n * Accepts a function to apply selection to each item by registered index.\n *\n * See usage example on this class itself.\n */\n applyValueToEachInRange(selectionMethod: (index: number) => void): void {\n const state = this.lastRangeSelectionState;\n\n if (!state) {\n return;\n }\n\n if (this._isNonNegativeInteger(state?.from) && this._isNonNegativeInteger(state?.to)) {\n for (let index = state.from; index <= state.to; index++) {\n selectionMethod(index);\n }\n }\n }\n\n /** Resets selection state. Useful when the list of selectable items is changed (e.g. by filtering, sorting, page change) */\n reset(): void {\n this._state = null;\n this._previousSelectedIndex = null;\n }\n\n /** @hidden */\n private _isNonNegativeInteger(num: Nullable<number>): num is number {\n return isNumber(num) && num >= 0;\n }\n}\n\nexport interface RangeSelectionState {\n isRangeSelection: boolean;\n from: number;\n to: number;\n}\n","import { Nullable } from '../../models/nullable';\n\nexport type ScrollPosition = 'top' | 'bottom' | undefined;\n\n/** Helper function to scroll to focusable list or its item relatively to the container. */\nexport function scrollIntoView(element: Nullable<HTMLElement>, position: Nullable<ScrollPosition>): void {\n if (!position || !element) {\n return;\n }\n\n const scrollableParent = getScrollParent(element);\n\n if (scrollableParent) {\n const itemOffsetTop = element.offsetTop - scrollableParent.offsetTop;\n switch (position) {\n case 'top':\n scrollableParent.scrollTop = itemOffsetTop;\n break;\n case 'bottom':\n scrollableParent.scrollTop = itemOffsetTop - (scrollableParent.offsetHeight - element.offsetHeight);\n break;\n }\n }\n}\n\nfunction getScrollParent(node: HTMLElement | null): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n if (node.scrollHeight > node.clientHeight && ['auto', 'scroll'].includes(getComputedStyle(node).overflowY)) {\n return node;\n } else {\n return getScrollParent(node.parentNode as HTMLElement);\n }\n}\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\nimport { finalize, map, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { FocusableItemDirective, FocusableItemPosition } from '../focusable-item/focusable-item.directive';\nimport { DestroyedService } from '../../services/destroyed.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\nimport { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableObserver } from '../focusable-item';\nimport { FDK_FOCUSABLE_LIST_DIRECTIVE } from './focusable-list.tokens';\nimport { merge, Subject } from 'rxjs';\nimport { Nullable } from '../../models/nullable';\nimport { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { getNativeElement } from '../../helpers';\nimport { HasElementRef } from '../../interfaces';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { intersectionObservable, KeyUtil } from '../../functions';\nimport { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';\nimport { scrollIntoView, ScrollPosition } from './scroll';\n\nexport interface FocusableListPosition {\n rowIndex: number;\n totalRows: number;\n}\n\nexport interface FocusableListItemFocusedEvent {\n index: number;\n total: number;\n}\n\nexport interface FocusableListKeydownEvent {\n list: FocusableListDirective;\n event: KeyboardEvent;\n activeItemIndex: Nullable<number>;\n}\n\ninterface FocusableListConfig {\n wrap?: boolean;\n direction?: 'vertical' | 'horizontal';\n contentDirection?: 'ltr' | 'rtl' | null;\n}\n\nexport type FocusableItem = FocusableOption &\n HasElementRef & { index: number; focusable: (() => boolean) | boolean; keydown: Subject<KeyboardEvent> };\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnFocusableList]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkFocusableList]', '[fnFocusableList]')\n }\n ]\n})\nexport class DeprecatedFocusableListDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkFocusableList]',\n exportAs: 'fdkFocusableList',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_LIST_DIRECTIVE,\n useExisting: FocusableListDirective\n },\n DestroyedService\n ]\n})\nexport class FocusableListDirective implements OnChanges, AfterViewInit, OnDestroy {\n /** Whether the whole list should be focusable, handy in grids. */\n @Input()\n set focusable(value: BooleanInput) {\n this._focusable = coerceBooleanProperty(value);\n\n this.setTabbable(this._focusable);\n }\n get focusable(): boolean {\n return this._focusable;\n }\n\n /** @hidden */\n private _focusable = false;\n\n /** Direction of navigation. Should be set to 'grid' when list is a part of grid. */\n @Input()\n navigationDirection: 'horizontal' | 'vertical' | 'grid' = 'vertical';\n\n /** Direction of the content. */\n @Input()\n contentDirection: 'ltr' | 'rtl' | null = 'ltr';\n\n /**\n * Configures wrapping mode which determines whether the active item will wrap to the other end of list when there are no more items in the given direction.\n */\n @Input()\n wrap = false;\n\n /** Function, which returns a string to be announced by screen-reader whenever an row which is in grid receives focus. */\n @Input()\n listFocusedEventAnnouncer: (position: FocusableListPosition) => string = this._defaultListFocusedEventAnnouncer;\n\n /** Event emitted when list's item focused, contains item's position info. */\n @Output()\n readonly itemFocused = new EventEmitter<FocusableListItemFocusedEvent>();\n\n /** @hidden */\n @ContentChildren(FDK_FOCUSABLE_ITEM_DIRECTIVE, { descendants: true })\n public readonly _focusableItems: QueryList<FocusableItemDirective>;\n\n /** @hidden */\n public readonly _gridItemFocused$ = new Subject<FocusableItemPosition>();\n\n /** @hidden */\n public readonly _gridListFocused$ = new Subject<FocusableListPosition>();\n\n /** @hidden */\n public readonly _keydown$ = new Subject<FocusableListKeydownEvent>();\n\n /** @hidden */\n private _gridPosition: { rowIndex: number; totalRows: number };\n\n /** @hidden */\n private _keyManager?: FocusKeyManager<FocusableItem>;\n\n /** @hidden */\n private _tabbable = false;\n\n /** @hidden */\n private readonly _refreshItems$ = new Subject<void>();\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n return this._tabbable ? 0 : -1;\n }\n\n /** @hidden */\n _isVisible = false;\n\n /** @hidden */\n constructor(\n private _renderer: Renderer2,\n private _destroy$: DestroyedService,\n private _elementRef: ElementRef<HTMLElement>,\n private _liveAnnouncer: LiveAnnouncer,\n private _focusableObserver: FocusableObserver\n ) {\n intersectionObservable(this._elementRef.nativeElement, { threshold: 0.25 })\n .pipe(takeUntil(this._destroy$))\n .subscribe((isVisible) => (this._isVisible = isVisible[0]?.isIntersecting));\n\n this._focusableObserver\n .observe(this._elementRef, false)\n .pipe(takeUntil(this._destroy$))\n .subscribe((isFocusable) => {\n if (!isFocusable && isFocusable !== this.focusable) {\n this.focusable = isFocusable;\n }\n });\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._keyManager) {\n return;\n }\n\n if (changes['wrap']) {\n this._keyManager = this._keyManager.withWrap(changes['wrap'].currentValue);\n }\n\n if (changes['navigationDirection']) {\n this._updateNavigationDirection();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._focusableItems.changes\n .pipe(\n startWith(this._focusableItems),\n map((queryList) => queryList.toArray()),\n tap((items: FocusableItemDirective[]): void => {\n const focusableItems: FocusableItem[] = items.map((item, index) => ({\n index,\n focusable: () => item.fdkFocusableItem,\n elementRef: () => item.elementRef(),\n focus: () => item.elementRef().nativeElement.focus(),\n keydown: item._keydown$\n }));\n\n const direction = this.navigationDirection === 'grid' ? 'horizontal' : this.navigationDirection;\n\n this._initializeFocusManager(focusableItems, this, {\n direction,\n contentDirection: this.contentDirection,\n wrap: this.wrap\n });\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n // Already handled\n if (event.defaultPrevented) {\n return;\n }\n\n const isFocused = document.activeElement === this._elementRef.nativeElement;\n const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2]) && !event.shiftKey && isFocused;\n const shouldFocusList =\n ((KeyUtil.isKeyCode(event, F2) && event.shiftKey) || KeyUtil.isKeyCode(event, ESCAPE)) && !isFocused;\n\n if (shouldFocusChild) {\n event.stopPropagation();\n\n this.setActiveItem(0);\n\n return;\n } else if (shouldFocusList) {\n event.stopPropagation();\n\n this.focus();\n\n return;\n }\n\n this._keydown$.next({ list: this, event, activeItemIndex: this._keyManager?.activeItemIndex ?? null });\n }\n\n /** Set active item in list */\n setActiveItem(index: number, scrollPosition?: ScrollPosition): void {\n let availableIndex;\n\n this._focusableItems.find((item, itemIndex) => {\n if (itemIndex >= index && item.fdkFocusableItem) {\n availableIndex = itemIndex;\n return true;\n }\n\n return false;\n });\n\n if (availableIndex != null) {\n scrollIntoView(this._focusableItems.get(availableIndex)?.elementRef().nativeElement, scrollPosition);\n this._keyManager?.setActiveItem(availableIndex);\n }\n }\n\n /** Focus whole list */\n focus(scrollPosition?: ScrollPosition): void {\n if (this.focusable) {\n scrollIntoView(this._elementRef.nativeElement, scrollPosition);\n this._elementRef.nativeElement.focus();\n }\n }\n\n /** Set tabbable state */\n setTabbable(state: boolean): void {\n this._tabbable = state;\n }\n\n /** @hidden */\n @HostListener('focus')\n async _onFocus(): Promise<void> {\n if (this._gridPosition) {\n this._gridListFocused$.next(this._gridPosition);\n\n this._liveAnnouncer.clear();\n await this._liveAnnouncer.announce(this.listFocusedEventAnnouncer(this._gridPosition));\n\n this.setTabbable(true);\n }\n }\n\n /** @hidden */\n _updateNavigationDirection(): void {\n if (!this._keyManager) {\n return;\n }\n\n if (this.navigationDirection === 'vertical') {\n this._keyManager = this._keyManager.withVerticalOrientation(true);\n this._keyManager = this._keyManager.withHorizontalOrientation(null);\n } else {\n this._keyManager = this._keyManager.withVerticalOrientation(false);\n this._keyManager = this._keyManager.withHorizontalOrientation(this.contentDirection || 'ltr');\n }\n }\n\n /** @hidden */\n _setItemsTabbable(state: boolean): void {\n this._focusableItems.forEach((item) => item.setTabbable(state));\n }\n\n /** @hidden */\n _setGridPosition(position: FocusableListPosition): void {\n this._gridPosition = position;\n\n this._focusableItems.changes\n .pipe(startWith(this._focusableItems), takeUntil(this._destroy$))\n .subscribe((items) =>\n items.forEach(\n (item, index) =>\n (item._position = {\n ...this._gridPosition,\n colIndex: index,\n totalCols: this._focusableItems.length\n })\n )\n );\n }\n\n /** @hidden */\n private _initializeFocusManager(\n items: FocusableItem[],\n list: FocusableListDirective,\n config: FocusableListConfig = {}\n ): void {\n this._refreshItems$.next();\n\n let keyManager = new FocusKeyManager<any>(items).withHomeAndEnd();\n\n if (config.wrap !== false) {\n keyManager = keyManager.withWrap();\n }\n\n if (config.direction === 'horizontal') {\n keyManager = keyManager.withHorizontalOrientation(config.contentDirection || 'ltr'); // should be replaced\n\n // Vertical is enabled by default, so let's disable it here in consistency purposes\n keyManager = keyManager.withVerticalOrientation(false);\n }\n\n keyManager.skipPredicate((item) => !(typeof item.focusable === 'boolean' ? item.focusable : item.focusable()));\n\n this._keyManager = keyManager;\n\n const focusListenerDestroyers = items.map((item, index) =>\n this._renderer.listen(getNativeElement(item), 'focus', () => {\n const directiveItem = this._focusableItems.get(index);\n if (!directiveItem) {\n return;\n }\n\n if (this._gridPosition) {\n this._gridItemFocused$.next(directiveItem._position);\n }\n\n this.itemFocused.next({ index: item.index, total: items.length });\n this._focusableItems.forEach((i) => i.setTabbable(i === directiveItem));\n this._keyManager?.setActiveItem(item.index);\n })\n );\n\n merge(...items.map((item) => item.keydown))\n .pipe(\n tap((event: KeyboardEvent) => {\n // Already handled\n if (event.defaultPrevented) {\n return;\n }\n\n this._keyManager?.onKeydown(event);\n }),\n takeUntil(merge(this._refreshItems$, this._destroy$)),\n finalize(() => focusListenerDestroyers.forEach((d) => d()))\n )\n .subscribe();\n }\n\n /** @hidden */\n private _defaultListFocusedEventAnnouncer(position: FocusableListPosition): string {\n return `Row: ${position.rowIndex + 1} of ${position.totalRows}, use F2 button to dive in and focus list's item`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FocusableListDirective, DeprecatedFocusableListDirective } from './focusable-list.directive';\nimport { FocusableItemModule } from '../focusable-item';\n\n@NgModule({\n imports: [FocusableItemModule, FocusableListDirective, DeprecatedFocusableListDirective],\n exports: [FocusableListDirective, FocusableItemModule, DeprecatedFocusableListDirective]\n})\nexport class FocusableListModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_FOCUSABLE_GRID_DIRECTIVE = new InjectionToken('Focusable grid directive token');\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, LEFT_ARROW, PAGE_DOWN, PAGE_UP, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, Input, Output, QueryList } from '@angular/core';\nimport { merge, startWith, switchMap, takeUntil } from 'rxjs';\nimport { KeyUtil } from '../../functions';\nimport { Nullable } from '../../models/nullable';\nimport { DestroyedService } from '../../services';\nimport { FocusableItemPosition } from '../focusable-item';\nimport { FDK_FOCUSABLE_LIST_DIRECTIVE, FocusableListDirective, FocusableListPosition } from '../focusable-list';\nimport { findLastIndex } from 'lodash-es';\nimport { ScrollPosition } from '../focusable-list';\nimport { FDK_FOCUSABLE_GRID_DIRECTIVE } from './focusable-grid.tokens';\n\nexport interface FocusableCellPosition {\n rowIndex: number;\n colIndex: number;\n}\n\n@Directive({\n selector: '[fdkFocusableGrid]',\n exportAs: 'fdkFocusableGrid',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_GRID_DIRECTIVE,\n useExisting: FocusableGridDirective\n },\n DestroyedService\n ]\n})\nexport class FocusableGridDirective implements AfterViewInit {\n /** Direction of the content. */\n @Input()\n contentDirection: 'ltr' | 'rtl' | null = 'ltr';\n\n /** Whether the item in the previous/next row should be selected when going out of the first/last cell in the row. Default is false. */\n @Input()\n set wrapHorizontally(value: BooleanInput) {\n this._wrapHorizontally = coerceBooleanProperty(value);\n }\n\n get wrapHorizontally(): boolean {\n return this._wrapHorizontally;\n }\n\n /** Specify which item to select in prev/next row if its length smaller than current index. Nullish value means do not select. Default is null. */\n @Input()\n shortRowFocus: Nullable<'first' | 'last'> = null;\n\n /** Event emitted when item focused, contains item's position info. */\n @Output()\n readonly itemFocused = new EventEmitter<FocusableItemPosition>();\n\n /** Event emitted when whole row focused, contains row's position info. */\n @Output()\n readonly rowFocused = new EventEmitter<FocusableListPosition>();\n\n /** @hidden */\n private _wrapHorizontally = false;\n\n /** @hidden */\n @ContentChildren(FDK_FOCUSABLE_LIST_DIRECTIVE, { descendants: true })\n private readonly _focusableLists: QueryList<FocusableListDirective>;\n\n /** @hidden */\n constructor(private readonly _destroy$: DestroyedService) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._focusableLists.changes\n .pipe(startWith(this._focusableLists), takeUntil(this._destroy$))\n .subscribe((lists) =>\n lists.forEach((list, index) =>\n list._setGridPosition({ rowIndex: index, totalRows: this._focusableLists.length })\n )\n );\n\n this._focusableLists.changes\n .pipe(\n startWith(this._focusableLists),\n switchMap((queryList: QueryList<FocusableListDirective>) =>\n merge(...queryList.toArray().map((list) => list._gridListFocused$))\n ),\n takeUntil(this._destroy$)\n )\n .subscribe((focusedEvent) => {\n this.rowFocused.emit(focusedEvent);\n\n this._focusableLists.forEach((list) => list.setTabbable(false));\n this._focusableLists.forEach((list) => list._setItemsTabbable(false));\n });\n\n this._focusableLists.changes\n .pipe(\n startWith(this._focusableLists),\n switchMap((queryList: QueryList<FocusableListDirective>) =>\n merge(...queryList.toArray().map((list) => list._gridItemFocused$))\n ),\n takeUntil(this._destroy$)\n )\n .subscribe((focusedEvent) => {\n this.itemFocused.emit(focusedEvent);\n\n this._focusableLists.forEach((list) => list.setTabbable(false));\n this._focusableLists.forEach((list) => list._setItemsTabbable(false));\n });\n\n this._focusableLists.changes\n .pipe(\n startWith(this._focusableLists),\n switchMap((queryList: QueryList<FocusableListDirective>) =>\n merge(...queryList.toArray().map((list) => list._keydown$))\n ),\n takeUntil(this._destroy$)\n )\n .subscribe(({ event, list, activeItemIndex }) => this._onKeydown(event, list, activeItemIndex));\n }\n\n /**\n * Focus cell by position.\n * @param position position of the cell\n */\n focusCell(position: FocusableCellPosition): void {\n const list = this._focusableLists.get(position.rowIndex);\n if (list) {\n list.setActiveItem(position.colIndex);\n }\n }\n\n /** @hidden */\n _onKeydown(event: KeyboardEvent, list: FocusableListDirective, activeItemIndex: Nullable<number>): void {\n if (!KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, PAGE_DOWN, PAGE_UP])) {\n return;\n }\n\n const lists = this._focusableLists.toArray();\n const currentRowIndex = lists.findIndex((item) => item === list);\n let nextRowIndex: number | undefined;\n let nextRowItemIndex = activeItemIndex ?? 0;\n let scrollIntoView: ScrollPosition;\n\n const isFirstItemLtr = activeItemIndex === 0 && this.contentDirection !== 'rtl';\n const isLastItemRtl = activeItemIndex === list._focusableItems.length - 1 && this.contentDirection === 'rtl';\n\n const isFirstItemRtl = activeItemIndex === 0 && this.contentDirection === 'rtl';\n const isLastItemLtr = activeItemIndex === list._focusableItems.length - 1 && this.contentDirection !== 'rtl';\n\n switch (event.keyCode) {\n case UP_ARROW:\n event.preventDefault();\n nextRowIndex = currentRowIndex - 1;\n break;\n case DOWN_ARROW:\n event.preventDefault();\n nextRowIndex = currentRowIndex + 1;\n break;\n case LEFT_ARROW:\n if (this.wrapHorizontally && (isFirstItemLtr || isLastItemRtl)) {\n event.preventDefault();\n nextRowIndex = currentRowIndex - 1;\n nextRowItemIndex = lists[nextRowIndex]?._focusableItems.length - 1;\n }\n break;\n case RIGHT_ARROW:\n if (this.wrapHorizontally && (isFirstItemRtl || isLastItemLtr)) {\n event.preventDefault();\n nextRowIndex = currentRowIndex + 1;\n nextRowItemIndex = 0;\n }\n break;\n case PAGE_DOWN:\n event.preventDefault();\n nextRowIndex = findLastIndex(lists, (item) => item._isVisible);\n scrollIntoView = 'top';\n break;\n case PAGE_UP:\n event.preventDefault();\n nextRowIndex = lists.findIndex((item) => item._isVisible);\n scrollIntoView = 'bottom';\n break;\n }\n\n const nextRow = lists[nextRowIndex ?? -1];\n if (nextRow) {\n if (nextRow.focusable) {\n nextRow.focus(scrollIntoView);\n return;\n }\n\n const itemIndex = this._getItemIndex(nextRow, nextRowItemIndex);\n if (itemIndex != null) {\n nextRow.setActiveItem(itemIndex, scrollIntoView);\n }\n }\n }\n\n /** @hidden */\n private _getItemIndex(list: FocusableListDirective, activeIndex: number): Nullable<number> {\n if (activeIndex >= 0 && activeIndex < list._focusableItems.length) {\n return activeIndex;\n }\n\n if (this.shortRowFocus == null) {\n return null;\n }\n\n return this.shortRowFocus === 'first' ? 0 : list._focusableItems.length - 1;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FocusableListModule } from '../focusable-list';\nimport { FocusableGridDirective } from './focusable-grid.directive';\n\n@NgModule({\n imports: [FocusableListModule, FocusableGridDirective],\n exports: [FocusableListModule, FocusableGridDirective]\n})\nexport class FocusableGridModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_READONLY_DIRECTIVE = new InjectionToken('Readonly directive token');\n","import { ElementRef } from '@angular/core';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\n\n/** @Hidden */\nexport function setReadonlyState(\n element: HasElementRef<Element> | Element | ElementRef<Element>,\n isReadonly: boolean\n): void {\n const htmlElement = getNativeElement(element);\n if (isReadonly) {\n htmlElement.classList.add('is-readonly');\n htmlElement.setAttribute('readonly', '');\n } else {\n htmlElement.classList.remove('is-readonly');\n htmlElement.removeAttribute('readonly');\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { FDK_READONLY_DIRECTIVE } from './fdk-readonly.token';\nimport { ReadonlyBehavior } from './readonly-behavior.interface';\nimport { setReadonlyState } from './set-readonly-state';\nimport { DestroyedService } from '../../services/destroyed.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnReadonly]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkReadonly]', '[fnReadonly]')\n }\n ]\n})\nexport class DeprecatedReadonlyBehaviorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkReadonly], [fnReadonly]',\n standalone: true,\n providers: [\n {\n provide: FDK_READONLY_DIRECTIVE,\n useExisting: ReadonlyBehaviorDirective\n },\n DestroyedService\n ]\n})\nexport class ReadonlyBehaviorDirective\n extends ReplaySubject<boolean>\n implements ReadonlyBehavior, AfterViewInit, OnDestroy\n{\n /** @Hidden */\n @Input()\n set fdkReadonly(value: BooleanInput) {\n this._readonlyInput$.next(coerceBooleanProperty(value));\n }\n\n get fdkReadonly(): boolean {\n return this._readonly;\n }\n\n /** @Hidden */\n _readonly = false;\n /** @hidden */\n private readonly _readonlyInput$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(private _elementRef: ElementRef<HTMLElement>, private _destroy$: DestroyedService) {\n super(1);\n }\n\n /** @Hidden */\n setReadonlyState = (isReadonly: boolean): void => {\n setReadonlyState(this._elementRef, isReadonly);\n };\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._readonlyInput$\n .pipe(\n tap((isReadonly) => {\n if (isReadonly !== this._readonly) {\n this.setReadonlyState(isReadonly);\n this._readonly = isReadonly;\n this.next(isReadonly);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective } from './readonly-behavior.directive';\n\n@NgModule({\n imports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective],\n exports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective]\n})\nexport class ReadonlyBehaviorModule {}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\nimport { AttributeObserver } from '../../services/observers/attribute.observer';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReadonlyObserver {\n /** @Hidden */\n constructor(private _attributeObserver: AttributeObserver) {}\n\n /** @Hidden */\n static isReadonly(element: Element): boolean {\n return element.classList.contains('is-readonly') || element.hasAttribute('readonly');\n }\n\n /** @hidden */\n observe(element: HasElementRef<Element> | Element | ElementRef<Element>): Observable<boolean> {\n return this._attributeObserver.observe(element).pipe(\n map(() => ReadonlyObserver.isReadonly(getNativeElement(element))),\n distinctUntilChanged()\n );\n }\n\n /** @Hidden */\n unobserve(element: HasElementRef<Element> | Element | ElementRef<Element>): void {\n this._attributeObserver.unobserve(element);\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { ReadonlyViewModifier } from './readonly-view-modifier.interface';\nimport { setReadonlyState } from './set-readonly-state';\n\nexport class DefaultReadonlyViewModifier implements ReadonlyViewModifier {\n /** @hidden */\n constructor(private elementRef: ElementRef<Element>) {}\n\n /** @hidden */\n setReadonlyState = (isDisabled: boolean): void => {\n setReadonlyState(this.elementRef, isDisabled);\n };\n}\n","import { ElementRef, Inject, Injectable, NgZone, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, Observable, ReplaySubject, Subject } from 'rxjs';\nimport { distinctUntilChanged, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { ReadonlyObserver } from './readonly.observer';\nimport { ReadonlyBehavior } from './readonly-behavior.interface';\nimport { DefaultReadonlyViewModifier } from './default-readonly-view-modifier';\nimport { ReadonlyViewModifier } from './readonly-view-modifier.interface';\nimport { FDK_READONLY_DIRECTIVE } from './fdk-readonly.token';\n\n@Injectable()\nexport class FdkReadonlyProvider extends ReplaySubject<boolean> implements ReadonlyBehavior, OnDestroy {\n /** @Hidden */\n fdkReadonly = false;\n\n /** @hidden */\n private readonly _viewModifiers$: BehaviorSubject<ReadonlyViewModifier[]> = new BehaviorSubject<\n ReadonlyViewModifier[]\n >(this._getInitialViewModifiers());\n\n /** @hidden */\n private _readonlyChange$: Observable<boolean> = this._getReadonlyChange$();\n\n /** @hidden */\n private readonly _destroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef<Element>,\n private readonlyObserver: ReadonlyObserver,\n @Optional() @Self() @Inject(FDK_READONLY_DIRECTIVE) private selfReadonly$: ReadonlyBehavior,\n @Optional() @SkipSelf() @Inject(FDK_READONLY_DIRECTIVE) private parentReadonly$: ReadonlyBehavior\n ) {\n super(1);\n combineLatest([this._readonlyChange$, this._viewModifiers$])\n .pipe(\n tap(([isReadonly]) => this.setReadonlyState(isReadonly)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n this._readonlyChange$\n .pipe(\n tap((isDisabled) => (this.fdkReadonly = isDisabled)),\n tap((isDisabled) => this.next(isDisabled)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n addViewModifier(modifier: ReadonlyViewModifier): void {\n const viewModifiers = [...new Set([...this._viewModifiers$.value, modifier]).values()];\n this._viewModifiers$.next(viewModifiers);\n }\n\n /** @hidden */\n setReadonlyState(isReadonly: boolean): void {\n firstValueFrom(this.ngZone.onStable).then(() => {\n this._viewModifiers$.value.forEach((viewModifier) => viewModifier.setReadonlyState(isReadonly));\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n this._destroy$.next();\n this._destroy$.complete();\n this.readonlyObserver.unobserve(this.elementRef);\n }\n\n /** @hidden */\n private _getReadonlyChange$(): Observable<boolean> {\n let selfReadonly = false;\n let parentReadonly = false;\n\n if (this.parentReadonly$) {\n this.parentReadonly$\n .pipe(\n startWith(this.parentReadonly$.fdkReadonly),\n tap((d) => (parentReadonly = d)),\n distinctUntilChanged(),\n tap(() => {\n if (parentReadonly) {\n this.setReadonlyState(true);\n }\n if (!selfReadonly && !parentReadonly) {\n this.setReadonlyState(false);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n if (this.selfReadonly$) {\n this.selfReadonly$\n .pipe(\n startWith(this.selfReadonly$.fdkReadonly),\n tap((d) => (selfReadonly = d)),\n distinctUntilChanged(),\n tap((isReadonly) => {\n if (!parentReadonly) {\n this.setReadonlyState(isReadonly);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n return this.readonlyObserver.observe(this.elementRef).pipe(distinctUntilChanged());\n }\n\n /** @hidden */\n private _getInitialViewModifiers(): ReadonlyViewModifier[] {\n return !this.selfReadonly$ ? [new DefaultReadonlyViewModifier(this.elementRef)] : [this.selfReadonly$];\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { getNativeElement } from '../../helpers/get-native-element';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\n\n/** @hidden */\nexport function setDisabledState(\n element: HasElementRef<Element> | Element | ElementRef<Element>,\n isDisabled: boolean,\n disabledClass: string,\n addDisabledClass: boolean\n): void {\n const htmlElement = getNativeElement(element);\n if (isDisabled) {\n if (addDisabledClass) {\n htmlElement.classList.add(disabledClass);\n }\n htmlElement.setAttribute('disabled', '');\n htmlElement.setAttribute('aria-disabled', 'true');\n } else {\n htmlElement.classList.remove(disabledClass);\n htmlElement.removeAttribute('disabled');\n htmlElement.removeAttribute('aria-disabled');\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { DisabledBehavior } from './disabled-behavior.interface';\n\nexport const FDK_DISABLED_DIRECTIVE = new InjectionToken<DisabledBehavior>('Disabled directive token');\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnClicked]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkClicked]', '[fnClicked]')\n }\n ]\n})\nexport class DeprecatedClickedDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkClicked]'\n})\nexport class ClickedDirective {\n /**\n * Event name.\n */\n static eventName = 'fdkClicked';\n /**\n * FdkClicked output. Sole purpose of existence of this directive is to just silence Angular Language Service.\n * This is only viable solution, since NO_ERRORS_SCHEMA silences everything and valuable exception might slip\n * through your eyes.\n */\n @Output() fdkClicked: Observable<MouseEvent | KeyboardEvent> = new EventEmitter();\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport { ClickedDirective } from './clicked.directive';\n\ntype EventHandlerFunction = ($event: Event) => void;\ntype HandlerRemoveFunction = () => void;\n\n@Injectable()\nexport class ClickedEventPlugin {\n /** @hidden */\n constructor(@Inject(DOCUMENT) private document: Document, @Inject(PLATFORM_ID) private platformId: any) {}\n\n /** @hidden */\n addEventListener(element: HTMLElement, eventName: string, handler: EventHandlerFunction): ($event: Event) => void {\n return this._setupEventBinding(element, handler);\n }\n\n /** @hidden */\n addGlobalEventListener(\n higherOrderElement: string,\n eventName: string,\n handler: EventHandlerFunction\n ): HandlerRemoveFunction {\n const target = this._parseHigherOrderElement(higherOrderElement);\n return this._setupEventBinding(target, handler);\n }\n\n /** @hidden */\n supports(eventName: string): boolean {\n return eventName === ClickedDirective.eventName;\n }\n\n /** @hidden */\n private _parseHigherOrderElement(selector: string): EventTarget {\n if (this.platformId !== 'browser') {\n return this.document;\n }\n switch (selector) {\n case 'window':\n return window;\n case 'document':\n return document;\n case 'body':\n return document.body;\n default:\n throw new Error(`Element selector [${selector}] not supported.`);\n }\n }\n\n /** @hidden */\n private _setupEventBinding(target: EventTarget, handler: EventHandlerFunction): HandlerRemoveFunction {\n const addProxyFunction = (): void => {\n target.addEventListener('click', proxyFunction, false);\n target.addEventListener('keydown', proxyFunction, false);\n };\n\n const removeProxyFunction = (): void => {\n target.removeEventListener('click', proxyFunction, false);\n target.removeEventListener('keydown', proxyFunction, false);\n };\n\n const proxyFunction = (event: Event | MouseEvent | KeyboardEvent): void => {\n if (event instanceof KeyboardEvent) {\n if (event.keyCode !== ENTER && event.keyCode !== SPACE) {\n return;\n }\n }\n handler(event);\n };\n\n addProxyFunction();\n\n return removeProxyFunction;\n }\n}\n","import { Inject, InjectionToken, isDevMode, ModuleWithProviders, NgModule } from '@angular/core';\nimport { EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';\nimport { ClickedEventPlugin } from './clicked-event.plugin';\nimport { ClickedDirective } from './clicked.directive';\n\nconst ClickedBehaviorModuleForRootLoadedOnce = new InjectionToken<boolean>(\n 'Checking Module providers had been loaded',\n { factory: () => false }\n);\n\n@NgModule({\n declarations: [ClickedDirective],\n exports: [ClickedDirective]\n})\nexport class ClickedBehaviorModule {\n /** @hidden */\n constructor(@Inject(ClickedBehaviorModuleForRootLoadedOnce) clickedBehaviorModuleForRootLoadedOnce: boolean) {\n if (!clickedBehaviorModuleForRootLoadedOnce && isDevMode()) {\n console.warn(\n 'ClickedBehaviorModule.forRoot() was not called from RootModule, you will not be able to use (fdkClicked) events'\n );\n }\n }\n\n /** @hidden */\n static forRoot(): ModuleWithProviders<ClickedBehaviorModule> {\n return {\n ngModule: ClickedBehaviorModule,\n providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: ClickedEventPlugin,\n multi: true\n },\n {\n provide: ClickedBehaviorModuleForRootLoadedOnce,\n useValue: true\n }\n ]\n };\n }\n}\n","import { ElementRef, Inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';\nimport { ClickedEventPlugin } from './clicked-event.plugin';\nimport { ClickedDirective } from './clicked.directive';\n\n@Injectable()\nexport class FdkClickedProvider extends Subject<MouseEvent | KeyboardEvent> implements OnDestroy {\n /** @hidden */\n private _preventDefault = true;\n /** @hidden */\n private _listeners!: Array<() => void>;\n /** @hidden */\n private readonly _fdkClickedEventManagerPluginLoaded: boolean;\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<Element>,\n private _renderer: Renderer2,\n @Inject(EVENT_MANAGER_PLUGINS) private eventManagerPlugins: any[]\n ) {\n super();\n this._fdkClickedEventManagerPluginLoaded = eventManagerPlugins.some((em) => em instanceof ClickedEventPlugin);\n this._initialize();\n }\n\n /** @hidden */\n setPreventDefault(val: boolean): void {\n this._preventDefault = val;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._listeners.forEach((d) => d());\n this.complete();\n }\n\n /** @hidden */\n private _initialize(): void {\n const eventsList: string[] = this._fdkClickedEventManagerPluginLoaded\n ? [ClickedDirective.eventName]\n : ['click', 'keydown.enter', 'keydown.space'];\n this._listeners = eventsList.map((eventName) =>\n this._renderer.listen(this._elementRef.nativeElement, eventName, (event: MouseEvent | KeyboardEvent) => {\n if (this._preventDefault) {\n event.preventDefault();\n }\n this.next(event);\n })\n );\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, filter, ReplaySubject } from 'rxjs';\nimport { DisabledBehavior } from './disabled-behavior.interface';\nimport { setDisabledState } from './set-disabled-state';\nimport { FDK_DISABLED_DIRECTIVE } from './fdk-disabled.token';\nimport { DisabledViewModifier } from './disabled-view-modifier.interface';\nimport { FdkClickedProvider } from '../clicked';\nimport { DestroyedService } from '../../services/destroyed.service';\nimport {\n DeprecatedSelector,\n FD_DEPRECATED_DIRECTIVE_SELECTOR,\n getDeprecatedModel\n} from '../../deprecated-selector.class';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fnDisabled]',\n standalone: true,\n providers: [\n {\n provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,\n useValue: getDeprecatedModel('[fdkDisabled]', '[fnDisabled]')\n }\n ]\n})\nexport class DeprecatedDisabledBehaviorDirective extends DeprecatedSelector {}\n\n@Directive({\n selector: '[fdkDisabled]',\n standalone: true,\n providers: [\n {\n provide: FDK_DISABLED_DIRECTIVE,\n useExisting: DisabledBehaviorDirective\n },\n DestroyedService,\n FdkClickedProvider\n ]\n})\nexport class DisabledBehaviorDirective\n extends ReplaySubject<boolean>\n implements OnDestroy, AfterViewInit, DisabledBehavior, DisabledViewModifier\n{\n /** @hidden */\n @Input()\n set fdkDisabled(value: BooleanInput) {\n const val = coerceBooleanProperty(value);\n this._clicked.setPreventDefault(val);\n this._fdkDisableInput$.next(val);\n }\n\n get fdkDisabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Whether to add `disabledClass` class to the element.\n */\n @Input()\n addDisabledClass = true;\n\n /**\n * Disabled css class to apply to the element.\n */\n @Input()\n disabledClass = 'is-disabled';\n\n /** @hidden */\n private _disabled = false;\n /** @hidden */\n private readonly _fdkDisableInput$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _destroy$: DestroyedService,\n private _clicked: FdkClickedProvider\n ) {\n super(1);\n }\n\n /** @hidden */\n setDisabledState = (isDisabled: boolean): void => {\n setDisabledState(this._elementRef, isDisabled, this.disabledClass, this.addDisabledClass);\n };\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._fdkDisableInput$\n .pipe(\n filter((isDisabled) => isDisabled !== this._disabled),\n tap((isDisabled) => {\n this.setDisabledState(isDisabled);\n this._disabled = isDisabled;\n this.next(isDisabled);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DisabledBehaviorDirective, DeprecatedDisabledBehaviorDirective } from './disabled-behavior.directive';\n\n@NgModule({\n imports: [DisabledBehaviorDirective, DeprecatedDisabledBehaviorDirective],\n exports: [DisabledBehaviorDirective, DeprecatedDisabledBehaviorDirective]\n})\nexport class DisabledBehaviorModule {}\n","import { ElementRef } from '@angular/core';\nimport { DisabledViewModifier } from './disabled-view-modifier.interface';\nimport { setDisabledState } from './set-disabled-state';\n\nexport class DefaultDisabledViewModifier implements DisabledViewModifier {\n /** @hidden */\n constructor(private elementRef: ElementRef<Element>) {}\n\n /** @hidden */\n setDisabledState = (isDisabled: boolean): void => {\n setDisabledState(this.elementRef, isDisabled, 'is-disabled', true);\n };\n}\n","import { ElementRef, Inject, Injectable, NgZone, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, Observable, ReplaySubject, Subject } from 'rxjs';\nimport { distinctUntilChanged, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { FDK_DISABLED_DIRECTIVE } from './fdk-disabled.token';\nimport { DisabledObserver } from './disabled.observer';\nimport { DisabledBehavior } from './disabled-behavior.interface';\nimport { DisabledViewModifier } from './disabled-view-modifier.interface';\nimport { DefaultDisabledViewModifier } from './default-disabled-view-modifier';\n\n@Injectable()\nexport class FdkDisabledProvider extends ReplaySubject<boolean> implements DisabledBehavior, OnDestroy {\n /** @Hidden */\n fdkDisabled = false;\n /** @Hidden */\n private readonly _destroy$ = new Subject<void>();\n /** @hidden */\n private readonly _viewModifiers$: BehaviorSubject<DisabledViewModifier[]> = new BehaviorSubject<\n DisabledViewModifier[]\n >(this._getInitialViewModifiers());\n /** @hidden */\n private _disabledChange$: Observable<boolean> = this._getDisabledChange$();\n\n /** @hidden */\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef<HTMLElement>,\n private disabledObserver: DisabledObserver,\n @Optional() @Self() @Inject(FDK_DISABLED_DIRECTIVE) private selfDisabled$?: DisabledBehavior,\n @Optional() @SkipSelf() @Inject(FDK_DISABLED_DIRECTIVE) private parentDisabled$?: DisabledBehavior\n ) {\n super(1);\n combineLatest([this._disabledChange$, this._viewModifiers$])\n .pipe(\n tap(([isDisabled]) => this.setDisabledState(isDisabled)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n this._disabledChange$\n .pipe(\n tap((isDisabled) => (this.fdkDisabled = isDisabled)),\n tap((isDisabled) => this.next(isDisabled)),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n /** @hidden */\n addViewModifier(modifier: DisabledViewModifier): void {\n const viewModifiers = [...new Set([...this._viewModifiers$.value, modifier]).values()];\n this._viewModifiers$.next(viewModifiers);\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n firstValueFrom(this.ngZone.onStable).then(() => {\n this._viewModifiers$.value.forEach((viewModifier) => viewModifier.setDisabledState(isDisabled));\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n this._destroy$.next();\n this.disabledObserver.unobserve(this.elementRef);\n }\n\n /** @hidden */\n private _getDisabledChange$(): Observable<boolean> {\n let selfDisabled = false;\n let parentDisabled = false;\n\n if (this.parentDisabled$) {\n this.parentDisabled$\n .pipe(\n startWith(this.parentDisabled$.fdkDisabled),\n tap((d) => (parentDisabled = d)),\n distinctUntilChanged(),\n tap(() => {\n if (parentDisabled) {\n this.setDisabledState(true);\n }\n if (!selfDisabled && !parentDisabled) {\n this.setDisabledState(false);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n if (this.selfDisabled$) {\n this.selfDisabled$\n .pipe(\n startWith(this.selfDisabled$.fdkDisabled),\n tap((d) => (selfDisabled = d)),\n distinctUntilChanged(),\n tap((isDisabled) => {\n if (!parentDisabled) {\n this.setDisabledState(isDisabled);\n }\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n return this.disabledObserver.observe(this.elementRef).pipe(distinctUntilChanged());\n }\n\n /** @hidden */\n private _getInitialViewModifiers(): DisabledViewModifier[] {\n return !this.selfDisabled$ ? [new DefaultDisabledViewModifier(this.elementRef)] : [this.selfDisabled$];\n }\n}\n","import { ChangeDetectorRef, Injectable, OnDestroy, QueryList } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { combineLatest, merge, Observable, ReplaySubject, Subject, switchMap } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith, takeUntil, tap } from 'rxjs/operators';\nimport equal from 'fast-deep-equal';\nimport { SelectableItemToken } from './selectable-item.token';\nimport { SelectableListValueType, SelectComponentRootToken } from './select-component-root.token';\n\n@Injectable()\nexport class SelectionService<ElementType extends Element, ValueType = ElementType> implements OnDestroy {\n /** @hidden */\n value$: Observable<SelectableListValueType<ValueType>>;\n\n /** @hidden */\n private _items$!: Observable<SelectableItemToken<ElementType, ValueType>[]>;\n /** @hidden */\n private _value$ = new ReplaySubject<SelectableListValueType<ValueType>>(1);\n /** @hidden */\n private _normalizedValue$: Observable<ValueType[]>;\n /** @hidden */\n private _rootComponent!: SelectComponentRootToken<ElementType>;\n /** @hidden */\n private _destroy$ = new Subject<void>();\n /** @hidden */\n private _clear$ = new Subject<void>();\n /** @hidden */\n private _value: ValueType[] = [];\n\n /** @hidden */\n constructor(private _cd: ChangeDetectorRef) {\n this._normalizedValue$ = this._value$.pipe(\n distinctUntilChanged(equal),\n map((v) => coerceArray<ValueType>(v)),\n map((value) => (this._isMultipleMode ? value : [value[0]])),\n map((coerced: ValueType[]) => coerced.filter(Boolean))\n );\n this._normalizedValue$.pipe(takeUntil(this._destroy$)).subscribe((val) => (this._value = val));\n this.value$ = this._normalizedValue$.pipe(\n map((v) => this._getProperValues(v as SelectableListValueType<ElementType>)),\n shareReplay(1)\n );\n }\n\n /**\n * Register main select component, which holds config\n * */\n registerRootComponent(rootComponent: SelectComponentRootToken<ElementType>): void {\n this._rootComponent = rootComponent;\n }\n\n /**\n * Clear listeners\n */\n clear(): void {\n this._clear$.next();\n }\n\n /**\n * Initialize watcher for selection changes and user interactions\n * */\n initialize(queryList: QueryList<SelectableItemToken<ElementType, ValueType>>): void {\n this._items$ = queryList.changes.pipe(\n startWith(queryList),\n map((items: QueryList<SelectableItemToken<ElementType, ValueType>>) => items.toArray()),\n shareReplay(1)\n );\n this.listenToItemInteractions();\n }\n\n /**\n * Sets Value, on which service looks at and updates UI accordingly\n * */\n setValue(v: SelectableListValueType<ElementType>): void {\n this._value$.next(v);\n }\n\n /** @hidden */\n getValue(): SelectableListValueType<ElementType> {\n return this._getProperValues(this._value as SelectableListValueType<ElementType>);\n }\n\n /**\n * Start listening for item interactions. Will destroy() first.\n * Will silently continue if service was not initialized first.\n * */\n listenToItemInteractions(): void {\n this.clear();\n const unsubscribe$ = merge(this._destroy$, this._clear$);\n if (this._items$) {\n this._items$\n .pipe(\n map((items) => items.filter((itm) => itm.fdkSelectableItem !== false)),\n switchMap((items: SelectableItemToken<ElementType, ValueType>[]) => {\n const clickedEvents$ = items.map((item) => item.clicked.pipe(map(() => item)));\n return merge(...clickedEvents$);\n }),\n tap((clickedItem) => this._itemClicked(clickedItem)),\n takeUntil(unsubscribe$)\n )\n .subscribe();\n combineLatest([this._normalizedValue$, this._items$])\n .pipe(\n tap(([value, items]) => {\n if (\n value.length === 0 &&\n items.some((itm) => itm.getSelected()) &&\n !this._rootComponent.toggle\n ) {\n const selectedValues = this._getSelectedValues(items);\n this._rootComponent.onChange(selectedValues as SelectableListValueType<ElementType>);\n return this._value$.next(selectedValues as SelectableListValueType<ElementType>);\n }\n items.forEach((item) => {\n item.setSelected(value.includes(item.value));\n });\n this._cd.detectChanges();\n }),\n takeUntil(unsubscribe$)\n )\n .subscribe();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n /** @hidden */\n selectItem(item: SelectableItemToken<ElementType, ValueType>): void {\n if (item.fdkSelectableItem !== false) {\n const val: ValueType[] = [item.value, ...this._value];\n const properValues = this._getProperValues(val as SelectableListValueType<ElementType>);\n this._value$.next(properValues);\n this._rootComponent.onChange(properValues);\n }\n }\n\n /** @hidden */\n deselectItem(item: SelectableItemToken<ElementType, ValueType>): void {\n const canBeDeselected = this._rootComponent.toggle || (this._isMultipleMode && this._value.length > 1);\n if (canBeDeselected) {\n const val: SelectableListValueType<ElementType> = this._value.filter(\n (v) => v !== item.value\n ) as SelectableListValueType<ElementType>;\n const properValues = this._getProperValues(val);\n this._value$.next(properValues);\n this._rootComponent.onChange(properValues);\n }\n }\n\n /** @hidden */\n private get _isMultipleMode(): boolean {\n return this._rootComponent.multiple === true;\n }\n\n /** @hidden */\n private _itemClicked(item: SelectableItemToken<ElementType, ValueType>): void {\n const wasSelected = this._value.includes(item.value);\n if (wasSelected) {\n this.deselectItem(item);\n } else {\n this.selectItem(item);\n }\n }\n\n /** @hidden */\n private _getSelectedValues(items: SelectableItemToken<ElementType, ValueType>[]): ElementType | ElementType[] {\n const selectedValues = items.filter((itm) => itm.getSelected()).map((itm) => itm.value);\n return this._getProperValues(selectedValues as SelectableListValueType<ElementType>);\n }\n\n /** @hidden */\n private _getProperValues(values: SelectableListValueType<ElementType>): SelectableListValueType<ElementType> {\n return this._isMultipleMode ? values : values[0];\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Observable } from 'rxjs';\n\nexport type SelectableListValueType<T> = T extends any[] ? Array<any> : any;\n\nexport abstract class SelectComponentRootToken<T = any> {\n abstract selected?: SelectableListValueType<T>;\n abstract selectedChange: Observable<SelectableListValueType<T>>;\n abstract multiple?: BooleanInput;\n abstract toggle?: BooleanInput;\n abstract onChange: (value: SelectableListValueType<T>) => void;\n}\n","import { ElementRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HasElementRef } from '../../interfaces/has-element-ref.interface';\n\nexport abstract class SelectableItemToken<ElementType extends Element = HTMLElement, TValue = ElementType>\n implements HasElementRef<ElementType>\n{\n abstract value: TValue;\n abstract fdkSelectableItem?: boolean;\n\n abstract elementRef(): ElementRef<ElementType>;\n\n abstract setSelected(isSelected: boolean): void;\n\n abstract getSelected(): boolean;\n\n abstract clicked: Observable<MouseEvent | KeyboardEvent>;\n}\n","/**\n * Function, which generates decorator. Passed mutator will be called during value set\n */\nexport function alternateSetter(mutator: (value: any, self: Record<string | symbol, any>) => any): PropertyDecorator {\n return function (targetObj: Record<string | symbol, any>, propertyKey: string | symbol) {\n const _key = Symbol();\n targetObj[_key] = targetObj[propertyKey];\n Object.defineProperty(targetObj, propertyKey, {\n get() {\n return this[_key];\n },\n set(v: any) {\n this[_key] = mutator.call(this, v, this);\n }\n });\n };\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { alternateSetter } from './setter-alternator';\n\n/**\n * Decorator for coercing passed value to boolean, using @angular/cdk coerceBooleanProperty\n */\nexport const coerceBoolean = alternateSetter(coerceBooleanProperty);\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, Input, Output, QueryList } from '@angular/core';\nimport { SelectionService } from './selection.service';\nimport { SelectableListValueType, SelectComponentRootToken } from './select-component-root.token';\nimport { SelectableItemToken } from './selectable-item.token';\nimport { coerceBoolean } from '../../decorators/coerce-boolean';\n\n@Directive({\n selector: '[fdkSelectableList]',\n exportAs: 'fdkSelectableList',\n standalone: true,\n providers: [\n {\n provide: SelectComponentRootToken,\n useExisting: SelectableListDirective\n },\n SelectionService\n ]\n})\nexport class SelectableListDirective<T extends Element = HTMLElement, V = any>\n implements SelectComponentRootToken<T>, AfterViewInit\n{\n /** @hidden */\n @Output()\n selectedChange = new EventEmitter<SelectableListValueType<T>>();\n\n /** @hidden */\n @Input()\n @coerceBoolean\n toggle: BooleanInput = false;\n\n /** @hidden */\n @Input()\n @coerceBoolean\n multiple: BooleanInput = false;\n\n /** @hidden */\n @Input()\n set selected(value: SelectableListValueType<T>) {\n this._selectionService.setValue(value);\n }\n\n /** @hidden */\n @ContentChildren(SelectableItemToken) selectableItems!: QueryList<SelectableItemToken<T, V>>;\n\n /** @hidden */\n constructor(private _selectionService: SelectionService<T, V>) {\n this._selectionService.registerRootComponent(this);\n }\n\n /** @hidden */\n select(item: SelectableItemToken<T, V>): void {\n this._selectionService.selectItem(item);\n }\n\n /** @hidden */\n deselect(item: SelectableItemToken<T, V>): void {\n this._selectionService.deselectItem(item);\n }\n\n /** @hidden */\n toggleSelect(item: SelectableItemToken<T, V>): void {\n if (item.getSelected()) {\n this.deselect(item);\n } else {\n this.select(item);\n }\n }\n\n /** @hidden */\n onChange(value: SelectableListValueType<T>): void {\n this.selectedChange.emit(value);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._selectionService.initialize(this.selectableItems);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDK_SELECTABLE_ITEM_PROVIDER = new InjectionToken(\n 'Token for providing custom behaviors to the SelectableListItem'\n);\n","import { ChangeDetectorRef, Directive, ElementRef, Inject, Input, Optional, Output } from '@angular/core';\nimport { merge, Observable } from 'rxjs';\nimport { SelectableItemToken } from './selectable-item.token';\nimport { FDK_SELECTABLE_ITEM_PROVIDER } from './selectable-list.tokens';\nimport { FdkDisabledProvider } from '../disabled';\nimport { FdkReadonlyProvider } from '../readonly';\nimport { SelectionService } from './selection.service';\nimport { FdkClickedProvider } from '../clicked';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\n@Directive({\n selector: '[fdkSelectableItem]',\n exportAs: 'fdkSelectableItem',\n standalone: true,\n providers: [\n {\n provide: SelectableItemToken,\n useExisting: SelectableItemDirective\n },\n FdkReadonlyProvider,\n FdkDisabledProvider,\n FdkClickedProvider\n ]\n})\nexport class SelectableItemDirective<ElementType extends Element = HTMLElement, ValueType = any>\n implements SelectableItemToken<ElementType, ValueType>\n{\n /** @hidden */\n @Input()\n set value(val: ValueType) {\n this._value = val;\n }\n get value(): ValueType {\n if (this.provider && this.provider.value) {\n return this.provider.value;\n }\n return this._value;\n }\n\n /** @hidden */\n @Input()\n set fdkSelectableItem(value: BooleanInput) {\n const isSelectable = coerceBooleanProperty(value);\n if (isSelectable !== this._selectable) {\n this._selectable = isSelectable;\n }\n }\n\n get fdkSelectableItem(): boolean {\n let selectable = this._selectable;\n if (typeof this.provider?.fdkSelectableItem !== 'undefined') {\n selectable = this.provider.fdkSelectableItem;\n }\n return (\n selectable &&\n (!this.disabled$ || !this.disabled$?.fdkDisabled) &&\n (!this.readonly$ || !this.readonly$?.fdkReadonly)\n );\n }\n\n /** @hidden */\n @Output()\n clicked: Observable<MouseEvent | KeyboardEvent>;\n\n /** @hidden */\n private _value!: ValueType;\n /** @hidden */\n private _selected = false;\n /** @hidden */\n private _selectable = true;\n\n /** @hidden */\n constructor(\n @Optional()\n @Inject(FDK_SELECTABLE_ITEM_PROVIDER)\n private provider: Partial<SelectableItemToken<ElementType, ValueType>>,\n private disabled$: FdkDisabledProvider,\n private readonly$: FdkReadonlyProvider,\n private selectionService: SelectionService<ElementType, ValueType>,\n private _elementRef: ElementRef<ElementType>,\n private _cd: ChangeDetectorRef,\n _clicked: FdkClickedProvider\n ) {\n this.clicked = this.provider?.clicked || _clicked.asObservable();\n this._listenToDisablingEvents();\n }\n\n /** @hidden */\n getSelected(): boolean {\n if (this.provider?.getSelected) {\n return this.provider.getSelected();\n }\n return this._selected;\n }\n\n /** @hidden */\n setSelected(isSelected: boolean): void {\n if (this.provider?.setSelected) {\n this.provider.setSelected(isSelected);\n } else {\n this._selected = isSelected;\n const htmlElement = this._elementRef.nativeElement;\n const { classList } = htmlElement;\n if (isSelected) {\n classList.add('is-selected');\n } else {\n classList.remove('is-selected');\n }\n htmlElement.setAttribute('aria-selected', `${isSelected}`);\n }\n }\n\n /** @hidden */\n elementRef(): ElementRef<ElementType> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _listenToDisablingEvents(): void {\n const disablingEvents$: Observable<boolean>[] = [];\n if (this.disabled$) {\n disablingEvents$.push(this.disabled$);\n }\n if (this.readonly$) {\n disablingEvents$.push(this.readonly$);\n }\n merge(...disablingEvents$).subscribe(() => this._updateSelectionAndSelectableWatcher());\n }\n\n /** @hidden */\n private _updateSelectionAndSelectableWatcher(): void {\n if (this.disabled$?.fdkDisabled) {\n this.selectionService.deselectItem(this);\n }\n this._updateSelectableWatcher();\n }\n\n /** @hidden */\n private _updateSelectableWatcher(): void {\n this.selectionService.listenToItemInteractions();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SelectableListDirective } from './selectable-list.directive';\nimport { SelectableItemDirective } from './selectable-item.directive';\n\n@NgModule({\n imports: [SelectableListDirective, SelectableItemDirective],\n exports: [SelectableListDirective, SelectableItemDirective]\n})\nexport class SelectableListModule {}\n","import { inject, InjectionToken } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { startWith } from 'rxjs/operators';\n\n/**\n * Injection token for the viewport size observable.\n * Emits the viewport size in pixels, which are outputted by the ViewportRuler\n * from @angular/cdk/overlay.\n */\nexport const ViewportSizeObservable = new InjectionToken<Observable<number>>('ViewportSizeObservable', {\n providedIn: 'root',\n factory: () => {\n const viewportRuler = inject(ViewportRuler);\n return viewportRuler\n .change(50)\n .pipe(map((e) => (e.target as Window).innerWidth))\n .pipe(startWith(window.innerWidth));\n }\n});\n","export const ResponsiveBreakpoints = {\n S: 600,\n M: 1024,\n L: 1440\n} as const;\n\ntype breakpointName = keyof typeof ResponsiveBreakpoints | 'XL';\n\nexport type BreakpointName = Lowercase<breakpointName> | Uppercase<breakpointName>;\n\n/** @hidden */\nexport function getBreakpointName(width: number): breakpointName {\n if (width < ResponsiveBreakpoints.S) {\n return 'S';\n }\n if (width < ResponsiveBreakpoints.M) {\n return 'M';\n }\n if (width < ResponsiveBreakpoints.L) {\n return 'L';\n }\n return 'XL';\n}\n","/* eslint-disable @angular-eslint/no-input-rename */\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n inject,\n Input,\n NgModule,\n OnChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty, coerceElement } from '@angular/cdk/coercion';\nimport { ViewportSizeObservable } from '../../tokens/viewport-size.observable';\nimport { DestroyedService, ResizeObserverService } from '../../services';\nimport { finalize, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\nimport { BreakpointName, getBreakpointName } from './responsive-breakpoints';\n\n/**\n * Directive to show/hide element on specific breakpoint or range of window width.\n * Uses native ngIf directive to show/hide element.\n */\n@Directive({\n selector:\n '[fdkBreakpoint], [fdkBreakpointS], [fdkBreakpointM], [fdkBreakpointL], [fdkBreakpointXL], [fdkBreakpointLt], [fdkBreakpointGt]',\n standalone: true,\n providers: [DestroyedService]\n})\nexport class BreakpointDirective implements OnChanges, AfterViewInit {\n /**\n * Provide list of the breakpoints to show element on.\n * */\n @Input()\n set fdkBreakpoint(value: BreakpointName[]) {\n const providedValues = value.map((v) => v.toLowerCase());\n this.showOnS = providedValues.includes('s');\n this.showOnM = providedValues.includes('m');\n this.showOnL = providedValues.includes('l');\n this.showOnXL = providedValues.includes('xl');\n }\n\n /**\n * Show element on S breakpoint.\n * S - 0 - 599px\n * */\n @Input('fdkBreakpointS')\n set showOnS(value: BooleanInput) {\n this._showOnS = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on M breakpoint.\n * M - 0 - 1023px\n * */\n @Input('fdkBreakpointM')\n set showOnM(value: BooleanInput) {\n this._showOnM = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on L breakpoint.\n * L - 0 - 1439px\n * */\n @Input('fdkBreakpointL')\n set showOnL(value: BooleanInput) {\n this._showOnL = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on XL breakpoint.\n * */\n @Input('fdkBreakpointXL')\n set showOnXL(value: BooleanInput) {\n this._showOnXL = coerceBooleanProperty(value);\n }\n\n /**\n * Show element on breakpoint less than provided value.\n * */\n @Input()\n fdkBreakpointLt: number;\n\n /**\n * Show element on breakpoint greater than provided value.\n * */\n @Input()\n fdkBreakpointGt: number;\n\n /**\n * Observe element width changes.\n */\n @Input('fdkBreakpointObserve')\n set observationSource(value: HTMLElement | ElementRef<HTMLElement>) {\n const element = coerceElement(value);\n this._sizeObservable$.next(\n this._resizeObserverService.observe(value).pipe(\n map(() => element.offsetWidth),\n startWith(element.offsetWidth)\n )\n );\n }\n\n /** @hidden */\n templateViewRef?: EmbeddedViewRef<unknown>;\n\n /** @hidden */\n private _showOnS = false;\n /** @hidden */\n private _showOnM = false;\n /** @hidden */\n private _showOnL = false;\n /** @hidden */\n private _showOnXL = false;\n\n /** @hidden */\n private viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private _destroyed$ = inject(DestroyedService);\n\n /** @hidden */\n private _resizeObserverService = inject(ResizeObserverService);\n\n /** @hidden */\n onChanges$ = new Subject<void>();\n\n /** @hidden */\n _sizeObservable$: BehaviorSubject<Observable<number>> = new BehaviorSubject<Observable<number>>(this.viewportSize$);\n\n /** @hidden */\n constructor(private readonly templateRef: TemplateRef<any>, private readonly viewContainer: ViewContainerRef) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n combineLatest([this._sizeObservable$.pipe(switchMap((obs$) => obs$)), this.onChanges$.pipe(startWith(void 0))])\n .pipe(\n map(([w]) => [w, getBreakpointName(w)] as const),\n map(([width, breakpointName]) => this._shouldShow(width, breakpointName)),\n tap((shouldShow) => {\n if (shouldShow) {\n if (!this.templateViewRef) {\n this.viewContainer.clear();\n this.templateViewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n this.templateViewRef.detectChanges();\n }\n } else {\n this.viewContainer.clear();\n this.templateViewRef = undefined;\n }\n }),\n takeUntil(this._destroyed$),\n finalize(() => {\n this.viewContainer.clear();\n this.templateViewRef = undefined;\n })\n )\n .subscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.onChanges$.next();\n }\n\n /** @hidden */\n private _shouldShow(width: number, currentBreakpoint: BreakpointName): boolean {\n const shouldShowOnBreakpoints = [\n this._showOnS && 'S',\n this._showOnM && 'M',\n this._showOnL && 'L',\n this._showOnXL && 'XL'\n ].filter(Boolean);\n const shouldShow = shouldShowOnBreakpoints.includes(currentBreakpoint);\n if (this.fdkBreakpointLt) {\n return width < this.fdkBreakpointLt;\n }\n if (this.fdkBreakpointGt) {\n return width > this.fdkBreakpointGt;\n }\n return shouldShow;\n }\n}\n\n@NgModule({\n imports: [BreakpointDirective],\n exports: [BreakpointDirective]\n})\nexport class BreakpointModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const DND_ITEM = new InjectionToken('Drag and drop Item');\nexport const DND_LIST = new InjectionToken('Drag and drop List');\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { ElementChord, FdDropEvent, LinkPosition, ElementPosition, DndItem, FdDndDropType } from '../dnd.interfaces';\nimport { DND_ITEM, DND_LIST } from '../tokens';\n\n@Directive({\n selector: '[fdkDndList], [fd-dnd-list]',\n providers: [{ provide: DND_LIST, useExisting: forwardRef(() => DndListDirective) }]\n})\nexport class DndListDirective<T> implements AfterContentInit, OnDestroy {\n /**\n * Defines if the element is allowed to be dragged in 2 dimensions,\n * When true - replace indicator will be displayed vertically\n */\n @Input()\n gridMode = false;\n\n /**\n * Defines drop strategy:\n * * `shift` mode will create line after closest drop element.\n * * `group` mode will create replace indicator on whole closest drop element.\n * * `auto` mode will create line after closest drop element,\n * if dragged element coordinates are shifted for 30% from center of the closest drop element.\n * Otherwise, it will create replace indicator on whole closest drop element.\n *\n * `shift` mode is the default.\n */\n @Input()\n dropMode: FdDndDropType = 'shift';\n\n /**\n * Threshold of dragged item over another item to define which type of `dropMode` should be used.\n */\n @Input()\n threshold = 0.3;\n\n /**\n * @deprecated\n * Use `dropMode` property for better configuration.\n *\n * @description\n * When enabled, replace indicator will appear on whole element, instead of horizontal/vertical line before/after element.\n */\n @Input()\n set replaceMode(value: boolean) {\n this._replaceMode = value;\n this.dropMode = value ? 'group' : 'shift';\n this._detectedDropMode = this.dropMode;\n }\n\n get replaceMode(): boolean {\n return this._replaceMode;\n }\n\n /** @hidden */\n private _replaceMode = false;\n\n /** Array of items, that will be sorted */\n @Input()\n items: Array<T>;\n\n /** Defines if drag and drop feature should be enabled for list items */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this._changeDraggableState(draggable);\n }\n\n /** Event that is thrown, when items are reordered */\n @Output()\n readonly itemsChange = new EventEmitter<Array<T>>();\n\n /** Event that is thrown, when the item is dropped */\n @Output()\n readonly itemDropped = new EventEmitter<FdDropEvent<T>>();\n\n /** @hidden */\n @ContentChildren(DND_ITEM)\n dndItems: QueryList<DndItem>;\n\n /** @hidden */\n private _elementsCoordinates: ElementChord[];\n\n /** @hidden */\n private _closestItemIndex: number | null = null;\n\n /** @hidden */\n private _closestItemPosition: 'before' | 'after' | null = null;\n\n /** An RxJS Subject that will kill the current data stream (for unsubscribing) */\n private readonly _refresh$ = new Subject<void>();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private _dndItemReference: DndItem[];\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-dnd-list';\n\n /** @hidden */\n private _detectedDropMode: 'shift' | 'group';\n\n /** @hidden */\n private _linesRemoved = true;\n\n /** @hidden */\n private _indicatorsRemoved = true;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._changeDraggableState(this._draggable);\n this.dndItems.changes.pipe(takeUntil(this._onDestroy$), startWith(0)).subscribe(() => this._refreshQueryList());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Method called, when the item is being moved by 1 px */\n onMove(mousePosition: ElementPosition, draggedItemIndex: number): void {\n /** Temporary object, to store lowest distance values */\n let closestItemIndex: number | null = null;\n\n const closestItem = this._elementsCoordinates.find((element, index) => {\n /** Check if element can be replaced */\n if (!element.stickToPosition && closestItemIndex !== index) {\n const isMouseOnElement = _isMouseOnElement(element, mousePosition);\n if (isMouseOnElement) {\n closestItemIndex = index;\n\n return true;\n }\n }\n return false;\n });\n\n if (!closestItem) {\n closestItemIndex = null;\n }\n\n /** If the closest element is different from the old one, new one is picked. It prevents from performance issues */\n if (\n (closestItemIndex || closestItemIndex === 0) &&\n (closestItemIndex !== this._closestItemIndex || this.dropMode === 'auto')\n ) {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n this._closestItemIndex = closestItemIndex;\n this._closestItemPosition = this._elementsCoordinates[closestItemIndex].position;\n // If closest item index is same as dragged item, just remove indicators\n if (closestItemIndex === draggedItemIndex) {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n return;\n }\n /** Generating line, that shows where the element will be placed, on drop */\n if (this.dropMode === 'group') {\n this._createReplaceIndicator(this._closestItemIndex);\n } else if (this.dropMode === 'shift') {\n this._createLine(this._closestItemIndex, this._closestItemPosition);\n } else {\n this._selectDropModeIndicator(draggedItemIndex, closestItem, closestItemIndex);\n }\n }\n }\n\n /** Method called, when element is started to be dragged */\n dragStart(index: number): void {\n const draggedItemElement = this._dndItemReference[index].elementRef;\n /** Counting all the element's chords */\n this._elementsCoordinates = this._dndItemReference.map((item: DndItem) =>\n item.getElementCoordinates(this._isBefore(draggedItemElement, item.elementRef), this.gridMode)\n );\n }\n\n /** Method called, when element is released */\n dragEnd(draggedItemIndex: number): void {\n const items = this.items.slice();\n const replacedItemIndex = this._closestItemIndex;\n const draggedItem = items[draggedItemIndex];\n\n if (replacedItemIndex || replacedItemIndex === 0) {\n if (draggedItemIndex !== replacedItemIndex) {\n if (draggedItemIndex < replacedItemIndex) {\n for (let i = draggedItemIndex; i < replacedItemIndex; i++) {\n items[i] = items[i + 1];\n }\n } else {\n for (let i = draggedItemIndex; i > replacedItemIndex; i--) {\n items[i] = items[i - 1];\n }\n }\n\n /** Replacing items */\n items[replacedItemIndex] = draggedItem;\n\n this.itemsChange.emit(items);\n }\n\n this.itemDropped.emit({\n replacedItemIndex,\n draggedItemIndex,\n items,\n insertAt: this._closestItemPosition,\n mode: this.dropMode !== 'auto' ? this.dropMode : this._detectedDropMode\n });\n\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n\n /** Reset */\n this._elementsCoordinates = [];\n this._closestItemIndex = null;\n this._closestItemPosition = null;\n }\n }\n\n /** @hidden */\n private _selectDropModeIndicator(\n draggedItemIndex: number,\n closestItem: ElementChord | undefined,\n closestItemIndex: number\n ): void {\n if (!closestItem || !this._dndItemReference[draggedItemIndex]) {\n return;\n }\n\n let newDetectedDropMode: 'shift' | 'group';\n const draggedElmCoords =\n this._dndItemReference[draggedItemIndex].elementRef.nativeElement.getBoundingClientRect();\n\n const closestItemBoundaries = getElementBoundaries(closestItem, this.threshold);\n const draggedItemStartCoords = getElementStartCoords(draggedElmCoords, closestItem.position);\n\n if (\n _between(draggedItemStartCoords.x, closestItemBoundaries.x.start, closestItemBoundaries.x.end) &&\n _between(draggedItemStartCoords.y, closestItemBoundaries.y.start, closestItemBoundaries.y.end)\n ) {\n newDetectedDropMode = 'group';\n } else {\n newDetectedDropMode = 'shift';\n }\n\n if (newDetectedDropMode === this._detectedDropMode && (!this._linesRemoved || !this._indicatorsRemoved)) {\n return;\n }\n\n this._detectedDropMode = newDetectedDropMode;\n\n if (this._detectedDropMode === 'shift') {\n this._createLine(closestItemIndex, this._elementsCoordinates[closestItemIndex].position);\n } else {\n this._createReplaceIndicator(closestItemIndex);\n }\n }\n\n /** @hidden */\n private _removeAllLines(): void {\n this._linesRemoved = true;\n this.dndItems.forEach((item) => item.removeLine());\n }\n\n /** @hidden */\n private _removeAllReplaceIndicators(): void {\n this._indicatorsRemoved = true;\n this.dndItems.forEach((item) => item.removeReplaceIndicator());\n }\n\n /** @hidden */\n private _createLine(closestItemIndex: number, linkPosition: LinkPosition): void {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n this._linesRemoved = false;\n this._dndItemReference[closestItemIndex].createLine(linkPosition, this.gridMode);\n }\n\n /** @hidden */\n private _createReplaceIndicator(closestItemIndex: number): void {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n this._indicatorsRemoved = false;\n this._dndItemReference[closestItemIndex].createReplaceIndicator();\n }\n\n /** @hidden */\n private _refreshQueryList(): void {\n const refresh$ = merge(this._refresh$, this._onDestroy$);\n this._refresh$.next();\n\n this._dndItemReference = this.dndItems.toArray();\n\n this._changeDraggableState(this._draggable);\n\n this.dndItems.forEach((item, index) => {\n item.moved.pipe(takeUntil(refresh$)).subscribe((position: ElementPosition) => this.onMove(position, index));\n item.started.pipe(takeUntil(refresh$)).subscribe(() => this.dragStart(index));\n item.released.pipe(takeUntil(refresh$)).subscribe(() => this.dragEnd(index));\n });\n }\n\n /**\n * @hidden\n * Return information if element is placed before the dragged element\n */\n private _isBefore(draggedElement: ElementRef, targetElement: ElementRef): boolean {\n /** Sometimes the element are not straight in one column, that's why offset is needed */\n const VERTICAL_OFFSET = 20;\n\n /** Distances from the top of screen */\n const draggedElementBound = <DOMRect>draggedElement.nativeElement.getBoundingClientRect();\n const targetElementBound = <DOMRect>targetElement.nativeElement.getBoundingClientRect();\n\n if (draggedElementBound.top - targetElementBound.top > VERTICAL_OFFSET) {\n /** If element is higher than the dragged element, it's for sure before */\n return true;\n } else if (targetElementBound.top - draggedElementBound.top > VERTICAL_OFFSET) {\n /** If element is lower than the dragged element, it's for sure after */\n return false;\n } else {\n /** If elements are in same level, the horizontal position decides if it's before/after */\n return draggedElementBound.left - targetElementBound.left > 0;\n }\n }\n\n /** @hidden */\n private _changeDraggableState(draggable: boolean): void {\n if (this.dndItems) {\n this.dndItems.forEach((item) => {\n item.listDraggable = draggable;\n item.changeCDKDragState();\n });\n }\n }\n}\n\nfunction _isMouseOnElement(element: ElementChord, mousePosition: ElementPosition): boolean {\n const startX = element.x;\n const endX = element.x + element.width;\n\n const startY = element.y;\n const endY = element.y + element.height;\n\n return _between(mousePosition.x, startX, endX) && _between(mousePosition.y, startY, endY);\n}\n\nfunction _between(x: number, min: number, max: number): boolean {\n return x >= min && x <= max;\n}\n\ninterface ElementBoundaries {\n x: {\n start: number;\n end: number;\n };\n y: {\n start: number;\n end: number;\n };\n}\n\nfunction getElementStartCoords(rect: DOMRect, position: ElementChord['position']): { x: number; y: number } {\n return {\n x: position === 'after' ? rect.x + rect.width : rect.x,\n y: position === 'after' ? rect.y + rect.height : rect.y\n };\n}\n\nfunction getElementBoundaries(coordinates: ElementChord, threshold: number): ElementBoundaries {\n const widthOffset = coordinates.width * (coordinates.position === 'after' ? 1 : -1);\n const heightOffset = coordinates.height * (coordinates.position === 'after' ? 1 : -1);\n const xStart = coordinates.position === 'after' ? coordinates.x : coordinates.x + coordinates.width;\n const xEnd = xStart + widthOffset + (widthOffset / 2) * threshold;\n const yStart = coordinates.position === 'after' ? coordinates.y : coordinates.y + coordinates.height;\n const yEnd = yStart + heightOffset + (heightOffset / 2) * threshold;\n return {\n x: {\n start: xStart > xEnd ? xEnd : xStart,\n end: xStart > xEnd ? xStart : xEnd\n },\n y: {\n start: yStart > yEnd ? yEnd : yStart,\n end: yStart > yEnd ? yStart : yEnd\n }\n };\n}\n","import {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DndItem, ElementChord, ElementPosition, LinkPosition } from '../dnd.interfaces';\nimport { Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { DND_ITEM } from '../tokens';\n\n@Directive({\n selector: '[fdkDndItem], [fd-dnd-item]',\n providers: [DragDrop, { provide: DND_ITEM, useExisting: forwardRef(() => DndItemDirective) }]\n})\nexport class DndItemDirective implements DndItem, AfterContentInit, OnDestroy {\n /**\n * Whether to apply \"fd-dnd-item\" class.\n * @default true\n */\n @Input()\n @HostBinding('class.fd-dnd-item')\n applyDragItemClass = true;\n\n /** Container selector */\n @Input()\n containerSelector?: string;\n\n /** Event thrown when the element is moved by 1px */\n @Output()\n readonly moved = new EventEmitter<ElementPosition>();\n\n /** Event thrown when the element is released */\n @Output()\n readonly released = new EventEmitter<void>();\n\n /** Event thrown when the element is started to be dragged */\n @Output()\n readonly started = new EventEmitter<void>();\n\n /**\n * Defines if the item is prevented from being moved by other elements.\n * So nothing can be placed just before and just after it\n */\n @Input()\n stickInPlace = false;\n\n /** Defines if element is draggable */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this.changeCDKDragState();\n }\n\n /** Class added to element, when it's dragged. */\n @Input()\n classWhenElementDragged = 'fd-dnd-on-drag';\n\n /** Defines if every element in list is draggable */\n listDraggable = true;\n\n /** @hidden\n * Drag reference, object created from DND CDK Service\n */\n private _dragRef: DragRef;\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _placeholderElement: HTMLElement | null;\n\n /** @hidden */\n private _lineElement: HTMLElement | null;\n\n /** @hidden */\n private _replaceIndicator: HTMLElement | null;\n\n /** @hidden */\n constructor(public elementRef: ElementRef, private _dragDrop: DragDrop) {}\n\n /** @hidden */\n getElementCoordinates(isBefore: boolean): ElementChord {\n /** Takes distance from the beginning of window page */\n const rect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n const position: LinkPosition = isBefore ? 'before' : 'after';\n\n /** Vertically distance is counted by distance from top of the side + half of the element height */\n return {\n x: rect.left,\n position,\n y: rect.top,\n stickToPosition: this.stickInPlace,\n width: rect.width,\n height: rect.height\n };\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setCDKDrag();\n this._listenElementEvents();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._dragRef.dispose();\n }\n\n /** @hidden */\n onCdkMove(position: ElementPosition): void {\n this.moved.emit(position);\n }\n\n /** @hidden */\n onCdkDragReleased(): void {\n /** Remove class which is added, when element is dragged */\n this.elementRef.nativeElement.classList.remove(this.classWhenElementDragged);\n this.released.emit();\n\n /** Resets the position of element. */\n this._dragRef.reset();\n\n /** Removes placeholder element */\n this.removePlaceholder();\n }\n\n /** @hidden */\n onCdkDragStart(): void {\n /** Adds class */\n this.elementRef.nativeElement.classList.add(this.classWhenElementDragged);\n\n if (!this._placeholderElement) {\n this.createPlaceholder();\n }\n this.started.emit();\n }\n\n /** @hidden */\n removePlaceholder(): void {\n if (this._placeholderElement && this._placeholderElement.parentNode) {\n // IE11 workaround\n this._placeholderElement.parentNode.removeChild(this._placeholderElement);\n this._placeholderElement = null;\n }\n }\n\n /** @hidden */\n removeLine(): void {\n if (this._lineElement && this._lineElement.parentNode) {\n // IE11 workaround\n this._lineElement.parentNode.removeChild(this._lineElement);\n this._lineElement = null;\n }\n }\n\n /** @hidden */\n removeReplaceIndicator(): void {\n if (this._replaceIndicator && this._replaceIndicator.parentNode) {\n // IE11 workaround\n this._replaceIndicator.parentNode.removeChild(this._replaceIndicator);\n this._replaceIndicator = null;\n }\n }\n\n /** @hidden */\n createReplaceIndicator(): void {\n this._replaceIndicator = document.createElement('DIV');\n this._replaceIndicator.classList.add('fd-replace-indicator');\n\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._replaceIndicator);\n }\n\n /** @hidden */\n createLine(position: LinkPosition, gridMode: boolean): void {\n /** Creating of line element */\n this._lineElement = document.createElement('div');\n this._lineElement.classList.add('drop-area__line');\n\n if (gridMode) {\n this._lineElement.classList.add('drop-area__line--vertical');\n } else {\n this._lineElement.classList.add('drop-area__line--horizontal');\n }\n if (position === 'after') {\n this._lineElement.classList.add('after');\n }\n if (position === 'before') {\n this._lineElement.classList.add('before');\n }\n\n /** Putting element to the container */\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._lineElement);\n }\n\n /** @hidden */\n changeCDKDragState(): void {\n if (this._dragRef) {\n this._dragRef.disabled = !(this._draggable && this.listDraggable);\n }\n }\n\n /** @hidden */\n private createPlaceholder(): void {\n const placeholder = this.elementRef.nativeElement.cloneNode(true);\n /** Cloning container element */\n this._placeholderElement = placeholder;\n\n placeholder.classList.add('fd-dnd-placeholder');\n this._setPlaceholderStyles();\n\n /** Including element to the container\n * IE11 equivalent to `this.element.nativeElement.after(clone);`\n */\n this._placeAfter(this.elementRef.nativeElement, placeholder);\n }\n\n /** @hidden */\n private _setPlaceholderStyles(): void {\n const offset = this._getOffsetToParent(this.elementRef.nativeElement);\n\n if (!offset || !this._placeholderElement) {\n return;\n }\n\n this._placeholderElement.style.top = offset.y + 'px';\n this._placeholderElement.style.left = offset.x + 'px';\n this._placeholderElement.style.position = 'absolute';\n this._placeholderElement.style.zIndex = '0';\n this._placeholderElement.style.opacity = '0.3';\n\n this._placeholderElement.style.width = this.elementRef.nativeElement.offsetWidth + 'px';\n this._placeholderElement.style.height = this.elementRef.nativeElement.offsetHeight + 'px';\n }\n\n /** @hidden */\n private _getOffsetToParent(element: Element): { x: number; y: number } | undefined {\n const parentElement = element.parentElement;\n if (!parentElement) {\n return;\n }\n\n const parentTop = parentElement.getBoundingClientRect().top;\n const parentLeft = parentElement.getBoundingClientRect().left;\n\n return {\n x: Math.abs(element.getBoundingClientRect().left - parentLeft),\n y: Math.abs(element.getBoundingClientRect().top - parentTop)\n };\n }\n\n /** @hidden */\n private _setCDKDrag(): void {\n this._dragRef = this._dragDrop.createDrag(this.elementRef);\n this._dragRef.disabled = !this._draggable;\n this._subscriptions.add(this._dragRef.moved.subscribe((event) => this.onCdkMove(event.pointerPosition)));\n this._subscriptions.add(this._dragRef.released.subscribe(() => this.onCdkDragReleased()));\n this._subscriptions.add(this._dragRef.started.subscribe(() => this.onCdkDragStart()));\n }\n\n /** IE11 equivalent of Node.after() Method */\n private _placeAfter(element: Element, cloneNode: Node): void {\n const docFrag = document.createDocumentFragment();\n docFrag.appendChild(cloneNode);\n element.parentNode?.insertBefore(docFrag, element.nextSibling);\n }\n\n /** @hidden */\n private _listenElementEvents(): void {\n this._subscriptions.add(\n this.released\n .pipe(\n // postpone blur\n delay(0)\n )\n .subscribe(() => {\n if (this.containerSelector) {\n this.elementRef.nativeElement.children[0].blur();\n }\n this.elementRef.nativeElement.blur();\n })\n );\n }\n}\n","import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ChangeDetectorRef, Directive, Input, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KeyUtil } from '../../functions';\nimport { RtlService } from '../../services/rtl.service';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardItem.\n */\n@Directive({ selector: '[fdkDndKeyboardGroup], [fdDndKeyboardGroup]' })\nexport class DndKeyboardGroupDirective {\n /** Group of items */\n @Input()\n groups: any[][];\n\n /** Whether to disable drag & drop */\n @Input()\n disableKeyboardDragDrop = false;\n\n /** Used to apply indexes when moving between groups */\n @Input()\n orientation: 'horizontal' | 'vertical' = 'vertical';\n\n /** @hidden */\n _onDndItemFocus$ = new Subject<[number, number]>();\n\n /** Custom function to call when moving item inside the group */\n @Input()\n customMoveFn = (group: any[], fromIndex: number, toIndex: number): void =>\n moveItemInArray(group, fromIndex, toIndex);\n\n /** Custom function to call when moving item between groups */\n @Input()\n customTransferFn = (group: any[], nextGroup: any[], fromIndex: number, toIndex: number): void =>\n transferArrayItem(group, nextGroup, fromIndex, toIndex);\n\n /** @hidden */\n constructor(private readonly _cdr: ChangeDetectorRef, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Process drag & drop */\n processDragDrop(event: KeyboardEvent, itemIndex: number, groupIndex: number): void {\n if (this.disableKeyboardDragDrop || !event.altKey) {\n return;\n }\n\n const isRtl = this._rtlService.rtl.value;\n\n const group = this.groups[groupIndex];\n const indexInNextGroup = this.orientation === 'vertical' ? 0 : itemIndex;\n\n const nextGroupExists = this.groups.length > groupIndex + 1;\n const prevGroupExists = !!groupIndex;\n\n if (KeyUtil.isKeyCode(event, RIGHT_ARROW) && (isRtl ? prevGroupExists : nextGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? -1 : 1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, LEFT_ARROW) && (isRtl ? nextGroupExists : prevGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? 1 : -1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex + 1);\n this._focusDndItem(groupIndex, itemIndex + 1);\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex - 1);\n this._focusDndItem(groupIndex, itemIndex - 1);\n }\n }\n\n /** @hidden Focus after moving elements with keyboard */\n private _focusDndItem(groupIndex: number, itemIndex: number): void {\n this._cdr.detectChanges();\n\n this._onDndItemFocus$.next([groupIndex, itemIndex]);\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { DndKeyboardGroupDirective } from '../dnd-keyboard-group/dnd-keyboard-group.directive';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardGroup.\n * We are using _groups from fdDndKeyboardGroup and adding a possibility to move cards.\n * Please see example below:\n * @Component({\n * selector: 'cdk-drag-drop-example',\n * template: `<div\n * cdkDragListGroup\n * fdDndKeyboardGroup\n * [groups]=\"groups\"\n * >\n * <div\n * *ngFor=\"let group of groups; let groupIndex = index\"\n * cdkDragList\n * >\n * Group #{{ groupIndex }}\n * <div\n * *ngFor=\"let item of group; let index = index\"\n * cdkDrag\n * fdDndKeyboardItem\n * [itemIndex]=\"index\"\n * [groupIndex]=\"groupIndex\"\n * [dndKeyboardDisabled]=\"flag for disable/enable keyboard navigation if needed\"\n * tabindex=\"0\"\n * >\n * Item #{{ item }}\n * </div>\n * </div>\n * </div>`,\n * })\n * export class CdkDragDropExample {\n * groups = [\n * [1, 2, 3],\n * [4, 5, 6],\n * ];\n * }\n */\n@Directive({ selector: '[fdkDndKeyboardItem], [fdDndKeyboardItem]' })\nexport class DndKeyboardItemDirective implements OnInit, OnDestroy {\n /** item index in group(column) */\n @Input()\n itemIndex: number;\n\n /** group(column) index */\n @Input()\n groupIndex: number;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private readonly _dndGroup: DndKeyboardGroupDirective, private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dndGroup._onDndItemFocus$.subscribe(([groupIndex, itemIndex]) => {\n if (this.groupIndex === groupIndex && this.itemIndex === itemIndex) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeyDown(event: KeyboardEvent): void {\n this._dndGroup.processDragDrop(event, this.itemIndex, this.groupIndex);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DndListDirective } from './dnd-list/dnd-list.directive';\nimport { DndItemDirective } from './dnd-item/dnd-item.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { DndKeyboardItemDirective } from './dnd-keyboard-item/dnd-keyboard-item.directive';\nimport { DndKeyboardGroupDirective } from './dnd-keyboard-group/dnd-keyboard-group.directive';\n\n@NgModule({\n imports: [CommonModule, DragDropModule],\n exports: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective],\n declarations: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective]\n})\nexport class DragAndDropModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RtlService } from './services/rtl.service';\nimport { ThemesService } from './services/themes.service';\nimport {\n AutoCompleteModule,\n ClickedBehaviorModule,\n DisabledBehaviorModule,\n FocusableGridModule,\n FocusableItemModule,\n FocusableListModule,\n InitialFocusModule,\n LineClampModule,\n OnlyDigitsModule,\n OverflowListModule,\n ReadonlyBehaviorModule,\n RepeatModule,\n ResizeModule,\n SelectableListModule,\n TemplateModule,\n TruncateModule,\n BreakpointModule\n} from './directives';\nimport { DragAndDropModule } from './drag-and-drop/drag-and-drop.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FocusableItemModule,\n FocusableListModule,\n FocusableGridModule,\n DragAndDropModule,\n OnlyDigitsModule,\n TruncateModule,\n LineClampModule,\n OverflowListModule,\n RepeatModule,\n ResizeModule,\n TemplateModule,\n AutoCompleteModule,\n DisabledBehaviorModule,\n SelectableListModule,\n ReadonlyBehaviorModule,\n ClickedBehaviorModule,\n InitialFocusModule,\n BreakpointModule\n ],\n exports: [\n FocusableItemModule,\n FocusableListModule,\n FocusableGridModule,\n DragAndDropModule,\n OnlyDigitsModule,\n TruncateModule,\n LineClampModule,\n OverflowListModule,\n RepeatModule,\n ResizeModule,\n TemplateModule,\n AutoCompleteModule,\n DisabledBehaviorModule,\n SelectableListModule,\n ReadonlyBehaviorModule,\n ClickedBehaviorModule,\n InitialFocusModule,\n BreakpointModule\n ],\n providers: [RtlService, ThemesService]\n})\nexport class UtilsModule {}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isBlank } from '../typecheck';\n\n/** @hidden */\nexport function coerceArraySafe<T>(value: T | T[]): T[] {\n return isBlank(value) ? [] : coerceArray(value);\n}\n","import { ElementRef } from '@angular/core';\n\nexport interface HasElementRef<ElementType extends Element = HTMLElement> {\n elementRef(): ElementRef<ElementType>;\n}\n\nexport const ELEMENT_REF_EXCEPTION = 'HasElementRef interface has to be implemented';\n","import { ELEMENT_REF_EXCEPTION } from '../interfaces/has-element-ref.interface';\nimport { uuidv4 } from '../functions/uuidv4-generator';\nimport { CssClassBuilder } from '../interfaces/css-class-builder.interface';\n\n/**\n * Method decorator to apply css class to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement CssClassBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssClass(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): string[] {\n const self = this as unknown as CssClassBuilder & { _uuidv4?: string };\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const classListToApply: string[] = sanitize(originalMethod.apply(this));\n\n const elementRef = self.elementRef.apply(this);\n\n const nativeElement: HTMLElement & { _classMap?: any } = elementRef?.nativeElement;\n\n if (nativeElement) {\n if (!nativeElement._classMap) {\n nativeElement._classMap = {};\n }\n\n if (!self._uuidv4) {\n self._uuidv4 = uuidv4();\n }\n\n const currentClassList = Array.from(nativeElement.classList);\n\n const previousClassListToApply = nativeElement._classMap[self._uuidv4] || [];\n\n const newClassList = createComponentClassList(currentClassList, previousClassListToApply, classListToApply);\n\n nativeElement.className = newClassList.join(' ');\n\n nativeElement._classMap[self._uuidv4] = classListToApply;\n }\n\n return classListToApply;\n };\n}\n\n/** Filter list to unique items */\nfunction unique(value: unknown, index: number, list: unknown[]): boolean {\n return list.indexOf(value) === index;\n}\n\n/** Splits merged classes, removes falsy elements and leaves only unique items */\nfunction sanitize(array: string[]): string[] {\n return array\n .filter(Boolean)\n .reduce((classList: string[], cssClass: string) => [...classList, ...cssClass.split(/\\s+/)], [])\n .filter(unique);\n}\n\nfunction firstCommonElementIndex(array1: string[], array2: string[]): number {\n return array1.findIndex((element) => array2.indexOf(element) !== -1);\n}\n\n/** Create set of component classes based on previous set and new set */\nfunction createComponentClassList(\n allClasses: string[],\n previousComponentClassList: string[],\n newComponentClassList: string[]\n): string[] {\n allClasses = allClasses.slice();\n let index = firstCommonElementIndex(allClasses, previousComponentClassList);\n index = index === -1 ? 0 : index;\n allClasses.splice(index, previousComponentClassList.length, ...newComponentClassList);\n\n return allClasses;\n}\n","import { ELEMENT_REF_EXCEPTION, HasElementRef } from '../interfaces/has-element-ref.interface';\nimport { Hash } from '../datatypes/hash.datatype';\n\n/**\n * Method decorator to apply css styles to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement HasElementRef or CssStyleBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssStyle(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): Hash<number | string> {\n const self = this as unknown as HasElementRef;\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const _styles: Hash<number | string> = originalMethod.apply(this);\n if (self.elementRef()) {\n const htmlElement = self.elementRef().nativeElement as HTMLElement;\n Object.keys(_styles).forEach((key) => {\n htmlElement.style[key] = _styles[key];\n });\n }\n\n return _styles;\n };\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { alternateSetter } from './setter-alternator';\n\nexport const coerceCssPixel = alternateSetter(coerceCssPixelValue);\n","import { CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Nullable } from '../models/nullable';\n\nexport abstract class DynamicComponentContainer<T = TemplateRef<any> | Type<any>> {\n /** @hidden */\n abstract portalOutlet: CdkPortalOutlet;\n\n /** @hidden */\n childContent: Nullable<T> = undefined;\n\n /** @hidden */\n protected _componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n protected _contentLoaded$ = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n protected constructor(\n protected _elementRef: ElementRef,\n protected _injector: Injector,\n protected _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden Load received content */\n protected abstract _loadContent(): void;\n\n /** @hidden Load received content as component */\n protected _createFromComponent(content: Type<any>): void {\n this.portalOutlet?.attachedRef?.destroy();\n const injector = Injector.create({\n parent: this._injector,\n providers: []\n });\n this._componentRef = this.portalOutlet.attach(new ComponentPortal(content, null, injector));\n this._cdr.markForCheck();\n }\n\n /** @hidden Load received content as embedded view */\n protected _createFromTemplate(content: TemplateRef<any>, context: any): void {\n this.portalOutlet?.attachedRef?.destroy();\n this._componentRef = this.portalOutlet.attach(\n new TemplatePortal(content, null as unknown as ViewContainerRef, context)\n );\n this._cdr.markForCheck();\n }\n}\n","import { Injector } from '@angular/core';\n\nexport class DynamicComponentInjector implements Injector {\n /** @hidden */\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) {}\n\n /**\n *\n * @param token\n * @param notFoundValue\n */\n get(token: any, notFoundValue?: any): void {\n const value = this._additionalTokens.get(token);\n\n if (value) {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","import {\n ComponentFactoryResolver,\n Injectable,\n ApplicationRef,\n Injector,\n EmbeddedViewRef,\n ComponentRef,\n TemplateRef,\n Type,\n Compiler,\n NgModuleFactory,\n ViewContainerRef\n} from '@angular/core';\nimport { DynamicComponentInjector } from './dynamic-component-injector';\nimport { DynamicComponentConfig } from './dynamic-component-config';\n\n/**\n * Service used to dynamically generate components like dialogs/alerts/notifications\n */\n@Injectable()\nexport class DynamicComponentService {\n /** @hidden */\n constructor(\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _applicationRef: ApplicationRef,\n private readonly _injector: Injector,\n private readonly _compiler: Compiler\n ) {}\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param componentType Type of component that should be rendered.\n * @param config Configuration that will be passed to the component.\n * @param inject enables to provide preconfigured component injector and dependencies\n */\n public createDynamicComponent<T>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n componentType: Type<T>,\n config: DynamicComponentConfig,\n inject: { injector?: Injector; services?: any[] } = {}\n ): ComponentRef<T> {\n const { injector, services } = inject;\n const dependenciesMap = this._createDependencyMap(services);\n const componentRef = this._createComponent<T>(componentType, dependenciesMap, injector);\n this._passExternalContent<T>(componentRef, content);\n this._attachToContainer<T>(componentRef, config);\n\n return componentRef;\n }\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param moduleType Type of module that should be compiled.\n * @param componentType Type of component that should be rendered.\n * @param containerRef The container that the dynamic component is appended to.\n * @param injector enables to provide preconfigured component injector\n */\n async createDynamicModule<M, C>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n moduleType: Type<M> | NgModuleFactory<M>,\n componentType: Type<C>,\n containerRef: ViewContainerRef,\n injector?: Injector\n ): Promise<ComponentRef<C>> {\n const moduleFactory =\n moduleType instanceof NgModuleFactory ? moduleType : await this._compiler.compileModuleAsync<M>(moduleType);\n const moduleRef = moduleFactory.create(injector || this._injector);\n const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(componentType);\n\n containerRef.clear();\n\n const componentRef: ComponentRef<C> = containerRef.createComponent(componentFactory);\n\n this._passExternalContent<C>(componentRef, content);\n\n return componentRef;\n }\n\n /** Function that destroys dynamic component */\n public destroyComponent(componentRef: ComponentRef<any>): void {\n this._applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n\n /** @hidden */\n private _createDependencyMap(services: any[] = []): WeakMap<any, any> {\n const dependencyMap = new WeakMap();\n services.filter((service) => !!service).forEach((service) => dependencyMap.set(service.constructor, service));\n return dependencyMap;\n }\n\n /** @hidden */\n private _attachToContainer<V>(componentRef: ComponentRef<V>, config: DynamicComponentConfig): void {\n const configObj = Object.assign({}, config);\n const componentEl = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n if (configObj.container !== 'body') {\n configObj.container?.appendChild(componentEl);\n } else {\n document.body.appendChild(componentEl);\n }\n }\n\n /** @hidden */\n private _createComponent<V>(\n componentType: Type<V>,\n dependenciesMap: WeakMap<any, any>,\n injector?: Injector\n ): ComponentRef<V> {\n const dynamicComponentInjector = new DynamicComponentInjector(injector || this._injector, dependenciesMap);\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(componentType);\n const componentRef = componentFactory.create(dynamicComponentInjector);\n this._applicationRef.attachView(componentRef.hostView);\n return componentRef;\n }\n\n /** @hidden */\n private _passExternalContent<V>(\n componentRef: ComponentRef<V>,\n content: TemplateRef<any> | Type<any> | string | Record<string, any>\n ): void {\n // TODO: this approach should be revisited, it can cause issues, that is really hard to debug\n if (Object.prototype.hasOwnProperty.call(componentRef.instance, 'childContent')) {\n (componentRef.instance as any).childContent = content;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LIST_ITEM_COMPONENT = new InjectionToken<string[]>('ListItemComponent');\n\nexport interface ListItemInterface {\n selected: boolean;\n\n link: boolean;\n\n focus(): void;\n}\n","import { ElementRef, OnChanges, OnInit, Input, Directive } from '@angular/core';\n\n/*\n This abstract class allows the user to set their own custom styles on a Fundamental Library for Angular directive, in addition to the\n styles the library needs to add itself.\n When library styles were added through the directive's host: {'[class]'} property, any styles the user added would be\n overwritten. By extending this class, we instead add library styles to the user's classList rather than replace them.\n */\n\n/** @hidden */\n@Directive()\nexport abstract class AbstractFdNgxClass implements OnInit, OnChanges {\n /** @hidden */\n private _elementRef: ElementRef;\n\n /** @hidden */\n @Input() class: string; // user's custom classes\n\n /*\n each directive that extends this class will implement this function and populate it with one or more calls to\n the '_addClassToElement' function, passing the style names to be added with each call\n */\n /** @hidden */\n abstract _setProperties(): void;\n\n /** @hidden */\n _setClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = `${className} ${this.class}`;\n }\n\n /** @hidden */\n _clearElementClass(): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = '';\n }\n\n /** @hidden */\n _addClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.add(...className.split(' '));\n }\n\n /** @hidden */\n _addStyleToElement(attribute, value): void {\n (this._elementRef.nativeElement as HTMLElement).style[attribute] = value;\n }\n\n /** @hidden */\n protected constructor(elementRef: ElementRef) {\n this._elementRef = elementRef;\n this._setProperties();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n const classList = (this._elementRef.nativeElement as HTMLElement).classList;\n while (classList.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n classList.remove(classList.item(0)!);\n }\n if (this.class) {\n this._addClassToElement(this.class);\n }\n this._setProperties();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._setProperties();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'displayFnPipe',\n standalone: true\n})\nexport class DisplayFnPipe implements PipeTransform {\n /** Transform value with display function. */\n transform(value: any, displayFn: any, ...args: any): string {\n return displayFn(value, ...args);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Nullable } from '../models/nullable';\n\n@Pipe({\n name: 'fdFilterStrings',\n standalone: true\n})\nexport class FilterStringsPipe implements PipeTransform {\n /**\n * Performs filtering.\n * @param values Array of items.\n * @param params Search parameters.\n */\n transform(values: any[] = [], params: { searchTerm: Nullable<string>; key: string }): any[] {\n if (!params.searchTerm) {\n return values;\n }\n if (params.key) {\n values = values.filter((item) =>\n item[params.key].toLocaleLowerCase().includes(params.searchTerm?.toLocaleLowerCase())\n );\n } else {\n values = values.filter((item) => item.toLocaleLowerCase().includes(params.searchTerm?.toLocaleLowerCase()));\n }\n return values;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ContentDensity } from '../interfaces/content-density';\nimport { isCompactDensity } from './../functions/is-compact-density';\n\n@Pipe({ name: 'isCompactDensity', standalone: true })\nexport class IsCompactDensityPipe implements PipeTransform {\n /** Check if the content density is compact. */\n transform(size: ContentDensity): boolean {\n return isCompactDensity(size);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { isPromise, isSubscribable } from '../typecheck';\nimport { Observable } from 'rxjs';\n\n@Pipe({\n name: 'fdkAsyncOrSync',\n standalone: true,\n pure: false\n})\nexport class AsyncOrSyncPipe implements OnDestroy, PipeTransform {\n /** @hidden */\n private _cdr: ChangeDetectorRef | null;\n /** @hidden */\n private _asyncPipe: AsyncPipe | null;\n\n /** @hidden */\n constructor(ref: ChangeDetectorRef) {\n this._cdr = ref;\n this._asyncPipe = new AsyncPipe(this._cdr);\n }\n\n /**\n * Transforms raw async-like value into static one.\n * @param value raw value. Can be either a static value, or Promise-like, or Observable-like.\n */\n transform<T>(value: T | Promise<T> | Observable<T>): T | null {\n return !isPromise(value) && !isSubscribable(value) ? value : this._asyncPipe?.transform(value) ?? null;\n }\n\n /** @Hidden */\n ngOnDestroy(): void {\n this._asyncPipe?.ngOnDestroy();\n this._asyncPipe = null;\n this._cdr = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport escape from 'lodash-es/escape';\n\n@Pipe({\n name: 'highlight',\n standalone: true\n})\nexport class SearchHighlightPipe implements PipeTransform {\n /** Highlight search term in string. */\n transform(value: string, args: string, active: boolean = true, includeSpans: boolean = false): string {\n value = escape(value);\n let result: string = value;\n if (args && value && active) {\n const testStr: string = escape(args.trim().toLowerCase());\n const startIndex = value.toLowerCase().indexOf(testStr);\n if (startIndex !== -1) {\n const matchingString = value.substr(startIndex, testStr.length);\n result = value.replace(matchingString, '<strong>' + matchingString + '</strong>');\n }\n }\n if (includeSpans) {\n result = '<span>' + result + '</span>';\n }\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'twoDigits',\n standalone: true\n})\nexport class TwoDigitsPipe implements PipeTransform {\n /** Transform number to two digits. */\n transform(value: number, enable: boolean = true): string {\n if ((value || value === 0) && enable) {\n return value < 10 ? '0' + value : value.toString();\n } else {\n return String(value);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe',\n standalone: true\n})\nexport class SafePipe implements PipeTransform {\n /** @hidden */\n constructor(protected sanitizer: DomSanitizer) {}\n\n /** Sanitize HTML string. */\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { get } from 'lodash-es';\n\n@Pipe({ name: 'valueByPath', standalone: true })\nexport class ValueByPathPipe implements PipeTransform {\n /** Get value by path. */\n transform(value: any, key: string): any {\n return get(value, key);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate',\n standalone: true\n})\nexport class TruncatePipe implements PipeTransform {\n /** Truncate string to given length. */\n transform(value: string, limit: number = 500): string {\n return value && value.length > limit ? value.substring(0, limit) + '...' : value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { isPromise, isSubscribable } from '../typecheck';\n\n@Pipe({\n name: 'fdkMakeAsync',\n pure: true,\n standalone: true\n})\nexport class MakeAsyncPipe implements PipeTransform {\n /**\n * Transforms raw value into observable.\n * @param value raw value. Can be either a static value, or Promise-like, or Observable-like.\n */\n transform<T>(value: T | Promise<T> | Observable<T>): Observable<T> | Promise<T> {\n return isPromise(value) || isSubscribable(value) ? value : of(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AsyncOrSyncPipe } from './async-or-sync.pipe';\n\nimport { DisplayFnPipe } from './displayFn.pipe';\nimport { FilterStringsPipe } from './filter-strings.pipe';\nimport { SearchHighlightPipe } from './search-highlight.pipe';\nimport { TwoDigitsPipe } from './two-digits.pipe';\nimport { SafePipe } from './safe.pipe';\nimport { ValueByPathPipe } from './value-by-path.pipe';\nimport { IsCompactDensityPipe } from './is-compact.pipe';\nimport { TruncatePipe } from './truncate.pipe';\nimport { MakeAsyncPipe } from './make-async.pipe';\n\n@NgModule({\n imports: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe,\n FilterStringsPipe,\n MakeAsyncPipe,\n AsyncOrSyncPipe\n ],\n exports: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe,\n FilterStringsPipe,\n MakeAsyncPipe,\n AsyncOrSyncPipe\n ]\n})\nexport class PipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RtlService","i1.FocusKeyManagerListDirective","i1.TabbableElementService","i1","i1.AttributeObserver","takeUntil","i1.FocusableObserver","i2.DestroyedService","i2.TabbableElementService","i3","i1.DestroyedService","i2","i3.FocusableObserver","startWith","i1.ReadonlyObserver","filter","i2.FdkClickedProvider","i1.DisabledObserver","i1.SelectionService","i1.FdkDisabledProvider","i2.FdkReadonlyProvider","i3.SelectionService","i4.FdkClickedProvider","map","switchMap","i1.DndKeyboardGroupDirective"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;MAC1F,YAAY,GAAG,IAAI,cAAc,CAAW,aAAa,EAAE;AAGxE;;;;AAIG;MACU,UAAU,CAAA;;AAKnB,IAAA,WAAA,CAA8C,oBAA8B,EAAA;AACxE,QAAA,oBAAoB,GAAG,oBAAoB,IAAI,mBAAmB,CAAC;QAEnE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAElG,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACvD;;AAXQ,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,kBAKa,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2GALnC,UAAU,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,UAAU;;0BAWM,QAAQ;;0BAAI,MAAM;2BAAC,YAAY,CAAA;;;ACjBnC,MAAA,mBAAmB,GAAG,CAAA;;EAEjC;AAEK,MAAM,mCAAmC,GAAG,wEAAwE;AAEpH,MAAM,kBAAkB,GAAG;;ACNlC;;;AAGK;AACL;AACO,MAAM,qBAAqB,GAAG,oqIAAoqI;AACzsI;AACa,MAAA,0BAA0B,GAAG,IAAI,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE;AACjF;AACO,MAAM,gCAAgC,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,qBAAqB,CAAA,EAAA,CAAI,EAAE,GAAG;;ACT7F;;AAEG;AACH;AACO,MAAM,4BAA4B,GAAG,4dAA4d;AAC3f,MAAA,4BAA4B,GAAG,IAAI,MAAM,CAAC,4BAA4B,EAAE,GAAG,EAAE;AACnF,MAAM,kCAAkC,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,4BAA4B,CAAA,EAAA,CAAI,EAAE,GAAG;;ACJzF,MAAA,uBAAuB,GAAkC,IAAI,GAAG,CAAC;IAC1E,CAAC,QAAQ,EAAE,CAAC,CAAC;IACb,CAAC,WAAW,EAAE,CAAC,CAAC;IAChB,CAAC,KAAK,EAAE,CAAC,CAAC;IACV,CAAC,MAAM,EAAE,CAAC,CAAC;IACX,CAAC,OAAO,EAAE,CAAC,CAAC;AACf,CAAA;;ACYD;;;;AAIG;MACU,aAAa,CAAA;;IAsDtB,WAAgC,CAAA,eAA+B,EAAU,UAAwB,EAAA;QAAjE,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgB;QAAU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAc;;AApDjG,QAAA,IAAA,CAAA,MAAM,GAAY;AACd,YAAA;AACI,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,IAAI,EAAE,yBAAyB;AAClC,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,kBAAkB;AACtB,gBAAA,IAAI,EAAE,wBAAwB;AACjC,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,iBAAiB;AACrB,gBAAA,IAAI,EAAE,6BAA6B;AACnC,gBAAA,WAAW,EAAE,yEAAyE;AACzF,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,iBAAiB;AACrB,gBAAA,IAAI,EAAE,qCAAqC;AAC3C,gBAAA,WAAW,EAAE,sEAAsE;AACtF,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,WAAW,EAAE,mCAAmC;AACnD,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,kBAAkB;AACtB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,WAAW,EAAE,4BAA4B;AAC5C,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,iBAAiB;AACrB,gBAAA,IAAI,EAAE,4BAA4B;AAClC,gBAAA,WAAW,EAAE,wEAAwE;AACxF,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,iBAAiB;AACrB,gBAAA,IAAI,EAAE,4BAA4B;AAClC,gBAAA,WAAW,EAAE,sEAAsE;AACtF,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,wBAAwB;AAC5B,gBAAA,IAAI,EAAE,4CAA4C;AACrD,aAAA;SACJ,CAAC;;AAGO,QAAA,IAAA,CAAA,uBAAuB,GAAgC,IAAI,OAAO,EAAsB,CAAC;;AAGjF,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;KAGmC;AAErG;;;;AAII;AACJ,IAAA,eAAe,CAAC,cAAuB,EAAA;AACnC,QAAA,MAAM,SAAS,GAAG,cAAc,IAAI,OAAO,CAAC;AAE5C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACxD,SAAA;QAED,IAAI,CAAC,eAAe,CAAC,WAAW;aAC3B,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAC/C;AACA,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAA,IAAI,WAAW,EAAE;AACb,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACtC,SAAA;KACJ;;AAGD,IAAA,gBAAgB,CAAC,KAAc,EAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC;QAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,EAAE;AAC7B,YAAA,OAAO,CAAC,IAAI,CAAC,qCAAqC,GAAG,KAAK,CAAC,CAAC;YAC5D,OAAO;AACV,SAAA;QAED,OAAO;AACH,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACpC,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;SACnD,CAAC;KACL;;AAGD,IAAA,QAAQ,CAAC,KAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,sBAAsB,GAAG,KAAK,GAAG,oBAAoB,CAAC,CAAC;KAChH;;AAGD,IAAA,cAAc,CAAC,KAAa,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,oCAAoC,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;KAChH;;AAGO,IAAA,yBAAyB,CAAC,SAAiB,EAAA;QAC/C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAAC,EAC9D,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AACzB,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;AACD,QAAA,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;KAC7D;;AAGO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;AAC9B,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9B,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAC7C,SAAA,CAAC,CAAC;KACN;;0GA5HQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8GAAb,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,UAAU;;0BA4DM,QAAQ;;;ACvCzB;AACA,MAAM,MAAM,GAA0B,IAAI,GAAG,CAAC;AAC1C,IAAA,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACtC,IAAA,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC,IAAA,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC,IAAA,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;AACnC,IAAA,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3B,IAAA,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3B,IAAA,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;AAClB,IAAA,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;AACtB,IAAA,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACd,IAAA,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACd,IAAA,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACd,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;AAChB,IAAA,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;AAClB,IAAA,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;AAC1B,IAAA,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACb,IAAA,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACb,IAAA,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACb,IAAA,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACb,IAAA,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AACrB,IAAA,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;AACzB,IAAA,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACb,IAAA,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,IAAA,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1B,IAAA,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC;AACzB,IAAA,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC;AACzB,IAAA,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAA,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1B,IAAA,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1B,IAAA,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC;AACzB,IAAA,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAA,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAA,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1B,IAAA,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACf,CAAA,CAAC,CAAC;MAEU,OAAO,CAAA;AAChB;;;;;AAKK;AACL,IAAA,OAAO,SAAS,CAAC,KAAoB,EAAE,OAA0B,EAAA;AAC7D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACxB,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,SAAA;QAED,IAAI,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC;AACjG,SAAA;QAED,IAAI,SAAS,EAAE,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,6FAAA,CAA+F,CAClG,CAAC;AACL,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;;;AAKK;AACL,IAAA,OAAO,SAAS,CAAC,KAAoB,EAAE,OAA+C,EAAA;QAClF,IAAI,KAAK,IAAI,OAAO,EAAE;AAClB,YAAA,QAAQ,OAAO;AACX,gBAAA,KAAK,SAAS;oBACV,OAAO,KAAK,CAAC,IAAI;0BACX,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5C,0BAAE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;AACxG,gBAAA,KAAK,cAAc;oBACf,OAAO,KAAK,CAAC,IAAI;0BACX,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC1C,0BAAE,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;;AAErD,gBAAA,KAAK,SAAS;AACV,oBAAA,OAAO,KAAK,CAAC,OAAO,GAAG,EAAE,KAAK,KAAK,CAAC,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;AACnF,aAAA;AACJ,SAAA;QAED,IAAI,SAAS,EAAE,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,CAA6B,CAAC,CAAC;AAClD,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AACJ;;AC/HD;AACgB,SAAA,kBAAkB,CAAC,OAAe,EAAE,UAAkB,EAAA;IAClE,OAAO;QACH,OAAO;QACP,UAAU;KACb,CAAC;AACN,CAAC;AAEM,MAAM,gCAAgC,GAAG,IAAI,cAAc,CAC9D,+BAA+B,CAClC,CAAC;MAEoB,kBAAkB,CAAA;;AAIpC,IAAA,WAAA,GAAA;;QAFU,IAAU,CAAA,UAAA,GAAmC,MAAM,CAAC,gCAAgC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAGhH,QAAA,IAAI,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,YAAA,OAAO,CAAC,IAAI,CACR,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAA,iEAAA,EAAoE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAA,SAAA,CAAW,CACtI,CAAC;AACL,SAAA;KACJ;AACJ;;ACLK,MAAO,+BAAgC,SAAQ,kBAAkB,CAAA;;4HAA1D,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAP7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAOY,qBAAqB,CAAA;;AA4C9B,IAAA,WAAA,CAAoB,WAAuB,EAAA;QAAvB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;QA9B3C,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AAEd;;;AAG4C;AAE5C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;;AAKxB,QAAA,IAAA,CAAA,UAAU,GAAoC,IAAI,YAAY,EAAqB,CAAC;;AAG5E,QAAA,IAAA,CAAA,aAAa,GAAa,CAAC,KAAK,CAAC,CAAC;;AAGlC,QAAA,IAAA,CAAA,SAAS,GAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KASpB;;AAI/C,IAAA,mBAAmB,CAAC,KAAoB,EAAA;QACpC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AACzD,aAAA;iBAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACxC,aAAA;iBAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;AACjD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClC,aAAA;iBAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;;AAErD,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;oBAC3B,OAAO;AACV,iBAAA;AAED,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAE/B,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAC5F,CAAC;AAEF,gBAAA,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,iBAAA;AACJ,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC/B;;AAGO,IAAA,UAAU,CAAC,cAAsB,EAAA;QACrC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,cAAc,CAAC;AACtD,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAClD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;KAChG;;AAGO,IAAA,aAAa,CAAC,KAAoB,EAAA;AACtC,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;KAC7D;;AAGO,IAAA,eAAe,CAAC,KAAU,EAAA;AAC9B,QAAA,OAAO,KAAK,CAAC;KAChB;;IAGO,iBAAiB,GAAA;QACrB,IACI,IAAI,CAAC,cAAc;YACnB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;AAC/C,YAAA,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,EAClC;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;;AAGO,IAAA,kBAAkB,CAAC,UAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK;YAC1C,UAAU;AACb,SAAA,CAAC,CAAC;KACN;;IAGO,6BAA6B,GAAA;QACjC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;KACtF;;kHAvHQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yDAAyD;AACnE,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iGAIG,OAAO,EAAA,CAAA;sBADN,KAAK;gBAQN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAQN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAMG,UAAU,EAAA,CAAA;sBAFlB,MAAM;gBAwBP,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCtExB,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJjB,qBAAqB,EAAE,+BAA+B,CACtD,EAAA,OAAA,EAAA,CAAA,qBAAqB,EAAE,+BAA+B,CAAA,EAAA,CAAA,CAAA;gHAGvD,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;AACjE,oBAAA,YAAY,EAAE,EAAE;AACnB,iBAAA,CAAA;;;MCJY,cAAc,GAAG,IAAI,cAAc,CAAkB,kBAAkB;;ACmC9E,MAAO,sCAAuC,SAAQ,kBAAkB,CAAA;;mIAAjE,sCAAsC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,sCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,EAVpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CACxB,0BAA0B,EAC1B,sDAAsD,CACzD;AACJ,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAdlD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,sDAAsD;AAChE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CACxB,0BAA0B,EAC1B,sDAAsD,CACzD;AACJ,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;AAGD;;AAEG;MAKU,4BAA4B,CAAA;;AAcrC,IAAA,IAAI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;;IASD,WAAyC,CAAA,WAAuB,EAAmB,IAAuB,EAAA;QAAjE,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QAAmB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;;AAHzF,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;KAG2D;;AAG9G,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,OAAO;AACV,SAAA;QAED,IAAI,aAAa,IAAI,OAAO,EAAE;YAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5B,SAAA;QAED,IAAI,cAAc,IAAI,OAAO,EAAE;YAC3B,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3D,SAAA;KACJ;;IAGD,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAkB,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5G,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAE1B,IAAI,CAAC,WAAW,EAAE,GAAG;AAChB,aAAA,IAAI,CACD,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,EAC/C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAC9B;aACA,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAClD;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACnC;;AAGD,IAAA,SAAS,CAAC,IAA8B,EAAA;AACpC,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7C,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7C,SAAA;KACJ;;IAGO,iBAAiB,GAAA;QACrB,QAAQ,IAAI,CAAC,WAAW;AACpB,YAAA,KAAK,YAAY;gBACb,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;gBAC7F,MAAM;AACV,YAAA,KAAK,UAAU;AACX,gBAAA,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBACpD,MAAM;AACb,SAAA;KACJ;;yHApFQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,yOAUpB,cAAc,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAVtB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,CAAgF,8EAAA,CAAA;AAC1F,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;0BA0BgB,QAAQ;4EAtBrB,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAKG,MAAM,EAAA,CAAA;sBADd,eAAe;uBAAC,cAAc,CAAA;;;AChC7B,MAAO,sCAAuC,SAAQ,kBAAkB,CAAA;;mIAAjE,sCAAsC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,sCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,EAVpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CACxB,0BAA0B,EAC1B,sDAAsD,CACzD;AACJ,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAdlD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,sDAAsD;AAChE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CACxB,0BAA0B,EAC1B,sDAAsD,CACzD;AACJ,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;AAGD;;AAEG;MAMU,4BAA4B,CAAA;;IAErC,IACI,YAAY,CAAC,KAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACrD;;AAGD,IAAA,IAEI,SAAS,GAAA;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;KAC7C;;AAMD,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;KACrC;;AAGD,IAAA,IAAY,gBAAgB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;KACrC;;IAGD,WAA6B,CAAA,KAAmC,EAAmB,MAAkB,EAAA;QAAxE,IAAK,CAAA,KAAA,GAAL,KAAK,CAA8B;QAAmB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;;QAb7F,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;KAa2E;;IAIzG,QAAQ,GAAA;;AAEJ,QAAA,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACjD;;AAID,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;KAC3C;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;KACtC;;yHAlDQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,mUAF1B,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAE5F,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gFAAgF;AAC1F,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,CAAC,MAAkC,4BAAA,CAAC,EAAE,CAAC;AACxG,iBAAA,CAAA;yIAIO,YAAY,EAAA,CAAA;sBADf,KAAK;gBAQF,SAAS,EAAA,CAAA;sBAFZ,KAAK;;sBACL,WAAW;uBAAC,eAAe,CAAA;gBA2B5B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,OAAO,CAAA;gBAQrB,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCpD1B,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAZjC,4BAA4B;QAC5B,4BAA4B;QAC5B,sCAAsC;AACtC,QAAA,sCAAsC,aAGtC,4BAA4B;QAC5B,4BAA4B;QAC5B,sCAAsC;QACtC,sCAAsC,CAAA,EAAA,CAAA,CAAA;0HAGjC,4BAA4B,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAdxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,4BAA4B;wBAC5B,4BAA4B;wBAC5B,sCAAsC;wBACtC,sCAAsC;AACzC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,4BAA4B;wBAC5B,4BAA4B;wBAC5B,sCAAsC;wBACtC,sCAAsC;AACzC,qBAAA;AACJ,iBAAA,CAAA;;;MCtBY,oCAAoC,GAAG,IAAI,cAAc,CAAC,qCAAqC;;ACkBtG,MAAO,yCAA0C,SAAQ,kBAAkB,CAAA;;sIAApE,yCAAyC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzC,yCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yCAAyC,EAPvC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,6BAA6B,EAAE,4BAA4B,CAAC;AAC5F,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBAXrD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,6BAA6B,EAAE,4BAA4B,CAAC;AAC5F,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;AAGD;;;;AAIG;MAWU,+BAA+B,CAAA;;IAExC,WAAsC,CAAA,QAAkB,EAAU,WAAoC,EAAA;QAAhE,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;KAAI;;AAI1G,IAAA,OAAO,CAAC,MAAkB,EAAA;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;AAC/C,QAAA,IAAI,SAAS,EAAE,QAAQ,EAAE,EAAE;YACvB,IACI,SAAS,CAAC,UAAU;iBACnB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC;AAC5D,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EACpF;gBACE,MAAM,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,CAAC,cAAc,EAAE,CAAC;AAC3B,aAAA;AACJ,SAAA;KACJ;;AAlBQ,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,kBAEpB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAFnB,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAP7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,WAAW,EAAE,+BAA+B;AAC/C,SAAA;AACJ,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAV3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yDAAyD;AACnE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,WAAW,EAAiC,+BAAA;AAC/C,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;0BAGgB,MAAM;2BAAC,QAAQ,CAAA;qEAI5B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MChCxB,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAH3B,+BAA+B,EAAE,yCAAyC,CAC1E,EAAA,OAAA,EAAA,CAAA,+BAA+B,EAAE,yCAAyC,CAAA,EAAA,CAAA,CAAA;0HAE3E,4BAA4B,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,+BAA+B,EAAE,yCAAyC,CAAC;AACrF,oBAAA,OAAO,EAAE,CAAC,+BAA+B,EAAE,yCAAyC,CAAC;AACxF,iBAAA,CAAA;;;MCJY,sBAAsB,CAAA;;IAE/B,WACqB,CAAA,QAA8B,EACA,SAA0B,EAAA;QADxD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAsB;QACA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;KACzE;;IAGJ,kBAAkB,CAAC,IAAiB,EAAE,gBAAgB,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAA;QAC5E,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAChF,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;;;QAID,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC;AAEtD,QAAA,MAAM,QAAQ,GAAG,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC;AAEtF,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,YAAA,MAAM,aAAa,GACf,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,YAAY;kBAC/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAgB,EAAE,gBAAgB,CAAC;kBACrE,IAAI,CAAC;AAEf,YAAA,IAAI,aAAa,EAAE;AACf,gBAAA,OAAO,aAAa,CAAC;AACxB,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;;AA/BQ,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,wDAIP,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAJvB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;0BAKzB,QAAQ;;0BAAI,MAAM;2BAAC,QAAQ,CAAA;;;ACW9B,MAAO,+BAAgC,SAAQ,kBAAkB,CAAA;;4HAA1D,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAP7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAcY,qBAAqB,CAAA;;AAoB9B,IAAA,WAAA,CACY,OAAgC,EAChC,OAAe,EACN,gBAAwC,EAAA;QAFjD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAChC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACN,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAwB;AAtB7D;;AAEG;QAEH,IAAa,CAAA,aAAA,GAAG,wBAAwB,CAAC;AAEzC;;AAEG;QAEH,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;AAEf;;AAEG;QAEH,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;KAOrB;;IAGJ,eAAe,GAAA;QACX,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KAC7C;AAED;;;AAGG;AACK,IAAA,eAAe,CAAC,EAAa,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;AACpC,YAAA,EAAE,EAAE,CAAC;AACR,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7D,SAAA;KACJ;AAED;;;AAGG;IACK,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACtG,SAAA;AAED,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAClE,IAAI,CAAC,aAAa,CACM,CAAC;AAE7B,QAAA,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7G,SAAA;;AAGD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACtG;;IAGO,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC;KACxC;;kHAtEQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EARnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA;QACP,sBAAsB;AACtB,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,SAAA;AACJ,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAXjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yDAAyD;AACnE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;wBACP,sBAAsB;AACtB,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;wJAMG,aAAa,EAAA,CAAA;sBADZ,KAAK;uBAAC,kBAAkB,CAAA;gBAOzB,OAAO,EAAA,CAAA;sBADN,KAAK;gBAON,gBAAgB,EAAA,CAAA;sBADf,KAAK;;;MC1CG,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHjB,qBAAqB,EAAE,+BAA+B,CACtD,EAAA,OAAA,EAAA,CAAA,qBAAqB,EAAE,+BAA+B,CAAA,EAAA,CAAA,CAAA;gHAEvD,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;AACpE,iBAAA,CAAA;;;AC2BK,MAAO,kCAAmC,SAAQ,kBAAkB,CAAA;;+HAA7D,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,kCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,EAPhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;AACrG,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAX9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,4CAA4C;AACtD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;AACrG,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;AAcK,MAAO,4BAA6B,SAAQ,kBAAkB,CAAA;;yHAAvD,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAP1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;AACxF,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAXxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;AACxF,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAQY,wBAAwB,CAAA;;AAajC,IAAA,WAAA,CAA6B,WAAuB,EAAA;QAAvB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AANpD;;AAEG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAA4B,CAAC;KAGR;AAExD;;AAEG;AACH,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;KACzC;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;;IAGD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;;qHA9BQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kEAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kEAAkE;AAC5E,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iGAMG,qBAAqB,EAAA,CAAA;sBADpB,KAAK;gBAMI,MAAM,EAAA,CAAA;sBAAf,MAAM;;MA4BE,kBAAkB,CAAA;AAC3B;;AAEG;IACH,IACI,gBAAgB,CAAC,KAAuB,EAAA;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;KACjD;;AA0BD;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;KACzC;;AAGD,IAAA,WAAA,CACqB,WAAuB,EACvB,SAAoB,EACpB,MAAyB,EAAA;QAFzB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;AAnC9C;;AAEG;QAEH,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAEzB;;AAEG;AAEH,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;;QASrC,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;KAiB5B;;IAGJ,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,KAAK,WAAW,CAAC;;QAGtF,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;aAC3C,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC/C,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;AACrC,SAAA,CAAC,CAAC;KACV;;IAGD,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACpC,SAAA;KACJ;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7C,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AAC1D,SAAA;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;AACvB,SAAA;KACJ;;AAGD,IAAA,aAAa,CAAC,KAA+B,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,qBAAqB,CAAC;QACjD,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;;IAGD,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,EAAE;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;AACpB,aAAA;AACJ,SAAA;KACJ;AAED;;AAEG;IACK,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,OAAO;AACV,SAAA;AACD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1E,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,MAAW;AAC5B,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,eAAe,EAAE;gBACjD,iBAAiB,CAAC,GAAG,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACxE,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAA;AACL,SAAC,CAAC;AACF,QAAA,YAAY,EAAE,CAAC;KAClB;AAED;;AAEG;IACK,aAAa,GAAA;AACjB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACnG,IAAI,UAAU,KAAK,QAAQ,EAAE;YACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AAC7G,SAAA;AAED,QAAA,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;KACjC;AAED;;AAEG;IACK,MAAM,GAAA;QACV,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAC5E,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,EAAE,CAAG,EAAA,IAAI,CAAC,UAAU,CAAA,CAAE,CAAC,CAAC;AACzF,SAAA;KACJ;AAED;;AAEG;IACK,YAAY,GAAA;QAChB,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACvE,SAAA;KACJ;;IAGO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;AACV,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;AAEb,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACvD,QAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;AACnB,YAAA,UAAU,GAAG,QAAQ,GAAG,GAAG,CAAC;AAC/B,SAAA;QACD,IAAI,SAAS,KAAK,YAAY,EAAE;AAC5B,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;AACxE,YAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9E,YAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5E,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC;YAClF,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,aAAa,CAAC;AAC/E,SAAA;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;KAC7D;;+GAzLQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+CAA+C;AACzD,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;yJAMO,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBASN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAON,eAAe,EAAA,CAAA;sBADd,MAAM;;;MCtFE,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAZpB,wBAAwB;QACxB,kBAAkB;QAClB,4BAA4B;AAC5B,QAAA,kCAAkC,aAGlC,wBAAwB;QACxB,kBAAkB;QAClB,4BAA4B;QAC5B,kCAAkC,CAAA,EAAA,CAAA,CAAA;6GAG7B,eAAe,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,wBAAwB;wBACxB,kBAAkB;wBAClB,4BAA4B;wBAC5B,kCAAkC;AACrC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,wBAAwB;wBACxB,kBAAkB;wBAClB,4BAA4B;wBAC5B,kCAAkC;AACrC,qBAAA;AACJ,iBAAA,CAAA;;;MCpBY,OAAO,GAAG,CAAC,MAAc,KAAa,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;MAE5E,eAAe,GAAG,CAAC,OAAiC,KAC7D,OAAO,YAAY,UAAU,GAAG,OAAO,CAAC,aAAa,GAAG,QAAQ;AAEpE;;AAEK;AACC,SAAU,kBAAkB,CAAC,OAAiC,EAAA;AAChE,IAAA,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAExD,OAAO,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AACnH,CAAC;AAED;;;AAGK;AACW,SAAA,eAAe,CAAC,OAAiC,EAAE,UAAoB,EAAA;AACnF,IAAA,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAC1C,IAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAEjD,IAAA,OAAO,UAAU;UACX,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;AACvG,UAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC;;AC5BA;SACgB,MAAM,GAAA;IAClB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;;QAEjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC;;AAEpC,QAAA,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACxC,QAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,KAAC,CAAC,CAAC;AACP;;ACVA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,IAAI,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,UAAU,CAAC;IAClB,CAAC,IAAI,EAAE,aAAa,CAAC;AACxB,CAAA,CAAC,CAAC;AAEH;AACM,SAAU,cAAc,CAAC,QAAgB,EAAA;IAC3C,IAAI,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAA,OAAO,CAAC,CAAC;AACZ,KAAA;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC5C,IAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AACjD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACtE,SAAA;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE;AACrD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QACD,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACtE,SAAA;AAAM,aAAA;YACH,OAAO,QAAQ,GAAG,IAAI,CAAC;AAC1B,SAAA;AACJ,KAAA;AAAM,SAAA;AACH,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACtE,SAAA;AAED,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,KAAA;AACL;;ACrCA;;;;;AAKK;AACW,SAAA,SAAS,CAAC,gBAAyB,EAAE,gBAAwB,EAAA;;IAEzE,IAAI,gBAAgB,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,YAAY,QAAQ,EAAE;QAC5E,gBAAgB,CAAC,QAAQ,CAAC;AACtB,YAAA,GAAG,EAAE,gBAAgB;AACrB,YAAA,QAAQ,EAAE,QAAQ;AACrB,SAAA,CAAC,CAAC;AACN,KAAA;AAAM,SAAA;AACH,QAAA,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC;AACjD,KAAA;AACL;;ACdA;SACgB,oBAAoB,GAAA;AAChC,IAAA,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAiB;AAC/D;;ACFA;;;;;AAKG;AACa,SAAA,gBAAgB,CAAC,MAAe,EAAE,OAA+B,EAAA;IAC7E,IAAI,gBAAgB,IAAI,MAAM,EAAE;AAC5B,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,KAAI;AACjC,YAAA,IAAI,cAAsB,CAAC;YAC3B,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAI;AACtC,gBAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAK;AAC/C,oBAAA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AAEH,YAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,YAAA,OAAO,SAAS,WAAW,GAAA;AACvB,gBAAA,IAAI,cAAc,EAAE;AAChB,oBAAA,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAC/C,iBAAA;AACD,gBAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACrB,EAAE,CAAC,UAAU,EAAE,CAAC;AACpB,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;AACN,KAAA;AAAM,SAAA;;AAEH,QAAA,OAAO,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAA;AACL;;AC/BA;;;;;AAKG;AACa,SAAA,sBAAsB,CAClC,MAAe,EACf,OAAkC,EAAA;IAElC,IAAI,sBAAsB,IAAI,MAAM,EAAE;AAClC,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,KAAI;YACjC,MAAM,EAAE,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,KAAI;AAC5C,gBAAA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC5B,EAAE,OAAO,CAAC,CAAC;AAEZ,YAAA,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnB,YAAA,OAAO,SAAS,WAAW,GAAA;gBACvB,EAAE,CAAC,UAAU,EAAE,CAAC;AACpB,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;AACN,KAAA;AAAM,SAAA;;;AAGH,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACL;;AC3BA;AACM,SAAU,qBAAqB,CAAC,IAAS,EAAA;IAC3C,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,WAAW,CAAC;AACzE,CAAC;AAED;;AAEG;AACG,SAAU,gBAAgB,CAAC,IAAoB,EAAA;IACjD,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC;AAC1D;;MCTa,kBAAkB,GAAG,IAAI,cAAc,CAAoB,oBAAoB;;ACA5F;AACM,SAAU,0BAA0B,CAAC,QAAa,EAAA;IACpD,OAAO;AACH,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,IAAI;KACd,CAAC;AACN,CAAC;AAED;AACM,SAAU,yBAAyB,CAAC,OAA4B,EAAA;IAClE,OAAO;AACH,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,GAAG,OAAO;AACV,QAAA,KAAK,EAAE,IAAI;KACd,CAAC;AACN;;ACjBA;;AAEG;AACa,SAAA,uBAAuB,CACnC,aAA4F,EAC5F,qBAAwC,EAAA;IAExC,OAAO;AACH,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,CAAC,QAAkB,KAAK,IAAI,aAAa,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QACtF,IAAI,EAAE,CAAC,QAAQ,CAAC;KACnB,CAAC;AACN;;ACdA;SACgB,mBAAmB,GAAA;IAC/B,OAAO,QAAQ,EAAE,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC5G;;ACHA;;;;AAIG;AACG,SAAU,KAAK,CAAC,MAAc,EAAA;AAChC,IAAA,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B;;AC6BM,MAAO,6BAA8B,SAAQ,kBAAkB,CAAA;;0HAAxD,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAP3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;AACtF,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAXzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;AACtF,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAOY,mBAAmB,CAAA;;AAc5B,IAAA,WAAA,CAA6B,GAAe,EAAA;QAAf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;;QAZnC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AACzB;;AAEG;QACM,IAAgB,CAAA,gBAAA,GAAG,GAAG,CAAC;;QAKxB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAI7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;KAC/C;;AAID,IAAA,SAAS,CAAC,CAAgB,EAAA;AACtB,QAAA;;QAEI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;;aAEhG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAClE;AACE,YAAA,OAAO;AACV,SAAA;AAED,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE5C,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAC5D,CAAC,CAAC,cAAc,EAAE,CAAC;AAEnB,gBAAA,OAAO;AACV,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO;AACV,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,EAAE;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,YAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;;gBAElD,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,OAAO;AACV,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,gBAAA,OAAO;AACV,aAAA;AACJ,SAAA;;AAGD,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;YACvC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;AACV,SAAA;KACJ;;AAID,IAAA,OAAO,CAAC,KAAU,EAAA;AACd,QAAA,IAAI,MAAM,CAAC,eAAe,CAAC,EAAE;;AAEzB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,SAAA;aAAM,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;;AAE3D,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9D,SAAA;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;KAC1B;;AAID,IAAA,MAAM,CAAC,KAAgB,EAAA;AACnB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC;KAC1B;;AAGO,IAAA,UAAU,CAAC,aAAqB,EAAA;QACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AAC5D,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AACjC,gBAAA,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;AACxE,gBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;;;AAG/E,gBAAA,IAAI,OAAO,MAAM,CAAC,gBAAgB,CAAC,KAAK,WAAW,EAAE;AACjD,oBAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9E,iBAAA;AACJ,aAAA;AAAM,iBAAA;;gBAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAC9D,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,SAAA;KACJ;;;;IAKO,eAAe,CAAC,OAAyB,EAAE,OAAe,EAAA;AAC9D,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;AAC7C,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;AAEzC,QAAA,OAAO,CAAC,KAAK;YACT,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE3G,QAAA,MAAM,GAAG,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;QACtC,OAAO,CAAC,KAAK,EAAE,CAAC;AAChB,QAAA,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpC,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACxC;;IAGO,aAAa,CAAC,EAAoB,EAAE,IAAY,EAAA;QACpD,IAAI,aAAa,IAAI,QAAQ,EAAE;;YAE3B,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/B,YAAA,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACvB,SAAA;KACJ;;;AAIO,IAAA,cAAc,CAAC,KAAa,EAAA;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;AAC7C,YAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAC,gBAAgB,CAAA,CAAA,CAAG,EAAE,GAAG,CAAC,CAAC;YAChE,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;YACH,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClB,YAAA,MAAM,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAC;AACzB,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/C,IAAI,SAAS,GAAG,CAAC,EAAE;;YAEf,MAAM,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;AAClE,YAAA,MAAM,GAAG,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;AACxE,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;;AAGO,IAAA,eAAe,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAC1D,SAAA;AAAM,aAAA;;AAEH,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;AACxC,YAAA,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;AAClE,gBAAA,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAC1D,aAAA;AAAM,iBAAA;gBACH,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACpD,aAAA;AACJ,SAAA;KACJ;;AAGD,IAAA,IAAY,aAAa,GAAA;QACrB,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;AAE5D,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;KACrF;;AAGO,IAAA,cAAc,CAAC,GAAW,EAAA;AAC9B,QAAA,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;AAC7E,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;AAE7E,QAAA,OAAO,SAAS;cACV,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;cAChC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KACpG;;gHA/LQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mDAAmD;AAC7D,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iGAGY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAIG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAcN,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBA4CnC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAejC,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC9GvB,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHf,mBAAmB,EAAE,6BAA6B,CAClD,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,6BAA6B,CAAA,EAAA,CAAA,CAAA;8GAEnD,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;AAC7D,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;AAChE,iBAAA,CAAA;;;ACWK,MAAO,mCAAoC,SAAQ,kBAAkB,CAAA;;gIAA9D,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAPjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,uBAAuB,EAAE,+CAA+C,CAAC;AACzG,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAX/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,+CAA+C;AACzD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,uBAAuB,EAAE,+CAA+C,CAAC;AACzG,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAOY,yBAAyB,CAAA;;AAElC,IAAA,WAAA,CAAmB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;KAAI;;sHAF5B,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sEAAsE;AAChF,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACUK,MAAO,+BAAgC,SAAQ,kBAAkB,CAAA;;4HAA1D,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAP7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAOY,qBAAqB,CAAA;;AAmC9B,IAAA,WAAA,CAAoB,GAAe,EAAU,cAA6B,EAAU,OAAe,EAAA;QAA/E,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;QAAU,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAlCnG;;AAEG;QAEH,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;AAQnB;;AAEG;QAEH,IAAiB,CAAA,iBAAA,GAAG,MAAM,CAAC;AAE3B;;AAEG;AAEH,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAU,CAAC;;AAS3D,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;KAG6D;;IAGvG,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,cAAc;aACd,MAAM,CAAC,EAAE,CAAC;AACV,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAEjC,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QAEvF,IAAI,CAAC,iCAAiC,EAAE,CAAC;KAC5C;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAED;;AAEK;IACL,qBAAqB,GAAA;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,YAAY,GACd,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC7D;;IAGO,iCAAiC,GAAA;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAED;;;;;AAKK;AACG,IAAA,qBAAqB,CACzB,QAAuB,EACvB,cAAsB,EACtB,kBAA2B,KAAK,EAAA;QAEhC,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,QAAA,MAAM,WAAW,GAAG,eAAe,GAAG,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAE5F,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEzB,eAAe,IAAI,IAAI,CAAC,KAAK;AACzB,kBAAE,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,eAAe;kBAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;YAE3D,IAAI,WAAW,GAAG,eAAe,EAAE;AAC/B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAChC,gBAAA,OAAO,eAAe;AAClB,sBAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;sBACnB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AACpE,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAA,OAAO,CAAC,CAAC;KACZ;AAED;;;AAGK;AACG,IAAA,gBAAgB,CAAC,QAAuB,EAAA;AAC5C,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;KACN;;kHAtHQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wSA4Bb,yBAAyB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FA5BjC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yDAAyD;AACnE,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;oJAMG,cAAc,EAAA,CAAA;sBADb,KAAK;gBAON,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAON,eAAe,EAAA,CAAA;sBADd,MAAM;gBAOP,aAAa,EAAA,CAAA;sBADZ,eAAe;uBAAC,yBAAyB,CAAA;;;MChDjC,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAZvB,qBAAqB;QACrB,yBAAyB;QACzB,mCAAmC;AACnC,QAAA,+BAA+B,aAG/B,qBAAqB;QACrB,yBAAyB;QACzB,mCAAmC;QACnC,+BAA+B,CAAA,EAAA,CAAA,CAAA;gHAG1B,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAd9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,qBAAqB;wBACrB,yBAAyB;wBACzB,mCAAmC;wBACnC,+BAA+B;AAClC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,qBAAqB;wBACrB,yBAAyB;wBACzB,mCAAmC;wBACnC,+BAA+B;AAClC,qBAAA;AACJ,iBAAA,CAAA;;;ACAK,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;;sHAApD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAPvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,aAAa,EAAE,YAAY,CAAC;AAC5D,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,aAAa,EAAE,YAAY,CAAC;AAC5D,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;AAGD;;AAEG;MAKU,eAAe,CAAA;;AAYxB,IAAA,IAAY,YAAY,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;KAC7C;;IAGD,WACqB,CAAA,YAA8B,EAC9B,iBAAmC,EAAA;QADnC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;QAC9B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;KACpD;;AAGJ,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACzF,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAE/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;AACjE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,aAAA;AACJ,SAAA;KACJ;;4GA/BQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,WAAA,EAAA,OAAA,CAAA,EAAA,eAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iIAIG,KAAK,EAAA,CAAA;sBADJ,KAAK;uBAAC,WAAW,CAAA;gBAOlB,eAAe,EAAA,CAAA;sBADd,KAAK;uBAAC,UAAU,CAAA;;;MC3BR,YAAY,CAAA;;yGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAHX,eAAe,EAAE,yBAAyB,CAC1C,EAAA,OAAA,EAAA,CAAA,eAAe,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA;0GAE3C,YAAY,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;AACrD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;AACxD,iBAAA,CAAA;;;ACWK,MAAO,+BAAgC,SAAQ,kBAAkB,CAAA;;4HAA1D,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAP7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;AAC5F,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAOY,qBAAqB,CAAA;;AAE9B,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;;kHAFpC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yDAAyD;AACnE,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACWK,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;;sHAApD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAPvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,aAAa,EAAE,yBAAyB,CAAC;AACzE,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,aAAa,EAAE,yBAAyB,CAAC;AACzE,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAYY,eAAe,CAAA;;;IAgBxB,IAAuC,wBAAwB,CAAC,KAA4B,EAAA;AACxF,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACtC;;IAoBD,WAAoB,CAAA,WAAoC,EAAsB,WAAuB,EAAA;QAAjF,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QAAsB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;;QAnCzE,IAAc,CAAA,cAAA,GAAyB,MAAM,CAAC;;;QAI9C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;;QAIX,IAAoB,CAAA,oBAAA,GAClD,cAAc,CAAC;;;AAUT,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAC;;;AAIzC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;;AAMzC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;;QAGpC,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAGkF;;AAGzG,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACrB,YAAA,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE;AAC1F,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AACrC,aAAA;AAAM,iBAAA,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,KAAK,KAAK,EAAE;gBACjG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,aAAA;AACJ,SAAA;KACJ;;IAGD,kBAAkB,GAAA;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7F,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,SAAA;KACJ;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;AAGD,IAAA,IAAY,UAAU,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KAC/B;;IAGO,mBAAmB,GAAA;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACzC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACjD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACpD,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO;AACV,SAAA;QACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,4BAA4B,CAAC,eAAe,CAAC,CAAC;QAE9E,MAAM,aAAa,GAAG,SAAS,CAAa,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,SAAS,CAAa,eAAe,EAAE,WAAW,CAAC,CAAC;AAC5E,QAAA,MAAM,eAAe,GAAG,SAAS,CAAa,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEhH,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,0BAA0B,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;AAEhF,QAAA,MAAM,uBAAuB,GAAG,eAAe,CAAC,IAAI,CAChD,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAA2B,KAAK,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/E,MAAM,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAC;QAEF,MAAM,YAAY,GAAG,MAAW;YAC5B,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/F,SAAC,CAAC;QACF,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CACnC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAC9B,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC,CAC5B,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,0BAA0B,CAAC,SAAS,EAAE,CAAC,CAAC;KACnE;;IAGO,kBAAkB,GAAA;QACtB,OAAO,CAAC,IAAgB,KAAI;YACxB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;YACxG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AAC9G,SAAC,CAAC;KACL;;IAGO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,gBAAwB,CAAC;AAC7B,QAAA,IAAI,kBAA0B,CAAC;QAE/B,QAAQ,IAAI,CAAC,oBAAoB;AAC7B,YAAA,KAAK,UAAU;gBACX,kBAAkB,GAAG,CAAC,CAAC,CAAC;gBACxB,gBAAgB,GAAG,CAAC,CAAC,CAAC;gBACtB,MAAM;AACV,YAAA,KAAK,WAAW;gBACZ,kBAAkB,GAAG,CAAC,CAAC,CAAC;gBACxB,gBAAgB,GAAG,CAAC,CAAC;gBACrB,MAAM;AACV,YAAA,KAAK,aAAa;gBACd,kBAAkB,GAAG,CAAC,CAAC;gBACvB,gBAAgB,GAAG,CAAC,CAAC,CAAC;gBACtB,MAAM;AACV,YAAA,KAAK,cAAc;gBACf,kBAAkB,GAAG,CAAC,CAAC;gBACvB,gBAAgB,GAAG,CAAC,CAAC;gBACrB,MAAM;AACb,SAAA;AAED,QAAA,OAAO,CAAC,MAAkB,EAAE,MAAkB,KAAI;AAC9C,YAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC;YAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAE1C,OAAO;gBACH,CAAC,EAAE,CAAC,GAAG,gBAAgB;gBACvB,CAAC,EAAE,CAAC,GAAG,kBAAkB;aAC5B,CAAC;AACN,SAAC,CAAC;KACL;;IAGO,oBAAoB,GAAA;AACxB,QAAA,IAAI,eAA+B,CAAC;AACpC,QAAA,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;AACzC,YAAA,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjF,SAAA;AAAM,aAAA;AACH,YAAA,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;AACzC,SAAA;AAED,QAAA,IAAI,eAAe,EAAE;AACjB,YAAA,OAAO,eAAe,CAAC;AAC1B,SAAA;AAAM,aAAA;YACH,OAAO,CAAC,IAAI,CAAC,CAAA,wBAAA,EAA2B,IAAI,CAAC,cAAc,CAA2B,yBAAA,CAAA,CAAC,CAAC;AACxF,YAAA,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACzC,SAAA;KACJ;;AAGO,IAAA,4BAA4B,CAAC,eAAwB,EAAA;QACzD,OAAO,CAAC,IAAgB,KAAI;AACxB,YAAA,MAAM,iBAAiB,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAC;YAClE,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAE/E,QAAQ,IAAI,CAAC,oBAAoB;AAC7B,gBAAA,KAAK,UAAU;oBACX,QACI,iBAAiB,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;wBACpD,iBAAiB,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EACxD;AACN,gBAAA,KAAK,WAAW;oBACZ,QACI,iBAAiB,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;wBACpD,iBAAiB,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAC1D;AACN,gBAAA,KAAK,aAAa;oBACd,QACI,iBAAiB,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;wBAC1D,iBAAiB,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EACxD;AACN,gBAAA,KAAK,cAAc;oBACf,QACI,iBAAiB,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;wBAC1D,iBAAiB,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAC1D;AACT,aAAA;AACL,SAAC,CAAC;KACL;;AAGO,IAAA,yBAAyB,CAAC,QAA6B,EAAA;AAC3D,QAAA,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CACrC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAC9B,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CACvC,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CACnC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,EAC/B,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CACrC,CAAC;AAEF,QAAA,OAAO,KAAK,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;KACxD;;AAGO,IAAA,wBAAwB,CAAC,QAA6B,EAAA;QAC1D,OAAO,QAAQ,CAAC,IAAI,CAChB,GAAG,CAAC,CAAC,QAAQ,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,EAC/C,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAC/E,CAAC;KACL;;4GA7NQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,6eA6BV,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FA7B1B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;0BAuC8D,QAAQ;4CAnCvC,cAAc,EAAA,CAAA;sBAAzC,KAAK;uBAAC,mBAAmB,CAAA;gBAIE,QAAQ,EAAA,CAAA;sBAAnC,KAAK;uBAAC,mBAAmB,CAAA;gBAIQ,oBAAoB,EAAA,CAAA;sBAArD,KAAK;uBAAC,yBAAyB,CAAA;gBAKO,wBAAwB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,0BAA0B,CAAA;gBAMvB,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAIG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAGiD,qBAAqB,EAAA,CAAA;sBAA5E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MClE7C,YAAY,CAAA;;yGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHX,OAAA,EAAA,CAAA,eAAe,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,+BAA+B,CAAA,EAAA,OAAA,EAAA,CAClG,eAAe,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,+BAA+B,CAAA,EAAA,CAAA,CAAA;0GAEnG,YAAY,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,eAAe,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,+BAA+B,CAAC;oBAC7G,OAAO,EAAE,CAAC,eAAe,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,+BAA+B,CAAC;AAChH,iBAAA,CAAA;;;ACWK,MAAO,mCAAoC,SAAQ,kBAAkB,CAAA;;gIAA9D,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAPjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC;AAChE,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAX/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC;AAChE,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAOY,iBAAiB,CAAA;;AAM1B,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAAI;;IAGpD,OAAO,GAAA;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;;8GAXQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;kGAIG,IAAI,EAAA,CAAA;sBADH,KAAK;uBAAC,aAAa,CAAA;;;MCnBX,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHb,iBAAiB,EAAE,mCAAmC,CACtD,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,mCAAmC,CAAA,EAAA,CAAA,CAAA;4GAEvD,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;AACpE,iBAAA,CAAA;;;ACcK,MAAO,mCAAoC,SAAQ,kBAAkB,CAAA;;gIAA9D,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAPjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,6BAA6B,CAAC;AAC/E,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAX/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,6BAA6B,CAAC;AAC/E,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAOY,iBAAiB,CAAA;AAC1B;;AAEG;IACH,IACI,gBAAgB,CAAC,KAAuB,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;KACxD;;AA4BD,IAAA,WAAA,CAA6B,WAAuB,EAAA;QAAvB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AA1BpD;;AAEG;QAEH,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;;QAGjB,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;;QAWxB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;KAQoB;AAExD;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;KACzC;AAED;;AAEG;IACH,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACrC,SAAA;KACJ;;IAED,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,SAAS,EAAE,CAAC;AACpB,SAAA;KACJ;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;;IAGO,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;AAExC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,OAAO;AACV,SAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,YAAA,EAAe,IAAI,CAAC,iBAAiB,CAAA,mEAAA,CAAqE,CAAC;QACxJ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;KAC3G;;8GA3EQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4CAA4C;AACtD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iGAMO,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBASN,gBAAgB,EAAA,CAAA;sBADf,KAAK;;;MC9BG,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHb,iBAAiB,EAAE,mCAAmC,CACtD,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,mCAAmC,CAAA,EAAA,CAAA,CAAA;4GAEvD,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;AACpE,iBAAA,CAAA;;;MCLY,4BAA4B,GAAG,IAAI,cAAc,CAAC,2BAA2B;;ACInF,MAAM,uBAAuB,GAAmB,OAAO;AAE9D;;AAEG;MAEU,qBAAqB,CAAA;;AAK9B,IAAA,WAAA,GAAA;;AAHS,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAC,uBAAuB,CAAC,CAAC;QAInE,IAAI,SAAS,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CACR,CAAA;AACqG,oHAAA,CAAA,CACxG,CAAC;AACL,SAAA;KACJ;;AAGD,IAAA,IAAI,uBAAuB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KACtG;;AAGD,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACzF;;kHAtBQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;ACPL,MAAO,gBAAiB,SAAQ,aAAmB,CAAA;;AAErD,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,CAAC,CAAC,CAAC;KACZ;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;;6GAVQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iHAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;MCIE,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,mBAAmB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAmGhE,KAAA;AAjGG;;;;;AAKG;IACH,eAAe,CACX,OAAkF,EAClF,WAAqB,EAAA;AAErB,QAAA,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QAErB,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEnD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAExC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAE5B,QAAA,OAAO,GAAG,CAAC;KACd;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAU,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;YAC5B,OAAO;AACV,SAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,EAAE,QAAQ,EAAE,CAAC;KACpB;AAED;;;AAGG;AACH,IAAA,mBAAmB,CAAC,EAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;YAC5B,OAAO;AACV,SAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,EAAE,UAAU,EAAE,CAAC;AAEnB,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACvC;AAED;;AAEG;IACH,qBAAqB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE;YACrC,OAAO;AACV,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE3C,QAAQ,EAAE,KAAK,EAAE,CAAC;KACrB;AAED;;AAEG;IACH,uBAAuB,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE;YACrC,OAAO;AACV,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE3C,QAAQ,EAAE,OAAO,EAAE,CAAC;KACvB;AAED;;;;AAIG;AACH,IAAA,oBAAoB,CAAC,EAAU,EAAA;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAC3C;;IAGO,kBAAkB,GAAA;AACtB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,CAAC;AAE5D,QAAA,OAAO,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;KAC7C;;AAGO,IAAA,gBAAgB,CAAC,EAAU,EAAA;QAC/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAC3C;;6GApGQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCKY,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAGI,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAwB,CAAC;;AAGrC,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;;AAGjD,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;AAalE;;AAEG;QACK,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AA8DpC,KAAA;;AAxEG,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;AAWD,IAAA,kBAAkB,CACd,SAAsD,EACtD,IAAc,EACd,gBAAgB,GAAG,IAAI,EAAA;AAEvB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;AAClF,QAAA,SAAS,CAAC,OAAO;AACZ,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;aAC/C,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;KAC7D;;AAGD,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AAC/B,YAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,gBAAA,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC;AAC7B,sBAAE,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE;AACzC,sBAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;AAC7C,aAAA;AACJ,SAAA;KACJ;;IAGD,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;KAC9B;;AAGO,IAAA,mBAAmB,CAAC,SAAsD,EAAA;QAC9E,MAAM,oBAAoB,GAAG,CACzB,QAA0C,EAC1C,SAAiB,EACjB,eAAqC,KAC/B;AACN,YAAA,QAAQ,CAAC,OAAO;AACX,iBAAA,IAAI,CACD,SAAS,CAAC,YAAY,CAAC,EACvB,MAAM,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EACtD,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,CAAC,CACzC;AACA,iBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACrE,SAAC,CAAC;;AAGF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAExB,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE/D,IAAI,SAAS,CAAC,MAAM,EAAE;YAClB,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACzD,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACzD,SAAA;KACJ;;mHArFQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACRlC,MAAM,WAAW,CAAA;;IAIb,GAAG,CAAC,KAAa,EAAA,GAAS;AAE1B,IAAA,KAAK,MAAW;;IAGhB,OAAO,CAAC,GAAW,EAAA,GAAS;;IAG5B,UAAU,CAAC,GAAW,EAAA,GAAU;;AAGhC,IAAA,OAAO,CAAC,GAAW,EAAE,KAAa,KAAU;AAC/C,CAAA;MAGY,mBAAmB,CAAA;;AAK5B,IAAA,WAAA,GAAA;QACI,OAAO,YAAY,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,CAAC;KAC9G;;AAGD,IAAA,GAAG,CAAC,GAAW,EAAA;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;;IAGD,GAAG,CAAC,GAAW,EAAE,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;;gHArBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCTrB,qBAAqB,CAAA;;AAE9B,IAAA,MAAM,CAAC,QAAgC,EAAA;AACnC,QAAA,OAAO,OAAO,cAAc,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;KACtF;;kHAJQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;MASrB,qBAAqB,CAAA;;AAK9B,IAAA,WAAA,CAAoB,sBAA6C,EAAA;QAA7C,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;;AAHzD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;KAGK;;IAGrE,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;KAClF;;AAGD,IAAA,OAAO,CAAC,YAA2C,EAAA;AAC/C,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AAE5C,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAyC,KAAI;YAChE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEjD,YAAA,OAAO,MAAK;gBACR,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACN;AAED;;;AAGG;AACK,IAAA,eAAe,CAAC,OAAgB,EAAA;QACpC,IAAI,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE1D,IAAI,CAAC,eAAe,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAyB,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3F,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,aAAA;YACD,eAAe,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACxD,SAAA;QACD,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,eAAe,EAAE,MAAM,CAAC;KAClC;AAED;;;AAGG;AACK,IAAA,iBAAiB,CAAC,OAAgB,EAAA;QACtC,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO;AACV,SAAA;AAED,QAAA,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE;YACzB,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;;AAGO,IAAA,gBAAgB,CAAC,OAAgB,EAAA;QACrC,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO;AACV,SAAA;AACD,QAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;AAC7C,QAAA,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,UAAU,EAAE,CAAC;AACzB,SAAA;QACD,MAAM,CAAC,QAAQ,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC1C;;kHA5EQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACflC;;AAEG;AACG,SAAU,gBAAgB,CAC5B,OAA4D,EAAA;IAE5D,IAAI,SAAS,GAAG,OAAO,CAAC;AACxB,IAAA,IAAI,eAAe,CAAI,OAAO,CAAC,EAAE;AAC7B,QAAA,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AACpC,KAAA;AACD,IAAA,OAAO,aAAa,CAAC,SAA8B,CAAC,CAAC;AACzD,CAAC;AAED;;AAEG;AACG,SAAU,eAAe,CAC3B,SAAc,EAAA;IAEd,OAAO,SAAS,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC;AACtE;;ACvBA;MAUa,iBAAiB,CAAA;;AAY1B,IAAA,WAAA,CAAoB,wBAAiD,EAAA;QAAjD,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAAyB;;AAVpD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,GAAG,EAOzC,CAAC;KAGqE;;IAGzE,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;KAClF;;AAGD,IAAA,OAAO,CAAC,YAAoE,EAAA;AACxE,QAAA,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAC/C,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAoC,KAAI;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEhD,YAAA,OAAO,MAAK;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC;AAC3B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,SAAS,CAAC,OAA+D,EAAA;QACrE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;KACrD;;AAGO,IAAA,eAAe,CAAC,OAAgB,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACtC,YAAA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAoB,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7F,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAC,CAAC;AACN,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC;AAChD,SAAA;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,MAAM,CAAC;KACtD;;AAGO,IAAA,iBAAiB,CAAC,OAAgB,EAAA;QACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACrC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE;AAC7C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAClC,aAAA;AACJ,SAAA;KACJ;;AAGO,IAAA,gBAAgB,CAAC,OAAgB,EAAA;QACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACrC,YAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;AAClE,YAAA,IAAI,QAAQ,EAAE;gBACV,QAAQ,CAAC,UAAU,EAAE,CAAC;AACzB,aAAA;YACD,MAAM,CAAC,QAAQ,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1C,SAAA;KACJ;;8GA3EQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,IAAA,CAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACJD,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAExG,MAAM,mBAAmB,GAAG;AACxB,IAAA;AACI,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,UAAU,EAAE;AACR,YAAA;AACI,gBAAA,IAAI,EAAE,iBAAiB;gBACvB,YAAY,EAAE,CAAC,KAAa,KAAK,qBAAqB,CAAC,KAAK,CAAC;AAChE,aAAA;AACJ,SAAA;AACJ,KAAA;CACJ,CAAC;AAEF;AACM,SAAU,2BAA2B,CAAC,EAA0D,EAAA;AAClG,IAAA,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC9C,IAAA,IAAI,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACzC,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AAED,IAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,UAAU,KAAI;AAC3C,QAAA,IAAI,UAAU,CAAC,GAAG,KAAK,OAAO,EAAE;YAC5B,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;gBAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACtD,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACjB,KAAC,CAAC,CAAC;AACP;;MC1Ba,gBAAgB,CAAA;;AAEzB,IAAA,WAAA,CAAoB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;KAAI;;IAG7D,OAAO,UAAU,CAAC,EAAW,EAAA;AACzB,QAAA,QACI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;AAC3B,YAAA,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM;YAC3C,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtC;KACL;;AAGD,IAAA,OAAO,CAAC,OAA+D,EAAA;AACnE,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,GAAG,CAAC,MAAM,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EACjE,oBAAoB,EAAE,CACzB,CAAC;KACL;;AAGD,IAAA,SAAS,CAAC,OAA+D,EAAA;AACrE,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KAC9C;;6GAxBQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCGY,iBAAiB,CAAA;;AAE1B,IAAA,WAAA,CAAoB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;KAAI;;AAG7D,IAAA,OAAO,WAAW,CAAC,OAAgB,EAAE,eAAwB,EAAA;AACzD,QAAA,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACtC,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IAAI,CAAC,eAAe,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AACrE,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;AACjB,YAAA,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAA;AAED,QAAA,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC;KACxB;;AAGD,IAAA,OAAO,CACH,OAA+D,EAC/D,eAAe,GAAG,IAAI,EAAA;AAEtB,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAChD,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CACtD,GAAG,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,EACxE,oBAAoB,EAAE,CACzB,CAAC;KACL;;AAGD,IAAA,SAAS,CAAC,OAA+D,EAAA;AACrE,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KAC9C;;8GArCQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;AC0BK,MAAO,gCAAiC,SAAQ,kBAAkB,CAAA;;6HAA3D,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAP9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AAC1E,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAX5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AAC1E,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAcY,sBAAsB,CAAA;;IAE/B,IACI,gBAAgB,CAAC,GAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;;AA6BD,IAAA,IACI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAClC;;IAGD,WACY,CAAA,WAAoC,EACpC,kBAAqC,EACrC,SAA2B,EAC3B,uBAA+C,EAC/C,cAA6B,EAAA;QAJ7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACpC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;;AApCzC,QAAA,IAAA,CAAA,yBAAyB,GAA8B,IAAI,CAAC,iCAAiC,CAAC;;AAIrF,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAyB,CAAC;;AAGjD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAiB,CAAC;;QAMjD,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;AAGlB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;;QAGnD,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAmBrB,QAAA,IAAI,CAAC,kBAAkB;AAClB,aAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;AAChC,aAAA,IAAI,CAACC,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,CAAC,WAAW,KAAI;YACvB,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,CAAC,gBAAgB,EAAE;AACvD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;AACvC,aAAA;AACL,SAAC,CAAC,CAAC;KACV;;IAGD,UAAU,GAAA;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;AAGD,IAAA,WAAW,CAAC,KAAc,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAClC,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACnC,SAAA;KACJ;;AAID,IAAA,MAAM,UAAU,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,OAAO;AACV,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AACvB,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO;AACV,SAAA;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtC,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChC,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,gBAAA,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACtF,aAAA;AACJ,SAAA;KACJ;;IAID,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,OAAO;AACV,SAAA;;AAGD,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;KAC5D;;AAID,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,OAAO;AACV,SAAA;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;AAC1G,QAAA,MAAM,eAAe,GACjB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAEzG,QAAA,IAAI,gBAAgB,EAAE;YAClB,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CACnE,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAC/B,KAAK,EACL,IAAI,CACP,CAAC;YAEF,eAAe,EAAE,KAAK,EAAE,CAAC;YAEzB,OAAO;AACV,SAAA;AAAM,aAAA,IAAI,eAAe,EAAE;YACxB,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAEvC,OAAO;AACV,SAAA;AAED,QAAA,IAAI,SAAS,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAA;KACJ;;IAGO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE;YACnC,OAAO;AACV,SAAA;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,OAAO,MAAM,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;;IAGO,wBAAwB,GAAA;;;AAG5B,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAc,GAAG,CAAC,CAAC;aACxE,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;AAClC,aAAA,OAAO,CAAC,CAAC,GAAG,KAAI;YACb,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9C,YAAA,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACV;;AAGO,IAAA,iCAAiC,CAAC,QAA+B,EAAA;QACrE,OAAO,CAAA,OAAA,EAAU,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA,IAAA,EAAO,QAAQ,CAAC,SAAS,UAAU,QAAQ,CAAC,QAAQ,GAAG,CAAC,OAC1F,QAAQ,CAAC,SACb,CAAA,CAAE,CAAC;KACN;;mHAhLQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EARpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,WAAW,EAAE,sBAAsB;AACtC,SAAA;QACD,gBAAgB;AACnB,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAXlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAwB,sBAAA;AACtC,yBAAA;wBACD,gBAAgB;AACnB,qBAAA;AACJ,iBAAA,CAAA;0NAIO,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBAYN,yBAAyB,EAAA,CAAA;sBADxB,KAAK;gBAKG,WAAW,EAAA,CAAA;sBADnB,MAAM;gBAuBH,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,eAAe,CAAA;gBAyCtB,UAAU,EAAA,CAAA;sBADf,YAAY;uBAAC,SAAS,CAAA;gBAwBvB,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,UAAU,CAAA;gBAYxB,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC5J1B,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHlB,sBAAsB,EAAE,gCAAgC,CACxD,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,gCAAgC,CAAA,EAAA,CAAA,CAAA;iHAEzD,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;AACnE,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;AACtE,iBAAA,CAAA;;;MCJY,4BAA4B,GAAG,IAAI,cAAc,CAAC,sBAAsB;;ACArF;;AAEG;AACH;AACM,SAAU,UAAU,CAAC,GAAQ,EAAA;AAC/B,IAAA,OAAO,GAAG,KAAK,IAAI,KAAK,OAAO,GAAG,KAAK,UAAU,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AAClF,CAAC;AAED;;AAEG;AACG,SAAU,SAAS,CAAC,GAAQ,EAAA;AAC9B,IAAA,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;AAEG;AACG,SAAU,OAAO,CAAC,GAAQ,EAAA;AAC5B,IAAA,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;AAEG;AACG,SAAU,SAAS,CAAC,GAAQ,EAAA;AAC9B,IAAA,OAAO,OAAO,GAAG,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;AAEG;AACG,SAAU,QAAQ,CAAC,GAAQ,EAAA;AAC7B,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;AAEG;AACG,SAAU,QAAQ,CAAC,GAAQ,EAAA;AAC7B,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;AAEG;AACG,SAAU,UAAU,CAAC,GAAQ,EAAA;AAC/B,IAAA,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACrC,CAAC;AAED;AACA;AACM,SAAU,MAAM,CAAC,GAAQ,EAAA;AAC3B,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;AAEG;AACG,SAAU,WAAW,CAAU,GAAQ,EAAA;IACzC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACnD,CAAC;AAED;;AAEG;AACG,SAAU,QAAQ,CAAI,IAAO,EAAA;AAC/B,IAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC;AAC7E,CAAC;AAED;;AAEG;AACG,SAAU,SAAS,CAAU,GAAQ,EAAA;;;IAGvC,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;AAEG;AACG,SAAU,cAAc,CAAU,GAAwB,EAAA;IAC5D,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9C;;ACnFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CG;MACU,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;;QAEY,IAAsB,CAAA,sBAAA,GAAkB,IAAI,CAAC;KA4ExD;AAxEG;;;AAGG;AACH,IAAA,IAAI,uBAAuB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;KAClD;AAED;;;;;;;;;;;AAWG;IACH,qBAAqB,CAAC,KAAc,EAAE,KAA+C,EAAA;AACjF,QAAA,IACI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACvD,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,QAAQ,EACjB;YACE,IAAI,CAAC,MAAM,GAAG;AACV,gBAAA,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC;gBAClD,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC;aACnD,CAAC;AACF,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACvC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAClE,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACvC,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC;KACvC;AAED;;;;;AAKG;AACH,IAAA,uBAAuB,CAAC,eAAwC,EAAA;AAC5D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;AACV,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE;AAClF,YAAA,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBACrD,eAAe,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAA;AACJ,SAAA;KACJ;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;KACtC;;AAGO,IAAA,qBAAqB,CAAC,GAAqB,EAAA;QAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;KACpC;AACJ;;ACzHD;AACgB,SAAA,cAAc,CAAC,OAA8B,EAAE,QAAkC,EAAA;AAC7F,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO;AACV,KAAA;AAED,IAAA,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAElD,IAAA,IAAI,gBAAgB,EAAE;QAClB,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;AACrE,QAAA,QAAQ,QAAQ;AACZ,YAAA,KAAK,KAAK;AACN,gBAAA,gBAAgB,CAAC,SAAS,GAAG,aAAa,CAAC;gBAC3C,MAAM;AACV,YAAA,KAAK,QAAQ;AACT,gBAAA,gBAAgB,CAAC,SAAS,GAAG,aAAa,IAAI,gBAAgB,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;gBACpG,MAAM;AACb,SAAA;AACJ,KAAA;AACL,CAAC;AAED,SAAS,eAAe,CAAC,IAAwB,EAAA;IAC7C,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;IAED,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE;AACxG,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AAAM,SAAA;AACH,QAAA,OAAO,eAAe,CAAC,IAAI,CAAC,UAAyB,CAAC,CAAC;AAC1D,KAAA;AACL;;ACqCM,MAAO,gCAAiC,SAAQ,kBAAkB,CAAA;;6HAA3D,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAP9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AAC1E,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAX5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AAC1E,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAeY,sBAAsB,CAAA;;IAE/B,IACI,SAAS,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;AACD,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;;AAqDD,IAAA,IACI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAClC;;IAMD,WACY,CAAA,SAAoB,EACpB,SAA2B,EAC3B,WAAoC,EACpC,cAA6B,EAC7B,kBAAqC,EAAA;QAJrC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACpC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC7B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;;QAhEzC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAI3B,IAAmB,CAAA,mBAAA,GAAuC,UAAU,CAAC;;QAIrE,IAAgB,CAAA,gBAAA,GAAyB,KAAK,CAAC;AAE/C;;AAEG;QAEH,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;;AAIb,QAAA,IAAA,CAAA,yBAAyB,GAAgD,IAAI,CAAC,iCAAiC,CAAC;;AAIvG,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAiC,CAAC;;AAOzD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAyB,CAAC;;AAGzD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAyB,CAAC;;AAGzD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAA6B,CAAC;;QAS7D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAGT,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAStD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAUf,QAAA,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACtE,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAEhF,QAAA,IAAI,CAAC,kBAAkB;AAClB,aAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;AAChC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,CAAC,WAAW,KAAI;YACvB,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,CAAC,SAAS,EAAE;AAChD,gBAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;AAChC,aAAA;AACL,SAAC,CAAC,CAAC;KACV;;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;AACV,SAAA;AAED,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC9E,SAAA;AAED,QAAA,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;YAChC,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACrC,SAAA;KACJ;;IAGD,eAAe,GAAA;QACX,IAAI,CAAC,eAAe,CAAC,OAAO;aACvB,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAC/B,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,EACvC,GAAG,CAAC,CAAC,KAA+B,KAAU;AAC1C,YAAA,MAAM,cAAc,GAAoB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM;gBAChE,KAAK;AACL,gBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,gBAAgB;AACtC,gBAAA,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;AACnC,gBAAA,KAAK,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;gBACpD,OAAO,EAAE,IAAI,CAAC,SAAS;AAC1B,aAAA,CAAC,CAAC,CAAC;AAEJ,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,KAAK,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAEhG,YAAA,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,IAAI,EAAE;gBAC/C,SAAS;gBACT,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,IAAI,EAAE,IAAI,CAAC,IAAI;AAClB,aAAA,CAAC,CAAC;SACN,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,EAAE,CAAC;KACpB;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;KAC/B;;AAID,IAAA,UAAU,CAAC,KAAoB,EAAA;;QAE3B,IAAI,KAAK,CAAC,gBAAgB,EAAE;YACxB,OAAO;AACV,SAAA;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;AAC1G,QAAA,MAAM,eAAe,GACjB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAEzG,QAAA,IAAI,gBAAgB,EAAE;YAClB,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,YAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAEtB,OAAO;AACV,SAAA;AAAM,aAAA,IAAI,eAAe,EAAE;YACxB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,OAAO;AACV,SAAA;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,IAAI,EAAE,CAAC,CAAC;KAC1G;;IAGD,aAAa,CAAC,KAAa,EAAE,cAA+B,EAAA;AACxD,QAAA,IAAI,cAAc,CAAC;QAEnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,KAAI;AAC1C,YAAA,IAAI,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAC7C,cAAc,GAAG,SAAS,CAAC;AAC3B,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC,CAAC;QAEH,IAAI,cAAc,IAAI,IAAI,EAAE;AACxB,YAAA,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACrG,YAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;AACnD,SAAA;KACJ;;AAGD,IAAA,KAAK,CAAC,cAA+B,EAAA;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1C,SAAA;KACJ;;AAGD,IAAA,WAAW,CAAC,KAAc,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;;AAID,IAAA,MAAM,QAAQ,GAAA;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAEhD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvF,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1B,SAAA;KACJ;;IAGD,0BAA0B,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;AACV,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,UAAU,EAAE;YACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC;AACjG,SAAA;KACJ;;AAGD,IAAA,iBAAiB,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KACnE;;AAGD,IAAA,gBAAgB,CAAC,QAA+B,EAAA;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAE9B,IAAI,CAAC,eAAe,CAAC,OAAO;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAChE,SAAS,CAAC,CAAC,KAAK,KACb,KAAK,CAAC,OAAO,CACT,CAAC,IAAI,EAAE,KAAK,MACP,IAAI,CAAC,SAAS,GAAG;YACd,GAAG,IAAI,CAAC,aAAa;AACrB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;SACzC,CAAC,CACT,CACJ,CAAC;KACT;;AAGO,IAAA,uBAAuB,CAC3B,KAAsB,EACtB,IAA4B,EAC5B,SAA8B,EAAE,EAAA;AAEhC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAE3B,IAAI,UAAU,GAAG,IAAI,eAAe,CAAM,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;AAElE,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;AACvB,YAAA,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;AACtC,SAAA;AAED,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,YAAY,EAAE;AACnC,YAAA,UAAU,GAAG,UAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC;;AAGpF,YAAA,UAAU,GAAG,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAA;AAED,QAAA,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAE/G,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAE9B,MAAM,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAClD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAK;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,EAAE;gBAChB,OAAO;AACV,aAAA;YAED,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AACxD,aAAA;AAED,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/C,CAAC,CACL,CAAC;AAEF,QAAA,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,aAAA,IAAI,CACD,GAAG,CAAC,CAAC,KAAoB,KAAI;;YAEzB,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBACxB,OAAO;AACV,aAAA;AAED,YAAA,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,EACF,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EACrD,QAAQ,CAAC,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAC9D;AACA,aAAA,SAAS,EAAE,CAAC;KACpB;;AAGO,IAAA,iCAAiC,CAAC,QAA+B,EAAA;QACrE,OAAO,CAAA,KAAA,EAAQ,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA,IAAA,EAAO,QAAQ,CAAC,SAAS,CAAA,gDAAA,CAAkD,CAAC;KACnH;;mHA3TQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EARpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,WAAW,EAAE,sBAAsB;AACtC,SAAA;QACD,gBAAgB;AACnB,KAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAwCgB,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAtCpC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAwB,sBAAA;AACtC,yBAAA;wBACD,gBAAgB;AACnB,qBAAA;AACJ,iBAAA,CAAA;gNAIO,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAeN,mBAAmB,EAAA,CAAA;sBADlB,KAAK;gBAKN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAON,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,yBAAyB,EAAA,CAAA;sBADxB,KAAK;gBAKG,WAAW,EAAA,CAAA;sBADnB,MAAM;gBAKS,eAAe,EAAA,CAAA;sBAD9B,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,4BAA4B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBA0BhE,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,eAAe,CAAA;gBAgF5B,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBA+D7B,QAAQ,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;MC1RZ,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHlB,mBAAmB,EAAE,sBAAsB,EAAE,gCAAgC,CAAA,EAAA,OAAA,EAAA,CAC7E,sBAAsB,EAAE,mBAAmB,EAAE,gCAAgC,CAAA,EAAA,CAAA,CAAA;iHAE9E,mBAAmB,EAAA,OAAA,EAAA,CAHlB,mBAAmB,EACK,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAE5C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,gCAAgC,CAAC;AACxF,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,gCAAgC,CAAC;AAC3F,iBAAA,CAAA;;;MCLY,4BAA4B,GAAG,IAAI,cAAc,CAAC,gCAAgC;;MC4BlF,sBAAsB,CAAA;;IAM/B,IACI,gBAAgB,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACzD;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;;AAsBD,IAAA,WAAA,CAA6B,SAA2B,EAAA;QAA3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;;QAhCxD,IAAgB,CAAA,gBAAA,GAAyB,KAAK,CAAC;;QAc/C,IAAa,CAAA,aAAA,GAA+B,IAAI,CAAC;;AAIxC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAyB,CAAC;;AAIxD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAyB,CAAC;;QAGxD,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KAO0B;;IAG5D,eAAe,GAAA;QACX,IAAI,CAAC,eAAe,CAAC,OAAO;AACvB,aAAA,IAAI,CAACC,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAER,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChE,aAAA,SAAS,CAAC,CAAC,KAAK,KACb,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KACtB,IAAI,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CACrF,CACJ,CAAC;QAEN,IAAI,CAAC,eAAe,CAAC,OAAO;AACvB,aAAA,IAAI,CACDQ,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAC/B,SAAS,CAAC,CAAC,SAA4C,KACnD,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CACtE,EACDR,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEnC,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,eAAe,CAAC,OAAO;AACvB,aAAA,IAAI,CACDQ,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAC/B,SAAS,CAAC,CAAC,SAA4C,KACnD,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CACtE,EACDR,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEpC,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,eAAe,CAAC,OAAO;AACvB,aAAA,IAAI,CACDQ,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAC/B,SAAS,CAAC,CAAC,SAA4C,KACnD,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAC9D,EACDR,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;aACA,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;KACvG;AAED;;;AAGG;AACH,IAAA,SAAS,CAAC,QAA+B,EAAA;AACrC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzD,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzC,SAAA;KACJ;;AAGD,IAAA,UAAU,CAAC,KAAoB,EAAE,IAA4B,EAAE,eAAiC,EAAA;QAC5F,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE;YAChG,OAAO;AACV,SAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;AAC7C,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;AACjE,QAAA,IAAI,YAAgC,CAAC;AACrC,QAAA,IAAI,gBAAgB,GAAG,eAAe,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,cAA8B,CAAC;QAEnC,MAAM,cAAc,GAAG,eAAe,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC;AAChF,QAAA,MAAM,aAAa,GAAG,eAAe,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC;QAE7G,MAAM,cAAc,GAAG,eAAe,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC;AAChF,QAAA,MAAM,aAAa,GAAG,eAAe,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC;QAE7G,QAAQ,KAAK,CAAC,OAAO;AACjB,YAAA,KAAK,QAAQ;gBACT,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,gBAAA,YAAY,GAAG,eAAe,GAAG,CAAC,CAAC;gBACnC,MAAM;AACV,YAAA,KAAK,UAAU;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,gBAAA,YAAY,GAAG,eAAe,GAAG,CAAC,CAAC;gBACnC,MAAM;AACV,YAAA,KAAK,UAAU;gBACX,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,IAAI,aAAa,CAAC,EAAE;oBAC5D,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,oBAAA,YAAY,GAAG,eAAe,GAAG,CAAC,CAAC;oBACnC,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AACtE,iBAAA;gBACD,MAAM;AACV,YAAA,KAAK,WAAW;gBACZ,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,IAAI,aAAa,CAAC,EAAE;oBAC5D,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,oBAAA,YAAY,GAAG,eAAe,GAAG,CAAC,CAAC;oBACnC,gBAAgB,GAAG,CAAC,CAAC;AACxB,iBAAA;gBACD,MAAM;AACV,YAAA,KAAK,SAAS;gBACV,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,gBAAA,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/D,cAAc,GAAG,KAAK,CAAC;gBACvB,MAAM;AACV,YAAA,KAAK,OAAO;gBACR,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,gBAAA,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1D,cAAc,GAAG,QAAQ,CAAC;gBAC1B,MAAM;AACb,SAAA;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,IAAI,OAAO,EAAE;YACT,IAAI,OAAO,CAAC,SAAS,EAAE;AACnB,gBAAA,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC9B,OAAO;AACV,aAAA;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAChE,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,gBAAA,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACpD,aAAA;AACJ,SAAA;KACJ;;IAGO,aAAa,CAAC,IAA4B,EAAE,WAAmB,EAAA;QACnE,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AAC/D,YAAA,OAAO,WAAW,CAAC;AACtB,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;KAC/E;;mHAjLQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EARpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,WAAW,EAAE,sBAAsB;AACtC,SAAA;QACD,gBAAgB;AACnB,KAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAiCgB,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FA/BpC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAwB,sBAAA;AACtC,yBAAA;wBACD,gBAAgB;AACnB,qBAAA;AACJ,iBAAA,CAAA;oGAIG,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAKF,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBAWN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAKG,WAAW,EAAA,CAAA;sBADnB,MAAM;gBAKE,UAAU,EAAA,CAAA;sBADlB,MAAM;gBAQU,eAAe,EAAA,CAAA;sBAD/B,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,4BAA4B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;;;MCrD3D,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHlB,mBAAmB,EAAE,sBAAsB,CAC3C,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;iHAE5C,mBAAmB,EAAA,OAAA,EAAA,CAHlB,mBAAmB,EACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAEpB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;AACtD,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;AACzD,iBAAA,CAAA;;;MCLY,sBAAsB,GAAG,IAAI,cAAc,CAAC,0BAA0B;;ACEnF;AACgB,SAAA,gBAAgB,CAC5B,OAA+D,EAC/D,UAAmB,EAAA;AAEnB,IAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC9C,IAAA,IAAI,UAAU,EAAE;AACZ,QAAA,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACzC,QAAA,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC5C,KAAA;AAAM,SAAA;AACH,QAAA,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC5C,QAAA,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC3C,KAAA;AACL;;ACQM,MAAO,mCAAoC,SAAQ,kBAAkB,CAAA;;gIAA9D,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAPjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC;AAChE,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAX/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC;AAChE,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;AAcK,MAAO,yBACT,SAAQ,aAAsB,CAAA;;IAI9B,IACI,WAAW,CAAC,KAAmB,EAAA;QAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3D;AAED,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;IAQD,WAAoB,CAAA,WAAoC,EAAU,SAA2B,EAAA;QACzF,KAAK,CAAC,CAAC,CAAC,CAAC;QADO,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;;QAL7F,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAED,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;;AAQ9D,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAmB,KAAU;AAC7C,YAAA,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AACnD,SAAC,CAAC;KALD;;IAQD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,eAAe;AACf,aAAA,IAAI,CACD,GAAG,CAAC,CAAC,UAAU,KAAI;AACf,YAAA,IAAI,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE;AAC/B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;AAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzB,aAAA;SACJ,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,EAAE,CAAC;KACpB;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;;sHAhDQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EARvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,WAAW,EAAE,yBAAyB;AACzC,SAAA;QACD,gBAAgB;AACnB,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,WAAW,EAA2B,yBAAA;AACzC,yBAAA;wBACD,gBAAgB;AACnB,qBAAA;AACJ,iBAAA,CAAA;6HAOO,WAAW,EAAA,CAAA;sBADd,KAAK;;;MCpCG,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAHrB,yBAAyB,EAAE,mCAAmC,CAC9D,EAAA,OAAA,EAAA,CAAA,yBAAyB,EAAE,mCAAmC,CAAA,EAAA,CAAA,CAAA;oHAE/D,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,mCAAmC,CAAC;AACzE,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,mCAAmC,CAAC;AAC5E,iBAAA,CAAA;;;MCIY,gBAAgB,CAAA;;AAEzB,IAAA,WAAA,CAAoB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;KAAI;;IAG7D,OAAO,UAAU,CAAC,OAAgB,EAAA;AAC9B,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;KACxF;;AAGD,IAAA,OAAO,CAAC,OAA+D,EAAA;AACnE,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,GAAG,CAAC,MAAM,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EACjE,oBAAoB,EAAE,CACzB,CAAC;KACL;;AAGD,IAAA,SAAS,CAAC,OAA+D,EAAA;AACrE,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KAC9C;;6GApBQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCLY,2BAA2B,CAAA;;AAEpC,IAAA,WAAA,CAAoB,UAA+B,EAAA;QAA/B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;;AAGnD,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAmB,KAAU;AAC7C,YAAA,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAClD,SAAC,CAAC;KALqD;AAM1D;;ACFK,MAAO,mBAAoB,SAAQ,aAAsB,CAAA;;IAgB3D,WACY,CAAA,MAAc,EACd,UAA+B,EAC/B,gBAAkC,EACkB,aAA+B,EAC3B,eAAiC,EAAA;QAEjG,KAAK,CAAC,CAAC,CAAC,CAAC;QAND,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;QAC/B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QACkB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC3B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;;QAnBrG,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;QAGH,IAAe,CAAA,eAAA,GAA4C,IAAI,eAAe,CAE7F,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;;AAG3B,QAAA,IAAA,CAAA,gBAAgB,GAAwB,IAAI,CAAC,mBAAmB,EAAE,CAAC;;AAG1D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;QAW7C,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aACvD,IAAI,CACD,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EACxD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,gBAAgB;AAChB,aAAA,IAAI,CACD,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,EACpD,GAAG,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAC1C,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,EAAE,CAAC;KACpB;;AAGD,IAAA,eAAe,CAAC,QAA8B,EAAA;QAC1C,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC5C;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAChC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAK;AAC3C,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AACpG,SAAC,CAAC,CAAC;KACN;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACpD;;IAGO,mBAAmB,GAAA;QACvB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe;AACf,iBAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAC3C,GAAG,CAAC,CAAC,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,EAChC,oBAAoB,EAAE,EACtB,GAAG,CAAC,MAAK;AACL,gBAAA,IAAI,cAAc,EAAE;AAChB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC/B,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE;AAClC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChC,iBAAA;aACJ,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,iBAAA,SAAS,EAAE,CAAC;AACpB,SAAA;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa;AACb,iBAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EACzC,GAAG,CAAC,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,EAC9B,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,UAAU,KAAI;gBACf,IAAI,CAAC,cAAc,EAAE;AACjB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACrC,iBAAA;aACJ,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,iBAAA,SAAS,EAAE,CAAC;AACpB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KACtF;;IAGO,wBAAwB,GAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC1G;;gHAxGQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,gBAAA,EAAA,EAAA,EAAA,KAAA,EAoBI,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAClB,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHArBjD,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;0BAqBF,QAAQ;;0BAAI,IAAI;;0BAAI,MAAM;2BAAC,sBAAsB,CAAA;;0BACjD,QAAQ;;0BAAI,QAAQ;;0BAAI,MAAM;2BAAC,sBAAsB,CAAA;;;AC3B9D;AACM,SAAU,gBAAgB,CAC5B,OAA+D,EAC/D,UAAmB,EACnB,aAAqB,EACrB,gBAAyB,EAAA;AAEzB,IAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC9C,IAAA,IAAI,UAAU,EAAE;AACZ,QAAA,IAAI,gBAAgB,EAAE;AAClB,YAAA,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACzC,QAAA,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACrD,KAAA;AAAM,SAAA;AACH,QAAA,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC5C,QAAA,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACxC,QAAA,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AAChD,KAAA;AACL;;MCpBa,sBAAsB,GAAG,IAAI,cAAc,CAAmB,0BAA0B;;ACgB/F,MAAO,0BAA2B,SAAQ,kBAAkB,CAAA;;uHAArD,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAPxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC;AAC9D,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAXtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC;AAC9D,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;MAMY,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAQI;;;;AAIG;AACO,QAAA,IAAA,CAAA,UAAU,GAA2C,IAAI,YAAY,EAAE,CAAC;AACrF,KAAA;;AAVG;;AAEG;AACI,gBAAS,CAAA,SAAA,GAAG,YAAY,CAAC;6GAJvB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AAC3B,iBAAA,CAAA;8BAWa,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MCzBE,kBAAkB,CAAA;;IAE3B,WAAsC,CAAA,QAAkB,EAA+B,UAAe,EAAA;QAAhE,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAA+B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;KAAI;;AAG1G,IAAA,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAA6B,EAAA;QACnF,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACpD;;AAGD,IAAA,sBAAsB,CAClB,kBAA0B,EAC1B,SAAiB,EACjB,OAA6B,EAAA;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnD;;AAGD,IAAA,QAAQ,CAAC,SAAiB,EAAA;AACtB,QAAA,OAAO,SAAS,KAAK,gBAAgB,CAAC,SAAS,CAAC;KACnD;;AAGO,IAAA,wBAAwB,CAAC,QAAgB,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC;AACxB,SAAA;AACD,QAAA,QAAQ,QAAQ;AACZ,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,MAAM,CAAC;AAClB,YAAA,KAAK,UAAU;AACX,gBAAA,OAAO,QAAQ,CAAC;AACpB,YAAA,KAAK,MAAM;gBACP,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAA,gBAAA,CAAkB,CAAC,CAAC;AACxE,SAAA;KACJ;;IAGO,kBAAkB,CAAC,MAAmB,EAAE,OAA6B,EAAA;QACzE,MAAM,gBAAgB,GAAG,MAAW;YAChC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAC7D,SAAC,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAW;YACnC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAChE,SAAC,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,CAAC,KAAyC,KAAU;YACtE,IAAI,KAAK,YAAY,aAAa,EAAE;gBAChC,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE;oBACpD,OAAO;AACV,iBAAA;AACJ,aAAA;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;AACnB,SAAC,CAAC;AAEF,QAAA,gBAAgB,EAAE,CAAC;AAEnB,QAAA,OAAO,mBAAmB,CAAC;KAC9B;;+GAjEQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAEP,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAsC,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAFpE,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;0BAGM,MAAM;2BAAC,QAAQ,CAAA;;0BAA+B,MAAM;2BAAC,WAAW,CAAA;;;ACNjF,MAAM,sCAAsC,GAAG,IAAI,cAAc,CAC7D,2CAA2C,EAC3C,EAAE,OAAO,EAAE,MAAM,KAAK,EAAE,CAC3B,CAAC;MAMW,qBAAqB,CAAA;;AAE9B,IAAA,WAAA,CAA4D,sCAA+C,EAAA;AACvG,QAAA,IAAI,CAAC,sCAAsC,IAAI,SAAS,EAAE,EAAE;AACxD,YAAA,OAAO,CAAC,IAAI,CACR,iHAAiH,CACpH,CAAC;AACL,SAAA;KACJ;;AAGD,IAAA,OAAO,OAAO,GAAA;QACV,OAAO;AACH,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,qBAAqB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACD,gBAAA;AACI,oBAAA,OAAO,EAAE,sCAAsC;AAC/C,oBAAA,QAAQ,EAAE,IAAI;AACjB,iBAAA;AACJ,aAAA;SACJ,CAAC;KACL;;AA1BQ,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAEV,sCAAsC,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mHAFjD,qBAAqB,EAAA,YAAA,EAAA,CAHf,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACrB,gBAAgB,CAAA,EAAA,CAAA,CAAA;mHAEjB,qBAAqB,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC9B,iBAAA,CAAA;;0BAGgB,MAAM;2BAAC,sCAAsC,CAAA;;;ACTxD,MAAO,kBAAmB,SAAQ,OAAmC,CAAA;;AASvE,IAAA,WAAA,CACY,WAAgC,EAChC,SAAoB,EACW,mBAA0B,EAAA;AAEjE,QAAA,KAAK,EAAE,CAAC;QAJA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;QAChC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACW,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAO;;QAV7D,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAa3B,QAAA,IAAI,CAAC,mCAAmC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,kBAAkB,CAAC,CAAC;QAC9G,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;;AAGD,IAAA,iBAAiB,CAAC,GAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;KAC9B;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;;IAGO,WAAW,GAAA;AACf,QAAA,MAAM,UAAU,GAAa,IAAI,CAAC,mCAAmC;AACjE,cAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC;cAC5B,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,KAAiC,KAAI;YACnG,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1B,aAAA;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB,CAAC,CACL,CAAC;KACL;;AA3CQ,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,qEAYf,qBAAqB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAZxB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;0BAaF,MAAM;2BAAC,qBAAqB,CAAA;;;ACQ/B,MAAO,mCAAoC,SAAQ,kBAAkB,CAAA;;gIAA9D,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAPjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC;AAChE,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAX/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC;AAChE,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;AAeK,MAAO,yBACT,SAAQ,aAAsB,CAAA;;IAI9B,IACI,WAAW,CAAC,KAAmB,EAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpC;AAED,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;AAoBD,IAAA,WAAA,CACY,WAAoC,EACpC,SAA2B,EAC3B,QAA4B,EAAA;QAEpC,KAAK,CAAC,CAAC,CAAC,CAAC;QAJD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACpC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAoB;AArBxC;;AAEG;QAEH,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;AAExB;;AAEG;QAEH,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;;QAGtB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAET,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;;AAYhE,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAmB,KAAU;AAC7C,YAAA,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC9F,SAAC,CAAC;KALD;;IAQD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,iBAAiB;aACjB,IAAI,CACDC,QAAM,CAAC,CAAC,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,EACrD,GAAG,CAAC,CAAC,UAAU,KAAI;AACf,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzB,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,EAAE,CAAC;KACpB;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;;sHAjEQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EATvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,WAAW,EAAE,yBAAyB;AACzC,SAAA;QACD,gBAAgB;QAChB,kBAAkB;AACrB,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,WAAW,EAA2B,yBAAA;AACzC,yBAAA;wBACD,gBAAgB;wBAChB,kBAAkB;AACrB,qBAAA;AACJ,iBAAA,CAAA;2JAOO,WAAW,EAAA,CAAA;sBADd,KAAK;gBAeN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAON,aAAa,EAAA,CAAA;sBADZ,KAAK;;;MC3DG,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAHrB,yBAAyB,EAAE,mCAAmC,CAC9D,EAAA,OAAA,EAAA,CAAA,yBAAyB,EAAE,mCAAmC,CAAA,EAAA,CAAA,CAAA;oHAE/D,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,mCAAmC,CAAC;AACzE,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,mCAAmC,CAAC;AAC5E,iBAAA,CAAA;;;MCFY,2BAA2B,CAAA;;AAEpC,IAAA,WAAA,CAAoB,UAA+B,EAAA;QAA/B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;;AAGnD,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAmB,KAAU;YAC7C,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACvE,SAAC,CAAC;KALqD;AAM1D;;ACFK,MAAO,mBAAoB,SAAQ,aAAsB,CAAA;;IAa3D,WACY,CAAA,MAAc,EACd,UAAmC,EACnC,gBAAkC,EACkB,aAAgC,EAC5B,eAAkC,EAAA;QAElG,KAAK,CAAC,CAAC,CAAC,CAAC;QAND,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QACkB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAmB;QAC5B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAmB;;QAhBtG,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;AAEH,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAEhC,IAAe,CAAA,eAAA,GAA4C,IAAI,eAAe,CAE7F,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;;AAE3B,QAAA,IAAA,CAAA,gBAAgB,GAAwB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAWvE,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aACvD,IAAI,CACD,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EACxD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,gBAAgB;AAChB,aAAA,IAAI,CACD,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,EACpD,GAAG,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAC1C,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,aAAA,SAAS,EAAE,CAAC;KACpB;;AAGD,IAAA,eAAe,CAAC,QAA8B,EAAA;QAC1C,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC5C;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAChC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAK;AAC3C,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AACpG,SAAC,CAAC,CAAC;KACN;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACpD;;IAGO,mBAAmB,GAAA;QACvB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe;AACf,iBAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAC3C,GAAG,CAAC,CAAC,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,EAChC,oBAAoB,EAAE,EACtB,GAAG,CAAC,MAAK;AACL,gBAAA,IAAI,cAAc,EAAE;AAChB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC/B,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE;AAClC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChC,iBAAA;aACJ,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,iBAAA,SAAS,EAAE,CAAC;AACpB,SAAA;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa;AACb,iBAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EACzC,GAAG,CAAC,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,EAC9B,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,UAAU,KAAI;gBACf,IAAI,CAAC,cAAc,EAAE;AACjB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACrC,iBAAA;aACJ,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;AACA,iBAAA,SAAS,EAAE,CAAC;AACpB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KACtF;;IAGO,wBAAwB,GAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC1G;;gHApGQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAiBI,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAClB,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAlBjD,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;0BAkBF,QAAQ;;0BAAI,IAAI;;0BAAI,MAAM;2BAAC,sBAAsB,CAAA;;0BACjD,QAAQ;;0BAAI,QAAQ;;0BAAI,MAAM;2BAAC,sBAAsB,CAAA;;;MCnBjD,gBAAgB,CAAA;;AAoBzB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;AAblC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,CAAqC,CAAC,CAAC,CAAC;;AAMnE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAEhC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAE9B,IAAM,CAAA,MAAA,GAAgB,EAAE,CAAC;AAI7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACtC,oBAAoB,CAAC,KAAK,CAAC,EAC3B,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAY,CAAC,CAAC,CAAC,EACrC,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,eAAe,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3D,GAAG,CAAC,CAAC,OAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACzD,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACrC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAyC,CAAC,CAAC,EAC5E,WAAW,CAAC,CAAC,CAAC,CACjB,CAAC;KACL;AAED;;AAEK;AACL,IAAA,qBAAqB,CAAC,aAAoD,EAAA;AACtE,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;KACvC;AAED;;AAEG;IACH,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACvB;AAED;;AAEK;AACL,IAAA,UAAU,CAAC,SAAiE,EAAA;AACxE,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CACjC,SAAS,CAAC,SAAS,CAAC,EACpB,GAAG,CAAC,CAAC,KAA6D,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,EACvF,WAAW,CAAC,CAAC,CAAC,CACjB,CAAC;QACF,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;AAED;;AAEK;AACL,IAAA,QAAQ,CAAC,CAAuC,EAAA;AAC5C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxB;;IAGD,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAA8C,CAAC,CAAC;KACrF;AAED;;;AAGK;IACL,wBAAwB,GAAA;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO;AACP,iBAAA,IAAI,CACD,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,EACtE,SAAS,CAAC,CAAC,KAAoD,KAAI;gBAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,gBAAA,OAAO,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC;aACnC,CAAC,EACF,GAAG,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EACpD,SAAS,CAAC,YAAY,CAAC,CAC1B;AACA,iBAAA,SAAS,EAAE,CAAC;YACjB,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iBAChD,IAAI,CACD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAI;AACnB,gBAAA,IACI,KAAK,CAAC,MAAM,KAAK,CAAC;AAClB,oBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;AACtC,oBAAA,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAC7B;oBACE,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACtD,oBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAsD,CAAC,CAAC;oBACrF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAsD,CAAC,CAAC;AACpF,iBAAA;AACD,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACnB,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,aAAC,CAAC,EACF,SAAS,CAAC,YAAY,CAAC,CAC1B;AACA,iBAAA,SAAS,EAAE,CAAC;AACpB,SAAA;KACJ;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzB;;AAGD,IAAA,UAAU,CAAC,IAAiD,EAAA;AACxD,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;AAClC,YAAA,MAAM,GAAG,GAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAA2C,CAAC,CAAC;AACxF,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAA;KACJ;;AAGD,IAAA,YAAY,CAAC,IAAiD,EAAA;QAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvG,QAAA,IAAI,eAAe,EAAE;AACjB,YAAA,MAAM,GAAG,GAAyC,IAAI,CAAC,MAAM,CAAC,MAAM,CAChE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CACc,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAA;KACJ;;AAGD,IAAA,IAAY,eAAe,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,IAAI,CAAC;KAChD;;AAGO,IAAA,YAAY,CAAC,IAAiD,EAAA;AAClE,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,QAAA,IAAI,WAAW,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;KACJ;;AAGO,IAAA,kBAAkB,CAAC,KAAoD,EAAA;AAC3E,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACxF,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAsD,CAAC,CAAC;KACxF;;AAGO,IAAA,gBAAgB,CAAC,MAA4C,EAAA;AACjE,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACpD;;6GAtKQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iHAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;MCHW,wBAAwB,CAAA;AAM7C;;MCPqB,mBAAmB,CAAA;AAaxC;;ACjBD;;AAEG;AACG,SAAU,eAAe,CAAC,OAAgE,EAAA;IAC5F,OAAO,UAAU,SAAuC,EAAE,WAA4B,EAAA;AAClF,QAAA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AACzC,QAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE;YAC1C,GAAG,GAAA;AACC,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;AACD,YAAA,GAAG,CAAC,CAAM,EAAA;AACN,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;aAC5C;AACJ,SAAA,CAAC,CAAC;AACP,KAAC,CAAC;AACN;;ACbA;;AAEG;MACU,aAAa,GAAG,eAAe,CAAC,qBAAqB;;MCarD,uBAAuB,CAAA;;IAkBhC,IACI,QAAQ,CAAC,KAAiC,EAAA;AAC1C,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC1C;;AAMD,IAAA,WAAA,CAAoB,iBAAyC,EAAA;QAAzC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAwB;;AAtB7D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAA8B,CAAC;;QAKhE,IAAM,CAAA,MAAA,GAAiB,KAAK,CAAC;;QAK7B,IAAQ,CAAA,QAAA,GAAiB,KAAK,CAAC;AAa3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;KACtD;;AAGD,IAAA,MAAM,CAAC,IAA+B,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC3C;;AAGD,IAAA,QAAQ,CAAC,IAA+B,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC7C;;AAGD,IAAA,YAAY,CAAC,IAA+B,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvB,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,SAAA;KACJ;;AAGD,IAAA,QAAQ,CAAC,KAAiC,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;;IAGD,eAAe,GAAA;QACX,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC3D;;oHA1DQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EARrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,WAAW,EAAE,uBAAuB;AACvC,SAAA;QACD,gBAAgB;AACnB,KAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EA0BgB,mBAAmB,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAhBpC,UAAA,CAAA;IACC,aAAa;;AACe,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG7B,UAAA,CAAA;IACC,aAAa;;AACiB,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FAftB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,WAAW,EAAyB,uBAAA;AACvC,yBAAA;wBACD,gBAAgB;AACnB,qBAAA;AACJ,iBAAA,CAAA;oGAMG,cAAc,EAAA,CAAA;sBADb,MAAM;gBAMP,MAAM,EAAA,CAAA;sBAFL,KAAK;gBAON,QAAQ,EAAA,CAAA;sBAFP,KAAK;gBAMF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAMgC,eAAe,EAAA,CAAA;sBAApD,eAAe;uBAAC,mBAAmB,CAAA;;;MCzC3B,4BAA4B,GAAG,IAAI,cAAc,CAC1D,gEAAgE;;MCqBvD,uBAAuB,CAAA;;IAIhC,IACI,KAAK,CAAC,GAAc,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACrB;AACD,IAAA,IAAI,KAAK,GAAA;QACL,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9B,SAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;;IAGD,IACI,iBAAiB,CAAC,KAAmB,EAAA;AACrC,QAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClD,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,WAAW,EAAE;AACnC,YAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AACnC,SAAA;KACJ;AAED,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,iBAAiB,KAAK,WAAW,EAAE;AACzD,YAAA,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAChD,SAAA;AACD,QAAA,QACI,UAAU;aACT,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;AACjD,aAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACnD;KACL;;AAcD,IAAA,WAAA,CAGY,QAA8D,EAC9D,SAA8B,EAC9B,SAA8B,EAC9B,gBAA0D,EAC1D,WAAoC,EACpC,GAAsB,EAC9B,QAA4B,EAAA;QANpB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAsD;QAC9D,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;QAC9B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;QAC9B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA0C;QAC1D,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACpC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;QAb1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAElB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AAcvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QACjE,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AACtC,SAAA;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;AAGD,IAAA,WAAW,CAAC,UAAmB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;AAC5B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACnD,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AAClC,YAAA,IAAI,UAAU,EAAE;AACZ,gBAAA,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAChC,aAAA;AAAM,iBAAA;AACH,gBAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA;YACD,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE,CAAG,EAAA,UAAU,CAAE,CAAA,CAAC,CAAC;AAC9D,SAAA;KACJ;;IAGD,UAAU,GAAA;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAGO,wBAAwB,GAAA;QAC5B,MAAM,gBAAgB,GAA0B,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC;KAC3F;;IAGO,oCAAoC,GAAA;AACxC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;AAC7B,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAA;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;;IAGO,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,CAAC;KACpD;;AApHQ,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAkDpB,4BAA4B,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAlD/B,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAVrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,WAAW,EAAE,uBAAuB;AACvC,SAAA;QACD,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;AACrB,KAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAdnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAyB,uBAAA;AACvC,yBAAA;wBACD,mBAAmB;wBACnB,mBAAmB;wBACnB,kBAAkB;AACrB,qBAAA;AACJ,iBAAA,CAAA;;0BAkDQ,QAAQ;;0BACR,MAAM;2BAAC,4BAA4B,CAAA;6NA7CpC,KAAK,EAAA,CAAA;sBADR,KAAK;gBAaF,iBAAiB,EAAA,CAAA;sBADpB,KAAK;gBAsBN,OAAO,EAAA,CAAA;sBADN,MAAM;;;MCrDE,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAHnB,uBAAuB,EAAE,uBAAuB,CAChD,EAAA,OAAA,EAAA,CAAA,uBAAuB,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA;kHAEjD,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;AAC3D,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;AAC9D,iBAAA,CAAA;;;ACFD;;;;AAIG;MACU,sBAAsB,GAAG,IAAI,cAAc,CAAqB,wBAAwB,EAAE;AACnG,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC5C,QAAA,OAAO,aAAa;aACf,MAAM,CAAC,EAAE,CAAC;AACV,aAAA,IAAI,CAACC,KAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,MAAiB,CAAC,UAAU,CAAC,CAAC;aACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;KAC3C;AACJ,CAAA;;ACnBM,MAAM,qBAAqB,GAAG;AACjC,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,IAAI;AACP,IAAA,CAAC,EAAE,IAAI;CACD,CAAC;AAMX;AACM,SAAU,iBAAiB,CAAC,KAAa,EAAA;AAC3C,IAAA,IAAI,KAAK,GAAG,qBAAqB,CAAC,CAAC,EAAE;AACjC,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;AACD,IAAA,IAAI,KAAK,GAAG,qBAAqB,CAAC,CAAC,EAAE;AACjC,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;AACD,IAAA,IAAI,KAAK,GAAG,qBAAqB,CAAC,CAAC,EAAE;AACjC,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;ACtBA;AAoBA;;;AAGG;MAOU,mBAAmB,CAAA;AAC5B;;AAEK;IACL,IACI,aAAa,CAAC,KAAuB,EAAA;AACrC,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACjD;AAED;;;AAGK;IACL,IACI,OAAO,CAAC,KAAmB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChD;AAED;;;AAGK;IACL,IACI,OAAO,CAAC,KAAmB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChD;AAED;;;AAGK;IACL,IACI,OAAO,CAAC,KAAmB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChD;AAED;;AAEM;IACN,IACI,QAAQ,CAAC,KAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACjD;AAcD;;AAEG;IACH,IACI,iBAAiB,CAAC,KAA4C,EAAA;AAC9D,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACtB,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3C,GAAG,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,EAC9B,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CACjC,CACJ,CAAC;KACL;;IA8BD,WAA6B,CAAA,WAA6B,EAAmB,aAA+B,EAAA;QAA/E,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAAmB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;;QAxBpG,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAEjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAEjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAEjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAGlB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;;AAG/C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;;AAGvC,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;;AAG/D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAGjC,IAAgB,CAAA,gBAAA,GAAwC,IAAI,eAAe,CAAqB,IAAI,CAAC,aAAa,CAAC,CAAC;KAGJ;;IAGhH,eAAe,GAAA;AACX,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAACC,WAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1G,IAAI,CACD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAU,CAAC,EAChD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,EACzE,GAAG,CAAC,CAAC,UAAU,KAAI;AACf,YAAA,IAAI,UAAU,EAAE;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/E,oBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;AACxC,iBAAA;AACJ,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,gBAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;AACpC,aAAA;AACL,SAAC,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,QAAQ,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;AACrC,SAAC,CAAC,CACL;AACA,aAAA,SAAS,EAAE,CAAC;KACpB;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KAC1B;;IAGO,WAAW,CAAC,KAAa,EAAE,iBAAiC,EAAA;AAChE,QAAA,MAAM,uBAAuB,GAAG;YAC5B,IAAI,CAAC,QAAQ,IAAI,GAAG;YACpB,IAAI,CAAC,QAAQ,IAAI,GAAG;YACpB,IAAI,CAAC,QAAQ,IAAI,GAAG;YACpB,IAAI,CAAC,SAAS,IAAI,IAAI;AACzB,SAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,OAAO,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;AACvC,SAAA;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,OAAO,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;AACvC,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACrB;;gHAxJQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gIAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,SAAA,EAFjB,CAAC,gBAAgB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEpB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EACJ,gIAAgI;AACpI,oBAAA,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAChC,iBAAA,CAAA;iIAMO,aAAa,EAAA,CAAA;sBADhB,KAAK;gBAcF,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,gBAAgB,CAAA;gBAUnB,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,gBAAgB,CAAA;gBAUnB,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,gBAAgB,CAAA;gBASnB,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,iBAAiB,CAAA;gBASxB,eAAe,EAAA,CAAA;sBADd,KAAK;gBAON,eAAe,EAAA,CAAA;sBADd,KAAK;gBAOF,iBAAiB,EAAA,CAAA;sBADpB,KAAK;uBAAC,sBAAsB,CAAA;;MAgGpB,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,OAAA,EAAA,CA/JhB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAAnB,mBAAmB,CAAA,EAAA,CAAA,CAAA;8GA+JnB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;AACjC,iBAAA,CAAA;;;MC1LY,QAAQ,GAAG,IAAI,cAAc,CAAC,oBAAoB,EAAE;MACpD,QAAQ,GAAG,IAAI,cAAc,CAAC,oBAAoB;;MCmBlD,gBAAgB,CAAA;AAJ7B,IAAA,WAAA,GAAA;AAKI;;;AAGG;QAEH,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEjB;;;;;;;;;AASG;QAEH,IAAQ,CAAA,QAAA,GAAkB,OAAO,CAAC;AAElC;;AAEG;QAEH,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;;QAqBR,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;AAepB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAY,CAAC;;AAI3C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;;QAUlD,IAAiB,CAAA,iBAAA,GAAkB,IAAI,CAAC;;QAGxC,IAAoB,CAAA,oBAAA,GAA8B,IAAI,CAAC;;AAG9C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAGhC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAM3C,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;QAIT,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;;QAMvC,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;;QAGrB,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;AAqOrC,KAAA;AAjTG;;;;;;AAMG;IACH,IACI,WAAW,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1C,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;KAC1C;AAED,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;;IAUD,IACI,SAAS,CAAC,SAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;KACzC;;IAiDD,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACnH;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;;IAGD,MAAM,CAAC,aAA8B,EAAE,gBAAwB,EAAA;;QAE3D,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAE3C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;;YAElE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,gBAAgB,KAAK,KAAK,EAAE;gBACxD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACnE,gBAAA,IAAI,gBAAgB,EAAE;oBAClB,gBAAgB,GAAG,KAAK,CAAC;AAEzB,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACJ,aAAA;AACD,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE;YACd,gBAAgB,GAAG,IAAI,CAAC;AAC3B,SAAA;;AAGD,QAAA,IACI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,CAAC;AAC3C,aAAC,gBAAgB,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAC3E;YACE,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;YAC1C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;;YAEjF,IAAI,gBAAgB,KAAK,gBAAgB,EAAE;gBACvC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACnC,OAAO;AACV,aAAA;;AAED,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC3B,gBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACxD,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACvE,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAClF,aAAA;AACJ,SAAA;KACJ;;AAGD,IAAA,SAAS,CAAC,KAAa,EAAA;QACnB,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;;AAEpE,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAa,KACjE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CACjG,CAAC;KACL;;AAGD,IAAA,OAAO,CAAC,gBAAwB,EAAA;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACjC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACjD,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAE5C,QAAA,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,CAAC,EAAE;YAC9C,IAAI,gBAAgB,KAAK,iBAAiB,EAAE;gBACxC,IAAI,gBAAgB,GAAG,iBAAiB,EAAE;oBACtC,KAAK,IAAI,CAAC,GAAG,gBAAgB,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;wBACvD,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,qBAAA;AACJ,iBAAA;AAAM,qBAAA;oBACH,KAAK,IAAI,CAAC,GAAG,gBAAgB,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;wBACvD,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,qBAAA;AACJ,iBAAA;;AAGD,gBAAA,KAAK,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;AAEvC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,aAAA;AAED,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBAClB,iBAAiB;gBACjB,gBAAgB;gBAChB,KAAK;gBACL,QAAQ,EAAE,IAAI,CAAC,oBAAoB;AACnC,gBAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB;AAC1E,aAAA,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;;AAGnC,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACpC,SAAA;KACJ;;AAGO,IAAA,wBAAwB,CAC5B,gBAAwB,EACxB,WAAqC,EACrC,gBAAwB,EAAA;QAExB,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE;YAC3D,OAAO;AACV,SAAA;AAED,QAAA,IAAI,mBAAsC,CAAC;AAC3C,QAAA,MAAM,gBAAgB,GAClB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAE9F,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE7F,QAAA,IACI,QAAQ,CAAC,sBAAsB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9F,YAAA,QAAQ,CAAC,sBAAsB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,EAChG;YACE,mBAAmB,GAAG,OAAO,CAAC;AACjC,SAAA;AAAM,aAAA;YACH,mBAAmB,GAAG,OAAO,CAAC;AACjC,SAAA;AAED,QAAA,IAAI,mBAAmB,KAAK,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACrG,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;AAE7C,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,OAAO,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC5F,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;AAClD,SAAA;KACJ;;IAGO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACtD;;IAGO,2BAA2B,GAAA;AAC/B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;KAClE;;IAGO,WAAW,CAAC,gBAAwB,EAAE,YAA0B,EAAA;QACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpF;;AAGO,IAAA,uBAAuB,CAAC,gBAAwB,EAAA;QACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC;KACrE;;IAGO,iBAAiB,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAEtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAEjD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAyB,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5G,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjF,SAAC,CAAC,CAAC;KACN;AAED;;;AAGG;IACK,SAAS,CAAC,cAA0B,EAAE,aAAyB,EAAA;;QAEnE,MAAM,eAAe,GAAG,EAAE,CAAC;;QAG3B,MAAM,mBAAmB,GAAY,cAAc,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC1F,MAAM,kBAAkB,GAAY,aAAa,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAExF,IAAI,mBAAmB,CAAC,GAAG,GAAG,kBAAkB,CAAC,GAAG,GAAG,eAAe,EAAE;;AAEpE,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;aAAM,IAAI,kBAAkB,CAAC,GAAG,GAAG,mBAAmB,CAAC,GAAG,GAAG,eAAe,EAAE;;AAE3E,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAAM,aAAA;;YAEH,OAAO,mBAAmB,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;AACjE,SAAA;KACJ;;AAGO,IAAA,qBAAqB,CAAC,SAAkB,EAAA;QAC5C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC3B,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;gBAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9B,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;;6GA3UQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,wUAFd,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAE,CAAC,mDAsElE,QAAQ,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FApEhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,MAAsB,gBAAA,CAAC,EAAE,CAAC;AACtF,iBAAA,CAAA;8BAOG,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAcN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAON,SAAS,EAAA,CAAA;sBADR,KAAK;gBAWF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAgBN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAQG,WAAW,EAAA,CAAA;sBADnB,MAAM;gBAKE,WAAW,EAAA,CAAA;sBADnB,MAAM;gBAKP,QAAQ,EAAA,CAAA;sBADP,eAAe;uBAAC,QAAQ,CAAA;gBA0BR,aAAa,EAAA,CAAA;sBAD7B,WAAW;uBAAC,OAAO,CAAA;;AAiPxB,SAAS,iBAAiB,CAAC,OAAqB,EAAE,aAA8B,EAAA;AAC5E,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;AAEvC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAExC,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAA;AACjD,IAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,CAAC;AAaD,SAAS,qBAAqB,CAAC,IAAa,EAAE,QAAkC,EAAA;IAC5E,OAAO;AACH,QAAA,CAAC,EAAE,QAAQ,KAAK,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACtD,QAAA,CAAC,EAAE,QAAQ,KAAK,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KAC1D,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAyB,EAAE,SAAiB,EAAA;IACtE,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,QAAQ,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;AACpG,IAAA,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,SAAS,CAAC;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;AACrG,IAAA,MAAM,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,CAAC;IACpE,OAAO;AACH,QAAA,CAAC,EAAE;YACC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;YACpC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;AACrC,SAAA;AACD,QAAA,CAAC,EAAE;YACC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;YACpC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;AACrC,SAAA;KACJ,CAAC;AACN;;MChYa,gBAAgB,CAAA;;IAiCzB,IACI,SAAS,CAAC,SAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;;IA8BD,WAAmB,CAAA,UAAsB,EAAU,SAAmB,EAAA;QAAnD,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;AAlEtE;;;AAGG;QAGH,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;AAQjB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAmB,CAAC;;AAI5C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ,CAAC;;AAIpC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;AAE5C;;;AAGG;QAEH,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;QAWrB,IAAuB,CAAA,uBAAA,GAAG,gBAAgB,CAAC;;QAG3C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;;QAQb,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;AAGlB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAY8B;;AAG1E,IAAA,qBAAqB,CAAC,QAAiB,EAAA;;QAEnC,MAAM,IAAI,GAAY,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAE5E,MAAM,QAAQ,GAAiB,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;;QAG7D,OAAO;YACH,CAAC,EAAE,IAAI,CAAC,IAAI;YACZ,QAAQ;YACR,CAAC,EAAE,IAAI,CAAC,GAAG;YACX,eAAe,EAAE,IAAI,CAAC,YAAY;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;KACL;;IAGD,kBAAkB,GAAA;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC3B;;AAGD,IAAA,SAAS,CAAC,QAAyB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7B;;IAGD,iBAAiB,GAAA;;AAEb,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;;AAGrB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;;QAGtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;;IAGD,cAAc,GAAA;;AAEV,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAE1E,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACvB;;IAGD,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE;;YAEjE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1E,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACnC,SAAA;KACJ;;IAGD,UAAU,GAAA;QACN,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;;YAEnD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,SAAA;KACJ;;IAGD,sBAAsB,GAAA;QAClB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;;YAE7D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtE,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACjC,SAAA;KACJ;;IAGD,sBAAsB,GAAA;QAClB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAE7D,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC9C,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACzF,YAAA,IAAI,YAAY,EAAE;gBACd,SAAS,GAAG,YAAY,CAAC;AAC5B,aAAA;AACJ,SAAA;AAED,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACjD;;IAGD,UAAU,CAAC,QAAsB,EAAE,QAAiB,EAAA;;QAEhD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAEnD,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAChE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAClE,SAAA;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5C,SAAA;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7C,SAAA;;AAGD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC9C,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACzF,YAAA,IAAI,YAAY,EAAE;gBACd,SAAS,GAAG,YAAY,CAAC;AAC5B,aAAA;AACJ,SAAA;AAED,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC5C;;IAGD,kBAAkB,GAAA;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;AACrE,SAAA;KACJ;;IAGO,iBAAiB,GAAA;AACrB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;AAElE,QAAA,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;AAEvC,QAAA,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAChD,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAE7B;;AAEG;QACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;KAChE;;IAGO,qBAAqB,GAAA;AACzB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACtC,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;AACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAC5C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAE/C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;AACxF,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;KAC7F;;AAGO,IAAA,kBAAkB,CAAC,OAAgB,EAAA;AACvC,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE;YAChB,OAAO;AACV,SAAA;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;QAE9D,OAAO;AACH,YAAA,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC;AAC9D,YAAA,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC;SAC/D,CAAC;KACL;;IAGO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;KACzF;;IAGO,WAAW,CAAC,OAAgB,EAAE,SAAe,EAAA;AACjD,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;AAClD,QAAA,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;KAClE;;IAGO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,QAAQ;aACR,IAAI;;QAED,KAAK,CAAC,CAAC,CAAC,CACX;aACA,SAAS,CAAC,MAAK;YACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACxC,CAAC,CACT,CAAC;KACL;;6GAhSQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAArB,IAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,+YAFd,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEpF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,MAAsB,gBAAA,CAAC,EAAE,CAAC;AAChG,iBAAA,CAAA;0HAQG,kBAAkB,EAAA,CAAA;sBAFjB,KAAK;;sBACL,WAAW;uBAAC,mBAAmB,CAAA;gBAKhC,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKG,KAAK,EAAA,CAAA;sBADb,MAAM;gBAKE,QAAQ,EAAA,CAAA;sBADhB,MAAM;gBAKE,OAAO,EAAA,CAAA;sBADf,MAAM;gBAQP,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAQN,uBAAuB,EAAA,CAAA;sBADtB,KAAK;;;ACtDV;;;AAGG;MAEU,yBAAyB,CAAA;;IA2BlC,WAA6B,CAAA,IAAuB,EAA+B,WAAuB,EAAA;QAA7E,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;QAA+B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;QApB1G,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;;QAIhC,IAAW,CAAA,WAAA,GAA8B,UAAU,CAAC;;AAGpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAoB,CAAC;;AAInD,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAY,EAAE,SAAiB,EAAE,OAAe,KAC5D,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;;QAI/C,IAAgB,CAAA,gBAAA,GAAG,CAAC,KAAY,EAAE,SAAgB,EAAE,SAAiB,EAAE,OAAe,KAClF,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAGkD;;AAG9G,IAAA,eAAe,CAAC,KAAoB,EAAE,SAAiB,EAAE,UAAkB,EAAA;QACvE,IAAI,IAAI,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC/C,OAAO;AACV,SAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;QAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC;QAEzE,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC;AAC5D,QAAA,MAAM,eAAe,GAAG,CAAC,CAAC,UAAU,CAAC;QAErC,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,KAAK,GAAG,eAAe,GAAG,eAAe,CAAC,EAAE;YACtF,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,YAAA,MAAM,cAAc,GAAG,UAAU,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAE9C,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AACxD,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,GAAG,eAAe,GAAG,eAAe,CAAC,EAAE;YAC5F,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,YAAA,MAAM,cAAc,GAAG,UAAU,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAE9C,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AACxD,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;YAC7C,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;AACjD,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;YAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;AACjD,SAAA;KACJ;;IAGO,aAAa,CAAC,UAAkB,EAAE,SAAiB,EAAA;AACvD,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAE1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;KACvD;;sHA7EQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;mBAAC,EAAE,QAAQ,EAAE,6CAA6C,EAAE,CAAA;;0BA4BX,QAAQ;4CAxB/D,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,uBAAuB,EAAA,CAAA;sBADtB,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAQN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAMN,gBAAgB,EAAA,CAAA;sBADf,KAAK;;;AC7BV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCG;MAEU,wBAAwB,CAAA;;IAajC,WAA6B,CAAA,SAAoC,EAAmB,WAAuB,EAAA;QAA9E,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2B;QAAmB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAH1F,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;KAG4D;;IAG/G,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,KAAI;YAClE,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChE,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1C,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;;AAID,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1E;;qHAlCQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAyB,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;mBAAC,EAAE,QAAQ,EAAE,2CAA2C,EAAE,CAAA;sIAIhE,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,UAAU,EAAA,CAAA;sBADT,KAAK;gBA0BN,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC9D1B,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAFX,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAF5F,YAAY,EAAE,cAAc,aAC5B,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;+GAGxF,iBAAiB,EAAA,OAAA,EAAA,CAJhB,YAAY,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;2FAI7B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACvC,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,wBAAwB,CAAC;oBAClG,YAAY,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,wBAAwB,CAAC;AAC1G,iBAAA,CAAA;;;MCyDY,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YA1ChB,YAAY;QACZ,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,qBAAqB;QACrB,kBAAkB;AAClB,QAAA,gBAAgB,aAGhB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,qBAAqB;QACrB,kBAAkB;QAClB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAIX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,aAFT,CAAC,UAAU,EAAE,aAAa,CAAC,YAxClC,YAAY;QACZ,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,qBAAqB;QACrB,kBAAkB;AAClB,QAAA,gBAAgB,EAGhB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,qBAAqB;QACrB,kBAAkB;QAClB,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAIX,WAAW,EAAA,UAAA,EAAA,CAAA;kBA5CvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,kBAAkB;wBAClB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,qBAAqB;wBACrB,kBAAkB;wBAClB,gBAAgB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,kBAAkB;wBAClB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,qBAAqB;wBACrB,kBAAkB;wBAClB,gBAAgB;AACnB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;AACzC,iBAAA,CAAA;;;ACjED;AACM,SAAU,eAAe,CAAI,KAAc,EAAA;AAC7C,IAAA,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACpD;;ACAO,MAAM,qBAAqB,GAAG;;ACFrC;;;;;;;;AAQG;SACa,aAAa,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAA;AAC1F,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;IACxC,UAAU,CAAC,KAAK,GAAG,YAAA;QACf,MAAM,IAAI,GAAG,IAAyD,CAAC;AACvE,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,MAAM,qBAAqB,CAAC;AAC/B,SAAA;QAED,MAAM,gBAAgB,GAAa,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAE/C,QAAA,MAAM,aAAa,GAAsC,UAAU,EAAE,aAAa,CAAC;AAEnF,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;AAC1B,gBAAA,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;AAChC,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;AAC3B,aAAA;YAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAE7D,YAAA,MAAM,wBAAwB,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAE7E,MAAM,YAAY,GAAG,wBAAwB,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;YAE5G,aAAa,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEjD,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC;AAC5D,SAAA;AAED,QAAA,OAAO,gBAAgB,CAAC;AAC5B,KAAC,CAAC;AACN,CAAC;AAED;AACA,SAAS,MAAM,CAAC,KAAc,EAAE,KAAa,EAAE,IAAe,EAAA;IAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACzC,CAAC;AAED;AACA,SAAS,QAAQ,CAAC,KAAe,EAAA;AAC7B,IAAA,OAAO,KAAK;SACP,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,SAAmB,EAAE,QAAgB,KAAK,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SAC/F,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAgB,EAAE,MAAgB,EAAA;AAC/D,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;AACA,SAAS,wBAAwB,CAC7B,UAAoB,EACpB,0BAAoC,EACpC,qBAA+B,EAAA;AAE/B,IAAA,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,uBAAuB,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;AAC5E,IAAA,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACjC,IAAA,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,MAAM,EAAE,GAAG,qBAAqB,CAAC,CAAC;AAEtF,IAAA,OAAO,UAAU,CAAC;AACtB;;AC7EA;;;;;;;;AAQG;SACa,aAAa,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAA;AAC1F,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;IACxC,UAAU,CAAC,KAAK,GAAG,YAAA;QACf,MAAM,IAAI,GAAG,IAAgC,CAAC;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,MAAM,qBAAqB,CAAC;AAC/B,SAAA;QAED,MAAM,OAAO,GAA0B,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAClE,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAA4B,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACjC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1C,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;AACnB,KAAC,CAAC;AACN;;MC3Ba,cAAc,GAAG,eAAe,CAAC,mBAAmB;;MCW3C,yBAAyB,CAAA;;AAc3C,IAAA,WAAA,CACc,WAAuB,EACvB,SAAmB,EACnB,IAAuB,EAAA;QAFvB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;;QAZrC,IAAY,CAAA,YAAA,GAAgB,SAAS,CAAC;;AAM5B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAO5D;;AAMM,IAAA,oBAAoB,CAAC,OAAkB,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC1C,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,YAAA,SAAS,EAAE,EAAE;AAChB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;;IAGS,mBAAmB,CAAC,OAAyB,EAAE,OAAY,EAAA;AACjE,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CACzC,IAAI,cAAc,CAAC,OAAO,EAAE,IAAmC,EAAE,OAAO,CAAC,CAC5E,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;AACJ;;MCtDY,wBAAwB,CAAA;;IAEjC,WAAoB,CAAA,eAAyB,EAAU,iBAAoC,EAAA;QAAvE,IAAe,CAAA,eAAA,GAAf,eAAe,CAAU;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAAI;AAE/F;;;;AAIG;IACH,GAAG,CAAC,KAAU,EAAE,aAAmB,EAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEhD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAM,KAAK,EAAE,aAAa,CAAC,CAAC;KAC9D;AACJ;;ACJD;;AAEG;MAEU,uBAAuB,CAAA;;AAEhC,IAAA,WAAA,CACqB,yBAAmD,EACnD,eAA+B,EAC/B,SAAmB,EACnB,SAAmB,EAAA;QAHnB,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA0B;QACnD,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgB;QAC/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;KACpC;AAEJ;;;;;;AAMG;IACI,sBAAsB,CACzB,OAAoE,EACpE,aAAsB,EACtB,MAA8B,EAC9B,SAAoD,EAAE,EAAA;AAEtD,QAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACtC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC5D,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAI,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;AACxF,QAAA,IAAI,CAAC,oBAAoB,CAAI,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,kBAAkB,CAAI,YAAY,EAAE,MAAM,CAAC,CAAC;AAEjD,QAAA,OAAO,YAAY,CAAC;KACvB;AAED;;;;;;;AAOG;IACH,MAAM,mBAAmB,CACrB,OAAoE,EACpE,UAAwC,EACxC,aAAsB,EACtB,YAA8B,EAC9B,QAAmB,EAAA;QAEnB,MAAM,aAAa,GACf,UAAU,YAAY,eAAe,GAAG,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAI,UAAU,CAAC,CAAC;AAChH,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAEnG,YAAY,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,YAAY,GAAoB,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAErF,QAAA,IAAI,CAAC,oBAAoB,CAAI,YAAY,EAAE,OAAO,CAAC,CAAC;AAEpD,QAAA,OAAO,YAAY,CAAC;KACvB;;AAGM,IAAA,gBAAgB,CAAC,YAA+B,EAAA;QACnD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,YAAY,CAAC,OAAO,EAAE,CAAC;KAC1B;;IAGO,oBAAoB,CAAC,WAAkB,EAAE,EAAA;AAC7C,QAAA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AACpC,QAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9G,QAAA,OAAO,aAAa,CAAC;KACxB;;IAGO,kBAAkB,CAAI,YAA6B,EAAE,MAA8B,EAAA;QACvF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAI,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;AAChG,QAAA,IAAI,SAAS,CAAC,SAAS,KAAK,MAAM,EAAE;AAChC,YAAA,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;AACH,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC1C,SAAA;KACJ;;AAGO,IAAA,gBAAgB,CACpB,aAAsB,EACtB,eAAkC,EAClC,QAAmB,EAAA;AAEnB,QAAA,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAC3G,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAC/F,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACvD,QAAA,OAAO,YAAY,CAAC;KACvB;;IAGO,oBAAoB,CACxB,YAA6B,EAC7B,OAAoE,EAAA;;AAGpE,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;AAC5E,YAAA,YAAY,CAAC,QAAgB,CAAC,YAAY,GAAG,OAAO,CAAC;AACzD,SAAA;KACJ;;oHA1GQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wHAAvB,uBAAuB,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCjBE,mBAAmB,GAAG,IAAI,cAAc,CAAW,mBAAmB;;ACAnF;;;;;AAKG;AAEH;MAEsB,kBAAkB,CAAA;;AAepC,IAAA,kBAAkB,CAAC,SAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,SAAS,CAAC,KAAK,GAAG,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,EAAE,CAAC;KAClG;;IAGD,kBAAkB,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;KACxE;;AAGD,IAAA,kBAAkB,CAAC,SAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1F;;IAGD,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAA;QAC9B,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;KAC5E;;AAGD,IAAA,WAAA,CAAsB,UAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;;IAGD,WAAW,GAAA;QACP,MAAM,SAAS,GAAI,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,SAAS,CAAC;AAC5E,QAAA,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;;YAEzB,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;AACxC,SAAA;QACD,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;;+GAxDiB,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;iGAMG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MCVG,aAAa,CAAA;;AAEtB,IAAA,SAAS,CAAC,KAAU,EAAE,SAAc,EAAE,GAAG,IAAS,EAAA;AAC9C,QAAA,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KACpC;;0GAJQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;wGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCEY,iBAAiB,CAAA;AAC1B;;;;AAIG;AACH,IAAA,SAAS,CAAC,MAAA,GAAgB,EAAE,EAAE,MAAqD,EAAA;AAC/E,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,MAAM,CAAC;AACjB,SAAA;QACD,IAAI,MAAM,CAAC,GAAG,EAAE;AACZ,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC,CACxF,CAAC;AACL,SAAA;AAAM,aAAA;YACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC/G,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;;8GAlBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCDY,oBAAoB,CAAA;;AAE7B,IAAA,SAAS,CAAC,IAAoB,EAAA;AAC1B,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACjC;;iHAJQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;;;MCMvC,eAAe,CAAA;;AAOxB,IAAA,WAAA,CAAY,GAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9C;AAED;;;AAGG;AACH,IAAA,SAAS,CAAI,KAAqC,EAAA;AAC9C,QAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;KAC1G;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;;4GAzBQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;;;MCFY,mBAAmB,CAAA;;IAE5B,SAAS,CAAC,KAAa,EAAE,IAAY,EAAE,MAAkB,GAAA,IAAI,EAAE,YAAA,GAAwB,KAAK,EAAA;AACxF,QAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,MAAM,GAAW,KAAK,CAAC;AAC3B,QAAA,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE;AACzB,YAAA,MAAM,OAAO,GAAW,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxD,YAAA,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;AACnB,gBAAA,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAChE,gBAAA,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC;AACrF,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,YAAY,EAAE;AACd,YAAA,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;;gHAjBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;8GAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCAY,aAAa,CAAA;;AAEtB,IAAA,SAAS,CAAC,KAAa,EAAE,MAAA,GAAkB,IAAI,EAAA;QAC3C,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,KAAK,MAAM,EAAE;AAClC,YAAA,OAAO,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACtD,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;KACJ;;0GARQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;wGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCEY,QAAQ,CAAA;;AAEjB,IAAA,WAAA,CAAsB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;;IAG1C,SAAS,CAAC,KAAU,EAAE,IAAY,EAAA;AACrC,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAEzD,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE1D,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AAE3D,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAExD,YAAA,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;AAEhE,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAA,CAAE,CAAC,CAAC;AAC/D,SAAA;KACJ;;qGAzBQ,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAtB,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCFY,eAAe,CAAA;;IAExB,SAAS,CAAC,KAAU,EAAE,GAAW,EAAA;AAC7B,QAAA,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAC1B;;4GAJQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;;;MCGlC,YAAY,CAAA;;AAErB,IAAA,SAAS,CAAC,KAAa,EAAE,KAAA,GAAgB,GAAG,EAAA;QACxC,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;KACpF;;yGAJQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCIY,aAAa,CAAA;AACtB;;;AAGG;AACH,IAAA,SAAS,CAAI,KAAqC,EAAA;QAC9C,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;KACxE;;0GAPQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;wGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MC+BY,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAxBf,aAAa;QACb,mBAAmB;QACnB,aAAa;QACb,QAAQ;QACR,eAAe;QACf,oBAAoB;QACpB,YAAY;QACZ,iBAAiB;QACjB,aAAa;AACb,QAAA,eAAe,aAGf,aAAa;QACb,mBAAmB;QACnB,aAAa;QACb,QAAQ;QACR,eAAe;QACf,oBAAoB;QACpB,YAAY;QACZ,iBAAiB;QACjB,aAAa;QACb,eAAe,CAAA,EAAA,CAAA,CAAA;wGAGV,UAAU,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBA1BtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,aAAa;wBACb,mBAAmB;wBACnB,aAAa;wBACb,QAAQ;wBACR,eAAe;wBACf,oBAAoB;wBACpB,YAAY;wBACZ,iBAAiB;wBACjB,aAAa;wBACb,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,aAAa;wBACb,mBAAmB;wBACnB,aAAa;wBACb,QAAQ;wBACR,eAAe;wBACf,oBAAoB;wBACpB,YAAY;wBACZ,iBAAiB;wBACjB,aAAa;wBACb,eAAe;AAClB,qBAAA;AACJ,iBAAA,CAAA;;;ACtCD;;AAEG;;;;"}
|