@liuk123/insui 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insui.mjs","sources":["../../../projects/insui/components/item/item.directive.ts","../../../projects/insui/components/expand/expand.component.ts","../../../projects/insui/service/create-token.ts","../../../projects/insui/service/provide-options.ts","../../../projects/insui/components/group/group.options.ts","../../../projects/insui/service/with-styles.ts","../../../projects/insui/components/group/group.directive.ts","../../../projects/insui/components/avatar/avatar.options.ts","../../../projects/insui/components/button/button.options.ts","../../../projects/insui/components/icon/icon.options.ts","../../../projects/insui/components/icon/icons.ts","../../../projects/insui/components/icon/icons.directive.ts","../../../projects/insui/components/icon/with-icons.ts","../../../projects/insui/service/provide.ts","../../../projects/insui/components/appearance/appearance.options.ts","../../../projects/insui/service/dom/check-fixed-position.ts","../../../projects/insui/service/dom/contains-or-after.ts","../../../projects/insui/service/dom/element-checks.ts","../../../projects/insui/service/dom/get-actual-target.ts","../../../projects/insui/service/dom/get-document-or-shadow-root.ts","../../../projects/insui/service/is-present.ts","../../../projects/insui/service/math/clamp.ts","../../../projects/insui/service/dom/get-element-obscurers.ts","../../../projects/insui/service/dom/get-selected-text.ts","../../../projects/insui/service/dom/get-viewport.ts","../../../projects/insui/service/dom/inject-element.ts","../../../projects/insui/service/dom/is-element-editable.ts","../../../projects/insui/token/unicode-chars.ts","../../../projects/insui/service/svg-node-filter.ts","../../../projects/insui/service/dom/get-word-range.ts","../../../projects/insui/service/transitioned/transitioned.directive.ts","../../../projects/insui/components/appearance/appearance.directive.ts","../../../projects/insui/components/appearance/with-appearance.ts","../../../projects/insui/components/button/button.directive.ts","../../../projects/insui/service/Polymorpheus/class/context.ts","../../../projects/insui/service/Polymorpheus/context.ts","../../../projects/insui/service/Polymorpheus/PolymorpheusComponent.ts","../../../projects/insui/service/Polymorpheus/PolymorpheusTemplate.ts","../../../projects/insui/service/Polymorpheus/PolymorpheusOutlet.ts","../../../projects/insui/service/zone.ts","../../../projects/insui/token/removed-element.ts","../../../projects/insui/webapi/window.token.ts","../../../projects/insui/webapi/animation-frame.token.ts","../../../projects/insui/webapi/local-storage.ts","../../../projects/insui/webapi/mutation-observer/mutation-observer.option.ts","../../../projects/insui/webapi/mutation-observer/mutation-observer.service.ts","../../../projects/insui/webapi/mutation-observer/mutation-observer.directive.ts","../../../projects/insui/webapi/resize/resize.token.ts","../../../projects/insui/webapi/resize/resize.service.ts","../../../projects/insui/webapi/resize/resize.directive.ts","../../../projects/insui/service/animated/animated.directive.ts","../../../projects/insui/service/copy-processor/copy-processor.directive.ts","../../../projects/insui/service/fade/fade.directive.ts","../../../projects/insui/service/focus/get-native-focused.ts","../../../projects/insui/service/focus/blur-native-focused.ts","../../../projects/insui/service/focus/is-native-keyboard-focusable.ts","../../../projects/insui/service/focus/is-native-mouse-focusable.ts","../../../projects/insui/service/focus/get-closest-focusable.ts","../../../projects/insui/service/focus/focus-trap/focus-trap.directive.ts","../../../projects/insui/service/focus/focused-in.ts","../../../projects/insui/service/focus/is-native-focused-in.ts","../../../projects/insui/service/focus/is-native-focused.ts","../../../projects/insui/service/focus/move-focus.ts","../../../projects/insui/service/native-validator/native-validator.directive.ts","../../../projects/insui/service/obscured/obscured.service.ts","../../../projects/insui/service/obscured/obscured.directive.ts","../../../projects/insui/service/swipe/swipe.options.ts","../../../projects/insui/service/swipe/swipe.service.ts","../../../projects/insui/service/swipe/swipe.directive.ts","../../../projects/insui/service/zoom/zoom.options.ts","../../../projects/insui/service/zoom/zoom.service.ts","../../../projects/insui/service/zoom/zoom.directive.ts","../../../projects/insui/model/media.ts","../../../projects/insui/service/breakpoint.service.ts","../../../projects/insui/service/id.service.ts","../../../projects/insui/service/if-map.ts","../../../projects/insui/service/vehicle.ts","../../../projects/insui/service/coerceArray.ts","../../../projects/insui/service/insDriver.ts","../../../projects/insui/service/insResize.ts","../../../projects/insui/service/is-editing-key.ts","../../../projects/insui/service/mark-control-as-touched-and-validate.ts","../../../projects/insui/service/override-options.ts","../../../projects/insui/service/portals/service.ts","../../../projects/insui/service/portals/portal.ts","../../../projects/insui/service/portals/directive.ts","../../../projects/insui/service/portals/portals.ts","../../../projects/insui/model/empty.ts","../../../projects/insui/model/accessors.ts","../../../projects/insui/service/position.service.ts","../../../projects/insui/service/present/present.directive.ts","../../../projects/insui/service/array-toggle.ts","../../../projects/insui/service/notification/notification.directive.ts","../../../projects/insui/components/popup/popup.service.ts","../../../projects/insui/service/notification/notification.service.ts","../../../projects/insui/token/active-element.ts","../../../projects/insui/service/active-zone/active-zone.directive.ts","../../../projects/insui/components/dropdowns/dropdown.providers.ts","../../../projects/insui/components/dropdowns/dropdown.driver.ts","../../../projects/insui/components/dropdowns/dropdown-options.directive.ts","../../../projects/insui/token/viewport.ts","../../../projects/insui/components/dropdowns/dropdown-position.directive.ts","../../../projects/insui/components/popup/popup.directive.ts","../../../projects/insui/components/popup/popups.component.ts","../../../projects/insui/components/dropdowns/dropdown.directive.ts","../../../projects/insui/components/dropdowns/dropdown.component.ts","../../../projects/insui/components/dropdowns/dropdown.template.html","../../../projects/insui/components/dropdowns/dropdown-open.directive.ts","../../../projects/insui/components/dropdowns/dropdown-position-sided.directive.ts","../../../projects/insui/components/dropdowns/dropdown-hover.options.ts","../../../projects/insui/components/dropdowns/dropdown-hover.directive.ts","../../../projects/insui/token/common-icons.ts","../../../projects/insui/token/environment.ts","../../../projects/insui/i18n/languages/chinese/core.ts","../../../projects/insui/i18n/languages/chinese/chinese.ts","../../../projects/insui/i18n/tokens/language.ts","../../../projects/insui/i18n/utils/extract-i18n.ts","../../../projects/insui/token/i18n.ts","../../../projects/insui/token/reduced-motion.ts","../../../projects/insui/token/spin-icons.ts","../../../projects/insui/token/validation-errors.ts","../../../projects/insui/token/selection-stream.ts","../../../projects/insui/components/dropdowns/dropdown-selection.directive.ts","../../../projects/insui/components/dropdowns/dropdown-content.directive.ts","../../../projects/insui/components/dropdowns/dropdown.ts","../../../projects/insui/components/dropdowns/with-dropdown-open.directive.ts","../../../projects/insui/components/chevron/chevron.directive.ts","../../../projects/insui/components/accordion/accordion.directive.ts","../../../projects/insui/components/accordion/accordion.component.ts","../../../projects/insui/components/accordion/accordion.ts","../../../projects/insui/components/notification/notification.options.ts","../../../projects/insui/components/link/link.options.ts","../../../projects/insui/components/notification/notification.directive.ts","../../../projects/insui/components/title/title.directive.ts","../../../projects/insui/components/alert/alert.component.ts","../../../projects/insui/components/alert/alert.template.html","../../../projects/insui/components/alert/alert.tokens.ts","../../../projects/insui/components/alert/alert.service.ts","../../../projects/insui/components/alert/alert.directive.ts","../../../projects/insui/components/avatar/avatar.component.ts","../../../projects/insui/components/avatar/avatar.template.html","../../../projects/insui/components/loader/loader.options.ts","../../../projects/insui/components/loader/loader.component.ts","../../../projects/insui/components/loader/loader.template.html","../../../projects/insui/components/button/button-loading.component.ts","../../../projects/insui/components/checkbox/checkbox.options.ts","../../../projects/insui/components/checkbox/checkbox.component.ts","../../../projects/insui/components/chip/chip.options.ts","../../../projects/insui/components/chip/chip.directive.ts","../../../projects/insui/components/data-list/data-list.tokens.ts","../../../projects/insui/components/data-list/option.component.ts","../../../projects/insui/components/data-list/data-list.component.ts","../../../projects/insui/components/data-list/data-list.template.html","../../../projects/insui/components/data-list/opt-group.directive.ts","../../../projects/insui/components/data-list/data-list.ts","../../../projects/insui/components/dialogs/dialog-close.service.ts","../../../projects/insui/components/dialogs/dialog.component.ts","../../../projects/insui/components/dialogs/dialog.template.html","../../../projects/insui/components/dialogs/dialog.option.ts","../../../projects/insui/components/modal/modal.component.ts","../../../projects/insui/components/modal/modal.service.ts","../../../projects/insui/components/dialogs/dialog.service.ts","../../../projects/insui/components/dialogs/dialog.directive.ts","../../../projects/insui/components/error/validation-error.ts","../../../projects/insui/components/error/error.component.ts","../../../projects/insui/components/error/error.template.html","../../../projects/insui/components/error/field-error.ts","../../../projects/insui/components/form/form.options.ts","../../../projects/insui/components/radio/radio.options.ts","../../../projects/insui/components/radio/radio.component.ts","../../../projects/insui/components/radio/radio.directive.ts","../../../projects/insui/components/radio/radio.ts","../../../projects/insui/components/textfield/textfield.options.ts","../../../projects/insui/components/icon/icon.component.ts","../../../projects/insui/components/textfield/textfield.component.ts","../../../projects/insui/components/textfield/textfield.template.html","../../../projects/insui/components/textfield/textfield-dropdown.directive.ts","../../../projects/insui/components/label/label.options.ts","../../../projects/insui/components/label/label.directive.ts","../../../projects/insui/components/textfield/textfield.directive.ts","../../../projects/insui/components/textfield/textfield.controller.ts","../../../projects/insui/components/textfield/textfield-data.directive.ts","../../../projects/insui/components/textfield/textfield-single-data.directive.ts","../../../projects/insui/components/textfield/textfield.ts","../../../projects/insui/components/form/form.directive.ts","../../../projects/insui/components/input-tag/input-tag.option.ts","../../../projects/insui/pipe/mapper/mapper.pipe.ts","../../../projects/insui/service/control/value-transformer.ts","../../../projects/insui/token/fallback-value.ts","../../../projects/insui/service/control/control.ts","../../../projects/insui/components/input-tag/input-tag.component.ts","../../../projects/insui/components/input-tag/input-tag.template.html","../../../projects/insui/components/link/link.directive.ts","../../../projects/insui/components/pagination/pagination.component.ts","../../../projects/insui/components/pagination/pagination.template.html","../../../projects/insui/components/root/root.component.ts","../../../projects/insui/components/root/root.template.html","../../../projects/insui/components/select/select.component.ts","../../../projects/insui/components/select/select.template.html","../../../projects/insui/components/tabs/tab.directive.ts","../../../projects/insui/components/tabs/tabs.options.ts","../../../projects/insui/components/tabs/tabs.directive.ts","../../../projects/insui/components/tabs/tabs-horizontal.directive.ts","../../../projects/insui/components/tabs/tabs-vertical.directive.ts","../../../projects/insui/components/tabs/tabs-with-more/tabs-with-more.component.ts","../../../projects/insui/components/tabs/tabs-with-more/tabs-with-more.template.html","../../../projects/insui/components/tabs/tabs.ts","../../../projects/insui/components/tree/directives/tree-children.directive.ts","../../../projects/insui/components/tree/misc/tree.constants.ts","../../../projects/insui/components/tree/misc/tree.tokens.ts","../../../projects/insui/components/tree/components/tree/tree.component.ts","../../../projects/insui/components/tree/components/tree/tree.template.html","../../../projects/insui/components/tree/directives/tree-controller.directive.ts","../../../projects/insui/components/tree/directives/tree-item-controller.directive.ts","../../../projects/insui/components/tree/misc/tree.service.ts","../../../projects/insui/components/tree/tree.ts","../../../projects/insui/components/textarea/textarea.options.ts","../../../projects/insui/components/textarea/textarea.component.ts","../../../projects/insui/components/textarea/textarea.template.html","../../../projects/insui/components/textarea/textarea-limit.directive.ts","../../../projects/insui/event/plugins/silent.plugin.ts","../../../projects/insui/event/plugins/options.plugin.ts","../../../projects/insui/event/plugins/prevent.plugin.ts","../../../projects/insui/event/plugins/self.plugin.ts","../../../projects/insui/event/plugins/stop.plugin.ts","../../../projects/insui/event/constants/plugins.ts","../../../projects/insui/layout/card/card.directive.ts","../../../projects/insui/layout/cell/cell.directive.ts","../../../projects/insui/layout/header/header.directive.ts","../../../projects/insui/addon-table/components/td/td.component.ts","../../../projects/insui/addon-table/directive/resized.directive.ts","../../../projects/insui/addon-table/table.options.ts","../../../projects/insui/addon-table/components/th/th.component.ts","../../../projects/insui/addon-table/components/th/th.template.html","../../../projects/insui/webapi/intersection-observer/intersection-observer.options.ts","../../../projects/insui/webapi/intersection-observer/safe-observer.ts","../../../projects/insui/webapi/intersection-observer/intersection-observer.service.ts","../../../projects/insui/addon-table/directive/stuck.directive.ts","../../../projects/insui/addon-table/directive/table.directive.ts","../../../projects/insui/addon-table/directive/head.directive.ts","../../../projects/insui/addon-table/components/th-group/th-group.component.ts","../../../projects/insui/addon-table/components/th-group/th-group.template.html","../../../projects/insui/addon-table/directive/cell.directive.ts","../../../projects/insui/addon-table/directive/tbody.directive.ts","../../../projects/insui/addon-table/components/tr/tr.component.ts","../../../projects/insui/addon-table/components/tr/tr.template.html","../../../projects/insui/addon-table/directive/thead.directive.ts","../../../projects/insui/addon-table/table.ts","../../../projects/insui/addon-table/components/table-expand/table-expand.component.ts","../../../projects/insui/addon-table/components/table-expand/table-expand.template.html","../../../projects/insui/addon-table/directive/table-control/table-control.directive.ts","../../../projects/insui/addon-table/directive/table-control/checkbox-row.directive.ts","../../../projects/insui/addon-table/directive/table-control/checkbox-table.directive.ts","../../../projects/insui/addon-table/directive/table-control/table-control.ts","../../../projects/insui/insui.ts"],"sourcesContent":["import {Directive} from '@angular/core';\r\n\r\n/**\r\n * Blank directive for queries via `@ContentChildren` / `@ViewChildren` / `querySelector`\r\n */\r\n@Directive({\r\n \r\n selector: '[insItem]',\r\n})\r\nexport class InsItem {}\r\n","\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChild,\r\n Input,\r\n input,\r\n OnInit,\r\n signal,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { InsItem } from '../item/item.directive';\r\n@Component({\r\n \r\n selector: 'ins-expand',\r\n template: `\r\n <div class=\"t-wrapper\">\r\n @if (expanded() || open()) {\r\n <ng-container [ngTemplateOutlet]=\"content() || null\" />\r\n }\r\n <ng-content />\r\n </div>\r\n `,\r\n styleUrls: ['./expand.style.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports:[\r\n NgTemplateOutlet,\r\n ],\r\n host: {\r\n '[class._expanded]': 'expanded()',\r\n '[class._open]': 'open()',\r\n '(transitionend.self)': 'onTransitionEnd($event)',\r\n },\r\n})\r\nexport class InsExpand implements OnInit {\r\n protected readonly content = contentChild(InsItem, {read: TemplateRef});\r\n protected readonly open = signal(false);// 折叠动画完成才会清除内容\r\n\r\n protected expanded = signal(false);\r\n @Input({alias:'expanded'})\r\n public set expandedSetter(expanded: boolean) {\r\n this.expanded.set(expanded);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.open.set(this.expanded());\r\n }\r\n\r\n protected onTransitionEnd({propertyName}: TransitionEvent): void {\r\n if (propertyName === 'grid-template-rows') {\r\n this.open.set(this.expanded());\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport function createToken<T>(defaults?: T): InjectionToken<T> {\r\n return createTokenFromFactory(() => defaults)\r\n}\r\nexport function createTokenFromFactory<T>(factory: () => T): InjectionToken<T> {\r\n return new InjectionToken<T>('', { factory })\r\n}","import type {FactoryProvider, InjectionToken} from '@angular/core';\r\nimport {inject} from '@angular/core';\r\n\r\nexport function provideOptions<T>(\r\n provide: InjectionToken<T>,\r\n options: Partial<T>,\r\n fallback: T,\r\n): FactoryProvider {\r\n return {\r\n provide,\r\n useFactory: (): T => ({\r\n ...(inject(provide, {optional: true, skipSelf: true}) || fallback),\r\n ...options,\r\n }),\r\n };\r\n}\r\n","import type {Provider} from '@angular/core';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsGroupOptions {\r\n readonly size: 's'|'m'|'l';\r\n readonly collapsed: boolean;\r\n readonly rounded: boolean;\r\n readonly orientation: 'horizontal' | 'vertical';\r\n}\r\n\r\nexport const INS_GROUP_DEFAULT_OPTIONS: InsGroupOptions = {\r\n size: 'm',\r\n collapsed: false,\r\n rounded: true,\r\n orientation: 'horizontal',\r\n};\r\n\r\nexport const INS_GROUP_OPTIONS = createToken(INS_GROUP_DEFAULT_OPTIONS);\r\n\r\nexport function insGroupOptionsProvider(options: Partial<InsGroupOptions>): Provider {\r\n return provideOptions(INS_GROUP_OPTIONS, options, INS_GROUP_DEFAULT_OPTIONS);\r\n}\r\n","import type {Type} from '@angular/core';\r\nimport {createComponent, DestroyRef, EnvironmentInjector, inject} from '@angular/core';\r\n\r\nimport {createTokenFromFactory} from './create-token';\r\n\r\nconst MAP = createTokenFromFactory(() => {\r\n const map = new Map();\r\n\r\n inject(DestroyRef).onDestroy(() => {\r\n map.forEach((component) => component.destroy())\r\n map.clear();\r\n });\r\n\r\n return map;\r\n});\r\n\r\nexport function insWithStyles(component: Type<unknown>): undefined {\r\n const map = inject(MAP);\r\n const environmentInjector = inject(EnvironmentInjector);\r\n\r\n if (!map.has(component)) {\r\n map.set(component, createComponent(component, {environmentInjector}));\r\n }\r\n\r\n return undefined;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\nimport {INS_GROUP_OPTIONS} from './group.options';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/group.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-group',\r\n },\r\n})\r\nclass InsGroupStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insGroup]:not(ng-container)',\r\n host: {\r\n insGroup: '',\r\n // role: 'group',\r\n '[attr.data-orientation]': 'orientation',\r\n '[attr.data-size]': 'size',\r\n '[style.--t-group-radius]': 'rounded ? null : 0',\r\n '[style.--t-group-margin.rem]': 'collapsed ? null : 0.125',\r\n // '[style.--t-group-clip]': 'collapsed ? null : 0',\r\n '[style.--t-group-mask]': 'collapsed ? null : \"none\"',\r\n '[style.--t-group-mask-start]': 'collapsed ? null : \"none\"',\r\n '[style.--t-group-mask-end]': 'collapsed ? null : \"none\"',\r\n },\r\n})\r\nexport class InsGroup {\r\n private readonly options = inject(INS_GROUP_OPTIONS);\r\n\r\n protected readonly nothing = insWithStyles(InsGroupStyles);\r\n\r\n @Input()\r\n public orientation: 'horizontal' | 'vertical' = this.options.orientation;\r\n\r\n @Input()\r\n public collapsed = this.options.collapsed;\r\n\r\n @Input()\r\n public rounded = this.options.rounded;\r\n\r\n @Input()\r\n public size: 's'|'m'|'l' = this.options.size;\r\n}\r\n","import type {Provider} from '@angular/core';\r\nimport { InsAppearanceOptions } from '../appearance/appearance.options';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsAvatarOptions extends InsAppearanceOptions {\r\n readonly appearance: string;\r\n readonly round: boolean;\r\n readonly size: 'xs'|'s'|'m'|'l'|'xl'|'xxl'|'xxxl';\r\n}\r\n\r\nexport const INS_AVATAR_DEFAULT_OPTIONS: InsAvatarOptions = {\r\n appearance: '',\r\n round: false,\r\n size: 'l',\r\n};\r\n\r\nexport const INS_AVATAR_OPTIONS = createToken(INS_AVATAR_DEFAULT_OPTIONS);\r\n\r\nexport function insAvatarOptionsProvider(options: Partial<InsAvatarOptions>): Provider {\r\n return provideOptions(INS_AVATAR_OPTIONS, options, INS_AVATAR_DEFAULT_OPTIONS);\r\n}\r\n","import type {FactoryProvider} from '@angular/core';\r\nimport { InsAppearanceOptions } from '../appearance/appearance.options';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\n\r\n\r\nexport interface InsButtonOptions extends InsAppearanceOptions {\r\n readonly size: 'xs'|'s'|'m'|'l';\r\n}\r\n\r\nexport const INS_BUTTON_DEFAULT_OPTIONS: InsButtonOptions = {\r\n appearance: 'primary',\r\n size: 'm',\r\n};\r\n\r\nexport const INS_BUTTON_OPTIONS = createToken(INS_BUTTON_DEFAULT_OPTIONS);\r\n\r\nexport function insButtonOptionsProvider(\r\n options: Partial<InsButtonOptions>,\r\n): FactoryProvider {\r\n return provideOptions(INS_BUTTON_OPTIONS, options, INS_BUTTON_DEFAULT_OPTIONS);\r\n}\r\n","import { ValueProvider } from \"@angular/core\";\r\nimport { createToken, createTokenFromFactory } from \"../../service/create-token\";\r\n\r\n\r\nexport const INS_ASSETS_PATH = createToken('assets/icons');\r\n\r\nexport function insAssetsPathProvider(useValue: string): ValueProvider {\r\n return {\r\n provide: INS_ASSETS_PATH,\r\n useValue,\r\n };\r\n}\r\n\r\nexport const INS_ICON_START = createToken('');\r\nexport const INS_ICON_END = createToken('');","import type {FactoryProvider} from '@angular/core';\r\nimport {inject} from '@angular/core';\r\nimport { createToken } from '../../service/create-token';\r\n\r\nexport const INS_ICON_STARTS = createToken<Record<string, string>>({});\r\n\r\nexport function insIconsProvider(icons: Record<string, string>): FactoryProvider {\r\n return {\r\n provide: INS_ICON_STARTS,\r\n useFactory: () => ({\r\n ...(inject(INS_ICON_STARTS, {skipSelf: true, optional: true}) || {}),\r\n ...Object.fromEntries(\r\n Object.entries(icons).map(([key, value]) => [\r\n key,\r\n `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}`,\r\n ]),\r\n ),\r\n }),\r\n };\r\n}\r\n","import { ChangeDetectionStrategy, Component, Directive, inject, input, Input, InputSignal, signal, ViewEncapsulation } from \"@angular/core\";\r\nimport type {SafeResourceUrl} from '@angular/platform-browser';\r\nimport { insWithStyles } from \"../../service/with-styles\";\r\nimport { INS_ASSETS_PATH, INS_ICON_END, INS_ICON_START } from \"./icon.options\";\r\nimport { INS_ICON_STARTS } from \"./icons\";\r\nimport { InsStringHandler } from \"../../model/handler\";\r\n\r\n/**\r\n * Workaround for {@link insAvatar} to properly handle icon color in {@link insAppearance}\r\n */\r\ntype Icon = SafeResourceUrl | string | null | undefined;\r\n\r\nexport function insInjectIconResolver(): InsStringHandler<string> {\r\n const icons = inject(INS_ICON_STARTS);\r\n const path = inject(INS_ASSETS_PATH);\r\n return (icon: string)=>{\r\n return icon.includes('/')? icon : icons[icon] || `${path}/${icon}.svg`\r\n}\r\n}\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/icons.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-icons',\r\n },\r\n})\r\nclass InsIconsStyles { }\r\n\r\n@Directive({\r\n \r\n host: {\r\n insIcons: '',\r\n '[style.--t-icon-start]': 'iconStartSrc()',\r\n '[style.--t-icon-end]': 'iconEndSrc()',\r\n },\r\n})\r\nexport class InsIcons {\r\n protected readonly nothing = insWithStyles(InsIconsStyles);\r\n \r\n resolver = insInjectIconResolver();\r\n\r\n\r\n public iconStartSrc = signal<Icon>(\r\n this.resolve(inject(INS_ICON_START, { self: true, optional: true }))\r\n );\r\n public iconEndSrc = signal<string | null>(\r\n this.resolve(inject(INS_ICON_END, { self: true, optional: true }))\r\n );\r\n \r\n\r\n @Input()\r\n public set iconStart(value: string) {\r\n this.iconStartSrc.set(this.resolve(value));\r\n }\r\n\r\n @Input()\r\n public set iconEnd(value: string) {\r\n this.iconEndSrc.set(this.resolve(value));\r\n }\r\n\r\n public resolve(value?: string | null): string | null {\r\n return value ? `url(${this.resolver(value)})` : null;\r\n }\r\n}","import {Directive} from '@angular/core';\r\nimport { InsIcons } from './icons.directive';\r\n\r\n\r\n@Directive({\r\n \r\n hostDirectives: [\r\n {\r\n directive: InsIcons,\r\n inputs: ['iconStart', 'iconEnd'],\r\n },\r\n ],\r\n})\r\nexport class InsWithIcons {}\r\n","import type {ExistingProvider, ProviderToken} from '@angular/core';\r\n\r\nexport function insProvide<T>(\r\n provide: ProviderToken<T>,\r\n useExisting: ProviderToken<T>,\r\n): ExistingProvider;\r\nexport function insProvide<T>(\r\n provide: ProviderToken<T | T[]>,\r\n useExisting: ProviderToken<T>,\r\n multi: boolean,\r\n): ExistingProvider;\r\nexport function insProvide<T>(\r\n provide: ProviderToken<T>,\r\n useExisting: ProviderToken<T>,\r\n multi = false,\r\n): ExistingProvider {\r\n return {provide, useExisting, multi};\r\n}\r\n","import type { ExistingProvider, ProviderToken } from '@angular/core';\r\nimport { createToken } from '../../service/create-token';\r\nimport { insProvide } from '../../service/provide';\r\n\r\n/**\r\n * Bundled appearances for autocomplete purposes, not exported on purpose\r\n */\r\ntype Appearance =\r\n | 'accent'\r\n | 'action-destructive'\r\n | 'action-grayscale'\r\n | 'action'\r\n | 'flat-destructive'\r\n | 'flat-grayscale'\r\n | 'flat'\r\n | 'glass'\r\n | 'icon'\r\n | 'info'\r\n | 'negative'\r\n | 'neutral'\r\n | 'outline-destructive'\r\n | 'outline-grayscale'\r\n | 'outline'\r\n | 'positive'\r\n | 'primary-destructive'\r\n | 'primary-grayscale'\r\n | 'primary'\r\n | 'secondary-destructive'\r\n | 'secondary-grayscale'\r\n | 'secondary'\r\n\r\n | 'textfield'\r\n | (Record<never, never> & string);\r\n\r\nexport interface InsAppearanceOptions {\r\n readonly appearance: Appearance;\r\n}\r\n\r\nexport const INS_APPEARANCE_DEFAULT_OPTIONS: InsAppearanceOptions = {\r\n appearance: '',\r\n};\r\n\r\nexport const INS_APPEARANCE_OPTIONS = createToken(INS_APPEARANCE_DEFAULT_OPTIONS);\r\n\r\nexport function insAppearanceOptionsProvider(\r\n token: ProviderToken<InsAppearanceOptions>,\r\n): ExistingProvider {\r\n return insProvide(INS_APPEARANCE_OPTIONS, token);\r\n}\r\n","export function insCheckFixedPosition(element?: HTMLElement | null): boolean {\r\n return (\r\n !!element && (isFixed(element) || insCheckFixedPosition(element.parentElement))\r\n );\r\n}\r\n\r\nfunction isFixed(element: HTMLElement): boolean {\r\n return (\r\n element.ownerDocument.defaultView\r\n ?.getComputedStyle(element)\r\n .getPropertyValue('position') === 'fixed'\r\n );\r\n}\r\n","export function containsOrAfter(current: Node, node: Node): boolean {\r\n try {\r\n return (\r\n current.contains(node) ||\r\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING) // 当前节点在 DOM 树中位于目标节点之前 (current 在 node)\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n","export function isInput(element: Element): element is HTMLInputElement {\r\n return element.matches('input');\r\n}\r\n\r\nexport function isTextarea(element: Element): element is HTMLTextAreaElement {\r\n return element.matches('textarea');\r\n}\r\n\r\nexport function isTextfield(\r\n element: Element,\r\n): element is HTMLInputElement | HTMLTextAreaElement {\r\n return isInput(element) || isTextarea(element);\r\n}\r\n\r\nexport function isElement(\r\n node?: Element | EventTarget | Node | null,\r\n): node is Element {\r\n return !!node && 'nodeType' in node && node.nodeType === Node.ELEMENT_NODE;\r\n}\r\n\r\nexport function isHTMLElement(node: unknown): node is HTMLElement {\r\n const defaultView = (node as Element | undefined)?.ownerDocument.defaultView;\r\n\r\n return !!node && !!defaultView && node instanceof defaultView.HTMLElement;\r\n}\r\n\r\nexport function isTextNode(node: Node): node is Text {\r\n return node.nodeType === Node.TEXT_NODE;\r\n}\r\n","/**\r\n * Gets actual target from open Shadow DOM if event happened within it\r\n * 在使用 Web Components 或一般 ShadowDOM 时,你可能会在内部有多个可聚焦元素。 window 不会知道 shadow root 内部的聚焦转换。\r\n * document.activeElement 将保持不变——即 shadow root 元素。而这个 shadow root 将有它自己的 activeElement 来跟踪真正的聚焦元素\r\n * 然而,真正的目标将通过事件上的 composedPath 方法暴露给我们。\r\n */\r\nexport function getActualTarget(event: Event): Node {\r\n return event.composedPath()[0] as Node;\r\n}\r\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\r\n return 'getRootNode' in node && node.isConnected\r\n ? (node.getRootNode() as Document)\r\n : (node.ownerDocument as DocumentOrShadowRoot);\r\n}\r\n","export function isPresent<T>(value?: T | null): value is T {\r\n return value !== null && value !== undefined;\r\n}\r\n","\r\n/**\r\n * Clamps a value between two inclusive limits\r\n *\r\n * @param value\r\n * @param min lower limit\r\n * @param max upper limit\r\n */\r\nexport function insClamp(value: number, min: number, max: number): number {\r\n return Math.min(max, Math.max(min, value));\r\n}\r\n","import { isPresent } from \"../is-present\";\r\nimport { insClamp } from \"../math/clamp\";\r\nimport { getDocumentOrShadowRoot } from \"./get-document-or-shadow-root\";\r\n\r\n\r\n/**\r\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\r\n *\r\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\r\n * ```ts\r\n * function insGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null\r\n * ```\r\n */\r\nexport function insGetElementObscures(\r\n element: Element,\r\n): readonly [Element, Element, Element, Element] | [] | null {\r\n const {ownerDocument} = element;\r\n\r\n if (!ownerDocument?.defaultView || !element.getBoundingClientRect) {\r\n return null;\r\n }\r\n\r\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\r\n const doc = getDocumentOrShadowRoot(element);\r\n const rect = element.getBoundingClientRect();\r\n\r\n if (rect.width === 0 && rect.height === 0) {\r\n return null;\r\n }\r\n\r\n const left = insClamp(Math.round(rect.left) + 2, 0, innerWidth);\r\n const top = insClamp(Math.round(rect.top) + 2, 0, innerHeight);\r\n const right = insClamp(Math.round(rect.right) - 2, 0, innerWidth);\r\n const bottom = insClamp(Math.round(rect.bottom) - 2, 0, innerHeight);\r\n const horizontalMiddle = insClamp(\r\n Math.round(rect.left + rect.width / 2),\r\n 0,\r\n innerWidth,\r\n );\r\n const verticalMiddle = insClamp(\r\n Math.round(rect.top + rect.height / 2),\r\n 0,\r\n innerHeight,\r\n );\r\n const elements = [\r\n doc.elementFromPoint(horizontalMiddle, top),\r\n doc.elementFromPoint(horizontalMiddle, bottom),\r\n doc.elementFromPoint(left, verticalMiddle),\r\n doc.elementFromPoint(right, verticalMiddle),\r\n ];\r\n const nonNull = elements.filter(isPresent);\r\n\r\n if (!nonNull.length) {\r\n return [];\r\n }\r\n\r\n const filtered = nonNull.filter(\r\n (el) => !element.contains(el) && !el.contains(element),\r\n );\r\n\r\n return filtered.length === 4\r\n ? (filtered as [Element, Element, Element, Element])\r\n : null;\r\n}\r\n","import { isTextfield } from \"./element-checks\";\r\n\r\n\r\n/**\r\n * @description:\r\n * cross browser way to get selected text\r\n *\r\n * History:\r\n * BUG - window.getSelection() fails when text selected in a form field\r\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\r\n */\r\nexport function insGetSelectedText({getSelection, document}: Window): string | null {\r\n return document.activeElement && isTextfield(document.activeElement)\r\n ? document.activeElement.value.slice(\r\n document.activeElement.selectionStart || 0,\r\n document.activeElement.selectionEnd || 0,\r\n )\r\n : getSelection()?.toString() || null;\r\n}\r\n","/**\r\n * @description:\r\n * Cross-browser @media (height/width)\r\n *\r\n * 1. window.innerWidth/Width\r\n * 1.1. gets CSS viewport @media (height/width) which include scrollbars\r\n * 1.2. initial-scale and zoom variations may cause mobile values to\r\n * wrongly scale down to what PPK calls the visual\r\n * viewport and be smaller than the @media values\r\n * 1.3. zoom may cause values to be 1px off due to native rounding\r\n *\r\n * 2. document.documentElement.clientHeight/Width\r\n * 2.1. equals CSS viewport width minus scrollbar width\r\n * 2.2. matches @media (height) when there is no scrollbar\r\n * 2.3. available cross-browser\r\n * 2.4. inaccurate if doctype is missing\r\n */\r\nexport function getViewportHeight({document, innerHeight}: Window): number {\r\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\r\n}\r\n\r\nexport function getViewportWidth({document, innerWidth}: Window): number {\r\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\r\n}\r\n","import {ElementRef, inject} from '@angular/core';\r\n\r\nexport function injectElement<T = HTMLElement>(): T {\r\n return inject(ElementRef).nativeElement;\r\n}\r\n","import { isTextfield} from './element-checks';\r\n\r\nexport function insIsElementEditable(element: HTMLElement): boolean {\r\n return (isTextfield(element) && !element.readOnly) || !!element.isContentEditable;\r\n}\r\n","/**\r\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\r\n */\r\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/2013/ EN dash}\r\n * is used to indicate a range of numbers or a span of time.\r\n * @example 2006–2022\r\n * ___\r\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\r\n */\r\nexport const CHAR_EN_DASH = '\\u2013';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/2014/ EM dash}\r\n * is used to mark a break in a sentence.\r\n * @example Taiga UI — powerful set of open source components for Angular\r\n * ___\r\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\r\n */\r\nexport const CHAR_EM_DASH = '\\u2014';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\r\n */\r\nexport const CHAR_LAQUO = '\\u00AB';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\r\n */\r\nexport const CHAR_RAQUO = '\\u00BB';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\r\n * is used to combine words.\r\n * @example well-behaved\r\n * ___\r\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\r\n */\r\nexport const CHAR_HYPHEN = '\\u002D';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/2212/ Minus}\r\n * is used as math operator symbol or before negative digits.\r\n * ---\r\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\r\n */\r\nexport const CHAR_MINUS = '\\u2212';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/002B/ Plus}\r\n */\r\nexport const CHAR_PLUS = '\\u002B';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/2022/ Bullet}.\r\n */\r\nexport const CHAR_BULLET = '\\u2022';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\r\n */\r\nexport const CHAR_ELLIPSIS = '\\u2026';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\r\n */\r\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\r\n\r\n/**\r\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\r\n */\r\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\r\n","export const svgNodeFilter: Exclude<NodeFilter, (node: Node) => number> = {\r\n acceptNode(node: Node): number {\r\n return 'ownerSVGElement' in node\r\n ? NodeFilter.FILTER_REJECT\r\n : NodeFilter.FILTER_ACCEPT;\r\n },\r\n};\r\n","import { CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_SPACE } from \"../../token/unicode-chars\";\r\nimport { svgNodeFilter } from \"../svg-node-filter\";\r\n\r\n\r\n/**\r\n * 获取光标位置的语义化单词范围(支持中文)\r\n */\r\nexport function insGetSemanticWordRange(range: Range): Range {\r\n const { startContainer, startOffset } = range;\r\n \r\n // 仅处理文本节点\r\n if (startContainer.nodeType !== Node.TEXT_NODE) {\r\n return range;\r\n }\r\n\r\n const text = startContainer.textContent || '';\r\n const newRange = range.cloneRange();\r\n\r\n // 使用 Intl.Segmenter 进行分词\r\n // 'zh-CN' 可以自动处理中文分词,同时也兼容英文单词分割\r\n const segmenter = new Intl.Segmenter('zh-CN', { granularity: 'word' });\r\n const segments = segmenter.segment(text);\r\n\r\n // 找到包含当前光标位置(startOffset)的那个分词片段\r\n let foundSegment = null;\r\n for (const segment of segments) {\r\n // segment.index 是当前词的起始索引\r\n // segment.segment 是词的内容\r\n const start = segment.index;\r\n const end = start + segment.segment.length;\r\n\r\n // 判断光标是否在这个词的区间内\r\n // 注意:根据需求,光标在词尾通常也算作该词\r\n if (startOffset >= start && startOffset <= end) {\r\n foundSegment = segment;\r\n break;\r\n }\r\n }\r\n\r\n if (foundSegment) {\r\n // 如果是空格或标点,可能需要根据需求决定是否选中\r\n if (foundSegment.isWordLike) {\r\n newRange.setStart(startContainer, foundSegment.index);\r\n newRange.setEnd(startContainer, foundSegment.index + foundSegment.segment.length);\r\n return newRange;\r\n }\r\n }\r\n\r\n return range; // 如果没找到或不是词,返回原 Range\r\n}\r\n\r\n\r\n/**\r\n * Creates a cloned range with its boundaries set at word boundaries\r\n *\r\n * @param currentRange a range to clone\r\n * @return modified range\r\n */\r\nexport function insGetWordRange(currentRange: Range): Range {\r\n const range = currentRange.cloneRange();\r\n const {startContainer, startOffset, endContainer, endOffset} = range;\r\n const {ownerDocument} = startContainer;\r\n\r\n if (!ownerDocument) {\r\n return range;\r\n }\r\n\r\n const treeWalker = ownerDocument.createTreeWalker(\r\n ownerDocument.body,\r\n NodeFilter.SHOW_TEXT,\r\n svgNodeFilter,\r\n );\r\n\r\n treeWalker.currentNode = startContainer;\r\n\r\n do {\r\n const container = treeWalker.currentNode;\r\n const textContent = container.textContent || '';\r\n const content =\r\n container === startContainer\r\n ? textContent.slice(0, Math.max(0, startOffset + 1))\r\n : textContent;\r\n const offset =\r\n Math.max(\r\n content.lastIndexOf(' '),\r\n content.lastIndexOf('\\n'),\r\n content.lastIndexOf(CHAR_NO_BREAK_SPACE),\r\n content.lastIndexOf(CHAR_ZERO_WIDTH_SPACE),\r\n ) + 1;\r\n\r\n range.setStart(container, 0);\r\n\r\n if (offset) {\r\n range.setStart(container, offset);\r\n break;\r\n }\r\n } while (treeWalker.previousNode());\r\n\r\n treeWalker.currentNode = endContainer;\r\n\r\n do {\r\n const container = treeWalker.currentNode;\r\n const textContent = container.textContent || '';\r\n const content =\r\n container === endContainer ? textContent.slice(endOffset + 1) : textContent;\r\n const offset = [\r\n content.indexOf(' '),\r\n content.lastIndexOf('\\n'),\r\n content.indexOf(CHAR_NO_BREAK_SPACE),\r\n content.indexOf(CHAR_ZERO_WIDTH_SPACE),\r\n ].reduce(\r\n (result, item) =>\r\n result === -1 || item === -1\r\n ? Math.max(result, item)\r\n : Math.min(result, item),\r\n -1,\r\n );\r\n\r\n range.setEnd(container, textContent.length);\r\n\r\n if (offset !== -1) {\r\n range.setEnd(container, offset + textContent.length - content.length);\r\n break;\r\n }\r\n } while (treeWalker.nextNode());\r\n\r\n return range;\r\n}\r\n","import {afterNextRender, Directive} from '@angular/core';\r\nimport { injectElement } from '../dom';\r\n\r\n@Directive({\r\n selector: '[insTransitioned]',\r\n host: {'[style.transition]': '\"none\"'},\r\n})\r\nexport class InsTransitioned {\r\n private readonly el = injectElement();\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n requestAnimationFrame(() => {\r\n this.el.style.setProperty('transition', '');\r\n });\r\n });\r\n }\r\n}\r\n","import {\r\n afterNextRender,\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n Directive,\r\n ElementRef,\r\n inject,\r\n Input,\r\n model,\r\n signal,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { INS_APPEARANCE_OPTIONS } from './appearance.options';\r\nimport { insWithStyles } from '../../service/with-styles';\r\nimport { InsInteractiveState } from '../../model/interactive-state';\r\nimport { injectElement } from '../../service/dom/inject-element';\r\nimport { InsTransitioned } from '../../service/transitioned';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/appearance.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-appearance',\r\n },\r\n})\r\nclass InsAppearanceStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insAppearance]',\r\n hostDirectives: [InsTransitioned],\r\n host: {\r\n insAppearance: '',\r\n '[attr.data-appearance]': 'insAppearance()',\r\n '[attr.data-state]': 'insAppearanceState()',\r\n '[attr.data-focus]': 'insAppearanceFocus()',\r\n '[attr.data-mode]': 'insAppearanceMode()'\r\n },\r\n})\r\nexport class InsAppearance {\r\n protected readonly nothing = insWithStyles(InsAppearanceStyles);\r\n \r\n public readonly insAppearance = model(inject(INS_APPEARANCE_OPTIONS).appearance);\r\n public readonly insAppearanceState = model<InsInteractiveState | null>(null);\r\n public readonly insAppearanceFocus = model<boolean | null>(null);\r\n public readonly insAppearanceMode = model<string | readonly string[] | null>(null)\r\n\r\n // @Input()\r\n // public set insAppearance(appearance: InsAppearanceOptions['appearance']) {\r\n // this.appearance.set(appearance);\r\n // }\r\n\r\n // @Input()\r\n // public set insAppearanceState(state: InsInteractiveState | null) {\r\n // this.state.set(state);\r\n // }\r\n\r\n // @Input()\r\n // public set insAppearanceFocus(focus: boolean | null) {\r\n // this.focus.set(focus);\r\n // }\r\n\r\n // @Input()\r\n // public set insAppearanceMode(focus: string | readonly string[] | null) {\r\n // this.mode.set(focus);\r\n // }\r\n public modes = computed((mode = this.insAppearanceMode()) =>\r\n !mode || (typeof mode === 'string') ? mode : mode.join(' '),\r\n );\r\n\r\n}\r\n","import {Directive} from '@angular/core';\r\nimport { InsAppearance } from './appearance.directive';\r\n\r\n@Directive({\r\n \r\n hostDirectives: [\r\n {\r\n directive: InsAppearance,\r\n inputs: [\r\n 'insAppearance: appearance',\r\n 'insAppearanceState',\r\n 'insAppearanceFocus',\r\n ],\r\n },\r\n ],\r\n})\r\nexport class InsWithAppearance {}\r\n","import { ChangeDetectionStrategy, Component, Directive, inject, Input, input, signal, ViewEncapsulation } from \"@angular/core\";\r\n\r\nimport { InsWithIcons } from \"../icon/with-icons\";\r\nimport { InsWithAppearance } from \"../appearance/with-appearance\";\r\nimport { insWithStyles } from \"../../service/with-styles\";\r\nimport { insAppearanceOptionsProvider } from \"../appearance/appearance.options\";\r\nimport { INS_BUTTON_OPTIONS } from \"./button.options\";\r\n\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/button.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-button',\r\n },\r\n})\r\nclass InsButtonStyles {}\r\n\r\n@Directive({\r\n \r\n selector: 'a[insButton],button[insButton],a[insIconButton],button[insIconButton]',\r\n providers: [insAppearanceOptionsProvider(INS_BUTTON_OPTIONS)],\r\n hostDirectives: [{ directive: InsWithAppearance }, { directive: InsWithIcons }],\r\n host: {\r\n '[attr.data-size]': 'size()',\r\n },\r\n})\r\nexport class InsButton {\r\n private readonly options = inject(INS_BUTTON_OPTIONS);\r\n protected readonly nothing = insWithStyles(InsButtonStyles);\r\n // public size = input(this.options.size)\r\n public size = signal(this.options.size)\r\n\r\n @Input('size')\r\n public set sizeSetter(size: 'xs'|'s' | 'm' | 'l') {\r\n this.size.set(size)\r\n }\r\n}\r\n\r\n","export class PolymorpheusContext<T> {\r\n constructor(public readonly $implicit: T) {}\r\n\r\n public get polymorpheusOutlet(): T {\r\n return this.$implicit;\r\n }\r\n}\r\n","import {InjectionToken} from '@angular/core';\r\n\r\n/**\r\n * Use this token to access context within your components when\r\n * instantiating them through {@link PolymorpheusOutlet}\r\n */\r\nexport const POLYMORPHEUS_CONTEXT = new InjectionToken<Record<any, any>>(\r\n 'POLYMORPHEUS_CONTEXT',\r\n);\r\n","import { Injector, Type } from \"@angular/core\";\r\nimport { POLYMORPHEUS_CONTEXT } from \"./context\";\r\n\r\nexport class PolymorpheusComponent<T> {\r\n constructor(\r\n public readonly component: Type<T>,\r\n public readonly i?: Injector,\r\n ){}\r\n\r\n public createInjector<C>(injector: Injector, useValue?: C): Injector{\r\n return Injector.create({\r\n parent: this.i||injector,\r\n providers: [\r\n {\r\n provide: POLYMORPHEUS_CONTEXT,\r\n useValue\r\n }\r\n ]\r\n })\r\n }\r\n}","import {ChangeDetectorRef, Directive, inject, TemplateRef} from '@angular/core';\r\n\r\n/**\r\n * ng-template wrapper directive also stores {@link ChangeDetectorRef} to properly handle change detection.\r\n */\r\n@Directive({\r\n \r\n selector: 'ng-template[polymorpheus]',\r\n inputs: ['polymorpheus'],\r\n exportAs: 'polymorpheus',\r\n})\r\nexport class PolymorpheusTemplate<C = any> {\r\n public polymorpheus: C | '' = '';\r\n\r\n constructor(\r\n public readonly template: TemplateRef<C> = inject(TemplateRef<C>, {self: true}),\r\n private readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef),\r\n ) {}\r\n\r\n public static ngTemplateContextGuard<T>(\r\n _dir: PolymorpheusTemplate<T>,\r\n _ctx: any,\r\n ): _ctx is T extends '' ? any : T {\r\n return true;\r\n }\r\n\r\n public check(): void {\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","import type {ComponentRef, OnChanges, SimpleChanges} from '@angular/core';\r\nimport {\r\n ChangeDetectorRef,\r\n Directive,\r\n inject,\r\n INJECTOR,\r\n reflectComponentType,\r\n TemplateRef,\r\n ViewContainerRef, DoCheck,\r\n} from '@angular/core';\r\nimport { PolymorpheusContext } from './class/context';\r\nimport { PolymorpheusPrimitive } from './PolymorpheusPrimitive';\r\nimport { PolymorpheusContent } from './content';\r\nimport { PolymorpheusComponent } from './PolymorpheusComponent';\r\nimport { PolymorpheusTemplate } from './PolymorpheusTemplate';\r\n\r\n\r\n@Directive({\r\n selector: '[polymorpheusOutlet]',\r\n inputs: ['content: polymorpheusOutlet', 'context: polymorpheusOutletContext'],\r\n})\r\nexport class PolymorpheusOutlet<C> implements OnChanges, DoCheck {\r\n private readonly vcr = inject(ViewContainerRef);\r\n private readonly i = inject(INJECTOR);\r\n private readonly t: TemplateRef<PolymorpheusContext<PolymorpheusPrimitive>> =\r\n inject(TemplateRef);\r\n\r\n private c?: ComponentRef<unknown>;\r\n\r\n \r\n public content: PolymorpheusContent<C> = '';\r\n public context?: C;\r\n\r\n public static ngTemplateContextGuard<T>(\r\n _dir: PolymorpheusOutlet<T>,\r\n _ctx: any,\r\n ): _ctx is PolymorpheusContext<T extends PolymorpheusPrimitive ? T : never> {\r\n return true;\r\n }\r\n\r\n public ngOnChanges({content}: SimpleChanges): void {\r\n this.update()\r\n this.c?.injector.get(ChangeDetectorRef).markForCheck();\r\n\r\n if (!content) {\r\n return;\r\n }\r\n\r\n const context = this.getContext();\r\n this.vcr.clear();\r\n\r\n const proxy =\r\n context &&\r\n (new Proxy(context as object, {\r\n get: (_, key) =>\r\n this.getContext()?.[key as keyof (C | PolymorpheusContext<any>)],\r\n }) as unknown as C);\r\n\r\n if (isComponent(this.content)) {\r\n this.process(this.content, proxy as unknown as C);\r\n this.update()\r\n } else if (\r\n \r\n (context instanceof PolymorpheusContext && context.$implicit) != null\r\n ) {\r\n this.vcr.createEmbeddedView(this.template, proxy, {injector: this.i});\r\n }\r\n }\r\n\r\n public ngDoCheck(): void {\r\n if (isDirective(this.content)) {\r\n this.content.check();\r\n }\r\n }\r\n\r\n private get template(): TemplateRef<unknown> {\r\n if (isDirective(this.content)) {\r\n return this.content.template;\r\n }\r\n\r\n return this.content instanceof TemplateRef ? this.content : this.t;\r\n }\r\n\r\n private getContext(): C | PolymorpheusContext<any> | undefined {\r\n if (isTemplate(this.content) || isComponent(this.content)) {\r\n return this.context;\r\n }\r\n\r\n return new PolymorpheusContext(\r\n this.context && typeof this.content === 'function'\r\n ? this.content(this.context)\r\n : this.content,\r\n );\r\n }\r\n\r\n private process(content: PolymorpheusComponent<unknown>, proxy?: C): void {\r\n const injector = content.createInjector(this.i, proxy);\r\n\r\n this.c = this.vcr.createComponent(content.component, {injector});\r\n }\r\n\r\n private update(): void {\r\n const {context, content} = this;\r\n\r\n if (!context || typeof context !== 'object' || !isComponent(content)) {\r\n return;\r\n }\r\n\r\n const {inputs = []} = reflectComponentType(content.component) || {};\r\n\r\n for (const {templateName} of inputs) {\r\n if (templateName in context) {\r\n this.c?.setInput(templateName, context[templateName as keyof C]);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction isDirective<C>(\r\n content: PolymorpheusContent<C>,\r\n): content is PolymorpheusTemplate<C> {\r\n return content instanceof PolymorpheusTemplate;\r\n}\r\n\r\nfunction isComponent<C>(\r\n content: PolymorpheusContent<C>,\r\n): content is PolymorpheusComponent<any> {\r\n return content instanceof PolymorpheusComponent;\r\n}\r\n\r\nfunction isTemplate<C>(\r\n content: PolymorpheusContent<C>,\r\n): content is PolymorpheusTemplate<C> | TemplateRef<C> {\r\n return isDirective(content) || content instanceof TemplateRef;\r\n}\r\n","import {inject, NgZone} from '@angular/core';\r\nimport {\r\n asyncScheduler,\r\n type MonoTypeOperatorFunction,\r\n type SchedulerLike,\r\n type Subscription,\r\n} from 'rxjs';\r\nimport {Observable, pipe} from 'rxjs';\r\n\r\nexport function insZonefull<T>(zone = inject(NgZone)): MonoTypeOperatorFunction<T> {\r\n return (source) =>\r\n new Observable((subscriber) =>\r\n source.subscribe({\r\n next: (value) => zone.run(() => subscriber.next(value)),\r\n error: (error: unknown) => zone.run(() => subscriber.error(error)),\r\n complete: () => zone.run(() => subscriber.complete()),\r\n }),\r\n );\r\n}\r\n\r\nexport function insZonefree<T>(zone = inject(NgZone)): MonoTypeOperatorFunction<T> {\r\n return (source) =>\r\n new Observable((subscriber) =>\r\n zone.runOutsideAngular(() => source.subscribe(subscriber)),\r\n );\r\n}\r\n\r\nexport function insZoneOptimized<T>(zone = inject(NgZone)): MonoTypeOperatorFunction<T> {\r\n return pipe(insZonefree(zone), insZonefull(zone));\r\n}\r\n\r\nclass InsZoneScheduler implements SchedulerLike {\r\n constructor(\r\n private readonly zoneConditionFn: <T>(fn: (...args: unknown[]) => T) => T,\r\n private readonly scheduler: SchedulerLike = asyncScheduler,\r\n ) {}\r\n\r\n public now(): number {\r\n return this.scheduler.now();\r\n }\r\n\r\n public schedule(...args: Parameters<SchedulerLike['schedule']>): Subscription {\r\n return this.zoneConditionFn(() => this.scheduler.schedule(...args));\r\n }\r\n}\r\n\r\nexport function insZonefreeScheduler(\r\n zone = inject(NgZone),\r\n scheduler: SchedulerLike = asyncScheduler,\r\n): SchedulerLike {\r\n return new InsZoneScheduler(zone.runOutsideAngular.bind(zone), scheduler);\r\n}\r\n\r\nexport function insZonefullScheduler(\r\n zone = inject(NgZone),\r\n scheduler: SchedulerLike = asyncScheduler,\r\n): SchedulerLike {\r\n return new InsZoneScheduler(zone.run.bind(zone), scheduler);\r\n}\r\n","import {inject, InjectionToken, RendererFactory2} from '@angular/core';\r\nimport {map, share, startWith, Subject, switchMap, timer} from 'rxjs';\r\n\r\n// TODO: Remove when fixed: https://issues.chromium.org/issues/41484175\r\nexport const INS_REMOVED_ELEMENT = new InjectionToken(\r\n '',\r\n {\r\n factory: () => {\r\n const element$ = new Subject<Element | null>();\r\n const renderer = inject(RendererFactory2).createRenderer(null, null);\r\n const proto = Object.getPrototypeOf((renderer as any).delegate ?? renderer);\r\n const {removeChild} = proto;\r\n\r\n proto.removeChild = function (...args: any[]): void {\r\n element$.next(args[1]);\r\n removeChild.apply(this, args);\r\n };\r\n\r\n return element$.pipe(\r\n startWith(null),\r\n switchMap((element) =>\r\n timer(0).pipe(\r\n map(() => null),\r\n startWith(element),\r\n ),\r\n ),\r\n share(),\r\n );\r\n },\r\n },\r\n);\r\n","\r\nimport {inject, InjectionToken, DOCUMENT} from '@angular/core';\r\n\r\nexport const WINDOW = new InjectionToken<Window>('[WA_WINDOW]', {\r\n factory: () => {\r\n const {defaultView} = inject(DOCUMENT);\r\n\r\n if (!defaultView) {\r\n throw new Error('Window is not available');\r\n }\r\n\r\n return defaultView;\r\n },\r\n});","import {inject, InjectionToken} from '@angular/core';\r\nimport {Observable, share} from 'rxjs';\r\nimport { WINDOW } from './window.token';\r\n\r\nexport const ANIMATION_FRAME = new InjectionToken<Observable<DOMHighResTimeStamp>>(\r\n '[WA_ANIMATION_FRAME]',\r\n {\r\n factory: () => {\r\n const {requestAnimationFrame, cancelAnimationFrame} = inject(WINDOW);\r\n const animationFrame$ = new Observable<DOMHighResTimeStamp>((subscriber) => {\r\n let id = NaN;\r\n const callback = (timestamp: DOMHighResTimeStamp): void => {\r\n subscriber.next(timestamp);\r\n id = requestAnimationFrame(callback);\r\n };\r\n\r\n id = requestAnimationFrame(callback);\r\n\r\n return () => {\r\n cancelAnimationFrame(id);\r\n };\r\n });\r\n\r\n return animationFrame$.pipe(share());\r\n },\r\n },\r\n);","import { InjectionToken, inject } from '@angular/core';\r\nimport { WINDOW } from './window.token';\r\n\r\n/**\r\n * 存储接口,模拟localStorage API\r\n */\r\nexport interface Storage {\r\n readonly length: number;\r\n clear(): void;\r\n getItem(key: string): string | null;\r\n key(index: number): string | null;\r\n removeItem(key: string): void;\r\n setItem(key: string, value: string): void;\r\n}\r\n\r\n/**\r\n * 空存储实现,用于服务器端渲染\r\n */\r\nclass NullStorage implements Storage {\r\n readonly length = 0;\r\n \r\n clear(): void {}\r\n \r\n getItem(): string | null {\r\n return null;\r\n }\r\n \r\n key(): string | null {\r\n return null;\r\n }\r\n \r\n removeItem(): void {}\r\n \r\n setItem(): void {}\r\n}\r\n\r\nexport const LOCAL_STORAGE = new InjectionToken<Storage>('[WA_LOCAL_STORAGE]', {\r\n factory: () => inject(WINDOW).localStorage,\r\n});\r\n","import { InjectionToken, Provider } from \"@angular/core\";\r\n\r\nexport const SafeObserver =\r\n typeof MutationObserver !== 'undefined'\r\n ? MutationObserver\r\n : class implements MutationObserver {\r\n public observe(): void { }\r\n public disconnect(): void { }\r\n public takeRecords(): MutationRecord[] {\r\n return [];\r\n }\r\n };\r\n\r\nexport const MUTATION_OBSERVER_INIT = new InjectionToken<MutationObserverInit>(\r\n '[MUTATION_OBSERVER_INIT]',\r\n);\r\n\r\n\r\nexport function provideMutationObserverInit(useValue: MutationObserverInit): Provider {\r\n return {\r\n provide: MUTATION_OBSERVER_INIT,\r\n useValue,\r\n };\r\n}","import { ElementRef, inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { MUTATION_OBSERVER_INIT, SafeObserver } from \"./mutation-observer.option\";\r\n\r\n@Injectable()\r\nexport class MutationObserverService extends Observable<readonly MutationRecord[]> {\r\n constructor() {\r\n const nativeElement: Node = inject(ElementRef).nativeElement;\r\n const config = inject(MUTATION_OBSERVER_INIT);\r\n\r\n super((subscriber) => {\r\n const observer = new SafeObserver((records) => {\r\n subscriber.next(records);\r\n });\r\n\r\n observer.observe(nativeElement, config);\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n });\r\n }\r\n}"," \r\nimport type {OnDestroy} from '@angular/core';\r\nimport {Directive, ElementRef, EventEmitter, inject, Input, Output} from '@angular/core';\r\nimport { MUTATION_OBSERVER_INIT, SafeObserver } from './mutation-observer.option';\r\n\r\n@Directive({\r\n \r\n selector: '[mutationObserver]',\r\n providers: [\r\n {\r\n provide: MUTATION_OBSERVER_INIT,\r\n useFactory: mutationObserverInitFactory,\r\n },\r\n ],\r\n exportAs: 'MutationObserver',\r\n})\r\nexport class MutationObserver extends SafeObserver implements OnDestroy {\r\n private readonly nativeElement: Node = inject(ElementRef).nativeElement;\r\n private readonly config = inject(MUTATION_OBSERVER_INIT);\r\n\r\n @Input()\r\n public attributeFilter = '';\r\n\r\n @Input()\r\n public attributeOldValue = '' as const;\r\n\r\n @Input()\r\n public attributes = '' as const;\r\n\r\n @Input()\r\n public characterData = '' as const;\r\n\r\n @Input()\r\n public characterDataOldValue = '' as const;\r\n\r\n @Input()\r\n public childList = '' as const;\r\n\r\n @Input()\r\n public subtree = '' as const;\r\n\r\n @Output()\r\n public readonly mutationObserver = new EventEmitter<MutationRecord[]>();\r\n\r\n constructor() {\r\n super((records) => {\r\n this.mutationObserver.emit(records);\r\n });\r\n\r\n this.observe(this.nativeElement, this.config);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.disconnect();\r\n }\r\n}\r\n\r\n\r\nfunction mutationObserverInitFactory(): MutationObserverInit {\r\n const {nativeElement} = inject(ElementRef);\r\n const attributeFilter: string | null = nativeElement.getAttribute('attributeFilter');\r\n\r\n return {\r\n attributeFilter: attributeFilter?.split(',').map((attr) => attr.trim()),\r\n attributeOldValue: booleanAttribute(nativeElement, 'attributeOldValue'),\r\n attributes: booleanAttribute(nativeElement, 'attributes'),\r\n characterData: booleanAttribute(nativeElement, 'characterData'),\r\n characterDataOldValue: booleanAttribute(nativeElement, 'characterDataOldValue'),\r\n childList: booleanAttribute(nativeElement, 'childList'),\r\n subtree: booleanAttribute(nativeElement, 'subtree'),\r\n };\r\n}\r\n\r\nfunction booleanAttribute(element: Element, attribute: string): true | undefined {\r\n return element.getAttribute(attribute) !== null || undefined;\r\n}\r\n","import {InjectionToken} from '@angular/core';\r\n\r\nexport const RESIZE_OPTION_BOX_DEFAULT = 'content-box';\r\n\r\nexport const RESIZE_OPTION_BOX = new InjectionToken<ResizeObserverBoxOptions>(\r\n '[RESIZE_OPTION_BOX]',\r\n {\r\n providedIn: 'root',\r\n factory: () => RESIZE_OPTION_BOX_DEFAULT,\r\n },\r\n);","import { ElementRef, inject, Injectable} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RESIZE_OPTION_BOX } from './resize.token';\r\n\r\n\r\n@Injectable()\r\nexport class ResizeObserverService extends Observable<readonly ResizeObserverEntry[]> {\r\n constructor() {\r\n const nativeElement: HTMLElement = inject(ElementRef).nativeElement;\r\n const box = inject(RESIZE_OPTION_BOX);\r\n\r\n super((subscriber) => {\r\n const observer = new SafeObserver((entries) => subscriber.next(entries));\r\n\r\n observer.observe(nativeElement, {box});\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n });\r\n }\r\n}\r\n\r\nconst SafeObserver =\r\n typeof ResizeObserver !== 'undefined'\r\n ? ResizeObserver\r\n : class implements ResizeObserver {\r\n public observe(): void {}\r\n public unobserve(): void {}\r\n public disconnect(): void {}\r\n };\r\n\r\n\r\n","import {Directive, ElementRef, inject, Injectable} from '@angular/core';\r\nimport { ResizeObserverService } from './resize.service';\r\nimport { RESIZE_OPTION_BOX, RESIZE_OPTION_BOX_DEFAULT } from './resize.token';\r\n\r\n@Directive({\r\n \r\n selector: '[resizeObserver]',\r\n inputs: ['resizeBox: box'],\r\n outputs: ['resizeObserver'],\r\n providers: [\r\n ResizeObserverService,\r\n {\r\n provide: RESIZE_OPTION_BOX,\r\n useFactory: (): ResizeObserverBoxOptions =>\r\n inject(ElementRef).nativeElement.getAttribute('resizeBox') ||\r\n RESIZE_OPTION_BOX_DEFAULT,\r\n },\r\n ],\r\n})\r\nexport class ResizeObserver {\r\n protected readonly resizeObserver = inject(ResizeObserverService);\r\n\r\n public box: ResizeObserverBoxOptions = RESIZE_OPTION_BOX_DEFAULT;\r\n}\r\n","import {isPlatformBrowser} from '@angular/common';\r\nimport {\r\n afterNextRender,\r\n Directive,\r\n inject,\r\n PLATFORM_ID,\r\n type Renderer2,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { injectElement, isElement } from '../dom';\r\n\r\nexport const INS_ENTER = 'ins-enter';\r\nexport const INS_LEAVE = 'ins-leave';\r\n\r\n@Directive({\r\n selector: '[insAnimated]',\r\n host: {\r\n class: INS_ENTER,\r\n '(animationend.self)': 'remove()',\r\n '(animationcancel.self)': 'remove()',\r\n },\r\n})\r\nexport class InsAnimated {\r\n // @ts-ignore https://github.com/angular/angular/blob/main/packages/core/src/render3/interfaces/view.ts#L56\r\n private readonly renderer = inject(ViewContainerRef)._hostLView?.[11];\r\n private readonly el = injectElement();\r\n\r\n constructor() {\r\n afterNextRender(() => this.remove());\r\n\r\n if (this.renderer && isPlatformBrowser(inject(PLATFORM_ID))) {\r\n // delegate is used in Angular Animations renderer\r\n wrap(this.renderer.delegate || this.renderer);\r\n }\r\n }\r\n\r\n protected remove(): void {\r\n if (this.el.isConnected && !this.el.getAnimations?.().length) {\r\n this.el.classList.remove(INS_ENTER);\r\n }\r\n }\r\n}\r\n\r\nfunction wrap(renderer: Renderer2): void {\r\n if (renderer.data[INS_LEAVE]) {\r\n return;\r\n }\r\n\r\n const {removeChild} = renderer;\r\n\r\n renderer.data[INS_LEAVE] = true;\r\n\r\n renderer.removeChild = (parent: Node, el: Node, host?: boolean): void => {\r\n if (!isElement(el)) {\r\n removeChild.call(renderer, parent, el, host);\r\n\r\n return;\r\n }\r\n\r\n el.classList.remove(INS_ENTER);\r\n\r\n const {length} = el.getAnimations?.() || [];\r\n\r\n el.classList.add(INS_LEAVE);\r\n\r\n const animations = el.getAnimations?.() ?? [];\r\n const last = animations[animations.length - 1];\r\n const finish = (): void => {\r\n if (!parent || parent.contains(el)) {\r\n removeChild.call(renderer, parent, el, host);\r\n (el as Element).classList.remove(INS_LEAVE);\r\n }\r\n };\r\n\r\n if (animations.length > length && last) {\r\n last.onfinish = finish;\r\n last.oncancel = finish;\r\n } else {\r\n finish();\r\n }\r\n };\r\n}\r\n","import {Directive, inject, Input} from '@angular/core';\r\nimport {identity} from 'rxjs';\r\nimport { WINDOW } from '../../webapi';\r\nimport { InsStringHandler } from '../../model/handler';\r\nimport { insGetSelectedText } from '../dom/get-selected-text';\r\n\r\n@Directive({\r\n \r\n selector: '[insCopyProcessor]',\r\n host: {\r\n '(copy.prevent)': 'onCopy($event)',\r\n },\r\n})\r\nexport class InsCopyProcessor {\r\n private readonly win = inject(WINDOW);\r\n\r\n @Input()\r\n public insCopyProcessor: InsStringHandler<string> = identity;\r\n\r\n protected onCopy(event: ClipboardEvent): void {\r\n const text = insGetSelectedText(this.win);\r\n\r\n if (text) {\r\n event.clipboardData?.setData('text/plain', this.insCopyProcessor(text));\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {fromEvent, merge} from 'rxjs';\r\nimport { ResizeObserverService } from '../../webapi/resize/resize.service';\r\nimport { injectElement } from '../dom/inject-element';\r\nimport { insWithStyles } from '../with-styles';\r\nimport { insZonefree } from '../zone';\r\nimport { MutationObserverService } from '../../webapi/mutation-observer/mutation-observer.service';\r\nimport { MUTATION_OBSERVER_INIT } from '../../webapi/mutation-observer/mutation-observer.option';\r\n\r\nconst BUFFER = 1; // buffer for rounding issues\r\n\r\n@Component({\r\n \r\n template: '',\r\n styleUrls: ['./fade.style.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-fade-styles',\r\n },\r\n})\r\nclass InsFadeStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insFade]',\r\n providers: [\r\n ResizeObserverService,\r\n MutationObserverService,\r\n {\r\n provide: MUTATION_OBSERVER_INIT,\r\n useValue: {characterData: true, subtree: true},\r\n },\r\n ],\r\n host: {\r\n '[style.line-height]': 'lineHeight',\r\n '[style.--t-line-height]': 'lineHeight',\r\n '[style.--t-fade-size]': 'size',\r\n '[style.--t-fade-offset]': 'offset',\r\n '[attr.data-orientation]': 'orientation',\r\n },\r\n})\r\nexport class InsFade {\r\n // TODO: Remove when lh CSS units are supported: https://caniuse.com/mdn-css_types_length_lh\r\n @Input('insFadeHeight')\r\n public lineHeight: string | null = null;\r\n\r\n @Input('insFadeSize')\r\n public size = '1.5em';\r\n\r\n @Input('insFadeOffset')\r\n public offset = '0em';\r\n\r\n @Input('insFade')\r\n public orientation: 'horizontal' | 'vertical' | '' = 'horizontal';\r\n\r\n constructor() {\r\n const el = injectElement();\r\n\r\n insWithStyles(InsFadeStyles);\r\n merge(\r\n inject(ResizeObserverService, {self: true}),\r\n inject(MutationObserverService, {self: true}),\r\n fromEvent(el, 'scroll'),\r\n )\r\n .pipe(insZonefree(), takeUntilDestroyed())\r\n .subscribe(() => {\r\n el.classList.toggle('_start', !!el.scrollLeft || !!el.scrollTop);\r\n el.classList.toggle('_end', this.isEnd(el));\r\n });\r\n }\r\n\r\n private isEnd(el: HTMLElement): boolean {\r\n if (this.orientation === 'vertical') {\r\n return Math.round(el.scrollTop) < el.scrollHeight - el.clientHeight - BUFFER;\r\n }\r\n\r\n return (\r\n Math.round(el.scrollLeft) < el.scrollWidth - el.clientWidth - BUFFER ||\r\n // horizontal multiline fade can kick in early due to hanging elements of fonts so using bigger buffer\r\n el.scrollHeight > el.clientHeight + 4 * BUFFER\r\n );\r\n }\r\n}\r\n","/**\r\n * Returns current active element, including shadow dom\r\n *\r\n * @return element or null\r\n */\r\nexport function getNativeFocused({activeElement}: Document): Element | null {\r\n if (!activeElement?.shadowRoot) {\r\n return activeElement;\r\n }\r\n\r\n let element = activeElement.shadowRoot.activeElement;\r\n\r\n while (element?.shadowRoot) {\r\n element = element.shadowRoot.activeElement;\r\n }\r\n\r\n return element;\r\n}\r\n","import { isHTMLElement } from \"../dom/element-checks\";\r\nimport { getNativeFocused } from \"./get-native-focused\";\r\n\r\n\r\n/**\r\n * Finds and blurs current active element, including shadow DOM\r\n */\r\nexport function insBlurNativeFocused(doc: Document): void {\r\n const activeElement = getNativeFocused(doc);\r\n\r\n if (isHTMLElement(activeElement)) {\r\n activeElement.blur();\r\n }\r\n}\r\n","import { isHTMLElement } from \"../dom/element-checks\";\r\n\r\n\r\n/**\r\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\r\n * only target natural focus order. Not checking the possibility of an element to\r\n * be focused, for example element can have display: none applied to it or any other\r\n * circumstances could prevent actual focus.\r\n */\r\nexport function isNativeKeyboardFocusable(element: Element): boolean {\r\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\r\n return false;\r\n }\r\n\r\n if (\r\n (isHTMLElement(element) && element.isContentEditable) ||\r\n element.getAttribute('tabIndex') === '0'\r\n ) {\r\n return true;\r\n }\r\n\r\n switch (element.tagName) {\r\n case 'A':\r\n case 'LINK':\r\n return element.hasAttribute('href');\r\n case 'AUDIO':\r\n case 'VIDEO':\r\n return element.hasAttribute('controls');\r\n case 'BUTTON':\r\n case 'SELECT':\r\n case 'TEXTAREA':\r\n return true;\r\n case 'INPUT':\r\n return element.getAttribute('type') !== 'hidden';\r\n default:\r\n return false;\r\n }\r\n}\r\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\r\n\r\nexport function isNativeMouseFocusable(element: Element): boolean {\r\n return (\r\n !element.hasAttribute('disabled') &&\r\n (element.getAttribute('tabIndex') === '-1' ||\r\n isNativeKeyboardFocusable(element))\r\n );\r\n}\r\n","\r\nimport { isHTMLElement } from \"../dom/element-checks\";\r\nimport { svgNodeFilter } from \"../svg-node-filter\";\r\nimport { isNativeKeyboardFocusable } from \"./is-native-keyboard-focusable\";\r\nimport { isNativeMouseFocusable } from \"./is-native-mouse-focusable\";\r\n\r\n\r\nexport interface GetClosestFocusableOptions {\r\n /**\r\n * @description:\r\n * current HTML element\r\n */\r\n initial: Element;\r\n\r\n /**\r\n * @description:\r\n * determine if only keyboard focus is of interest\r\n */\r\n keyboard?: boolean;\r\n\r\n /**\r\n * @description:\r\n * should it look backwards instead (find item that will be focused with Shift + Tab)\r\n */\r\n previous?: boolean;\r\n\r\n /**\r\n * @description:\r\n * top Node limiting the search area\r\n */\r\n root: Node;\r\n}\r\n\r\n/**\r\n * @description:\r\n * Finds the closest element that can be focused with a keyboard or mouse in theory\r\n */\r\nexport function getClosestFocusable({\r\n initial,\r\n root,\r\n previous = false,\r\n keyboard = true,\r\n}: GetClosestFocusableOptions): HTMLElement | null {\r\n if (!root.ownerDocument) {\r\n return null;\r\n }\r\n\r\n const check = keyboard ? isNativeKeyboardFocusable: isNativeMouseFocusable;\r\n const treeWalker = root.ownerDocument.createTreeWalker(\r\n root,\r\n NodeFilter.SHOW_ELEMENT,\r\n svgNodeFilter,\r\n );\r\n\r\n treeWalker.currentNode = initial;\r\n\r\n do{\r\n if (isHTMLElement(treeWalker.currentNode)) {\r\n initial = treeWalker.currentNode;\r\n }\r\n\r\n if (isHTMLElement(initial) && check(initial)) {\r\n return initial;\r\n }\r\n }while (previous ? treeWalker.previousNode() : treeWalker.nextNode());\r\n\r\n return null;\r\n}\r\n","\r\nimport type {OnDestroy} from '@angular/core';\r\nimport {Directive, HostListener, inject, DOCUMENT} from '@angular/core';\r\nimport { injectElement } from '../../dom/inject-element';\r\nimport { getNativeFocused } from '../get-native-focused';\r\nimport { insBlurNativeFocused } from '../blur-native-focused';\r\nimport { isHTMLElement } from '../../dom/element-checks';\r\nimport { containsOrAfter } from '../../dom/contains-or-after';\r\nimport { getClosestFocusable } from '../get-closest-focusable';\r\n\r\n\r\n@Directive({\r\n \r\n selector: '[insFocusTrap]',\r\n host: {\r\n tabIndex: '0',\r\n '(window:focusin.zoneless)': 'initialized && onFocusIn($event.target)',\r\n },\r\n})\r\nexport class InsFocusTrap implements OnDestroy {\r\n private readonly doc = inject(DOCUMENT);\r\n private readonly el = injectElement();\r\n // private readonly activeElement = getNativeFocused(this.doc);\r\n private activeElement: Element | null = null;\r\n protected initialized = false;\r\n\r\n constructor() {\r\n /**\r\n * This would cause currently focused element to lose focus,\r\n * but it might cause ExpressionChanged error due to potential HostBinding.\r\n * Microtask keeps it in the same frame but allows change detection to run\r\n */\r\n // void Promise.resolve().then(() => this.el.focus());\r\n\r\n Promise.resolve().then(() => {\r\n /**\r\n * The same event can synchronously close already opened focus trap and open another one.\r\n * All focus traps have microtask inside its `ngOnDestroy` –\r\n * they should be resolved before enabling of new focus trap.\r\n * Don't enable any new event listeners before `initialized` equals to `true`!\r\n */\r\n this.initialized = true;\r\n this.activeElement = getNativeFocused(this.doc);\r\n this.el.focus();\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n insBlurNativeFocused(this.doc);\r\n\r\n /**\r\n * HostListeners are triggered even after ngOnDestroy\r\n * {@link https://github.com/angular/angular/issues/38100}\r\n * so we need to delay it but stay in the same sync cycle,\r\n * therefore using Promise instead of setTimeout\r\n */\r\n \r\n Promise.resolve().then(() => {\r\n if (isHTMLElement(this.activeElement)) {\r\n this.activeElement.focus();\r\n }\r\n });\r\n }\r\n\r\n @HostListener('blur')\r\n protected onBlur(): void {\r\n this.el.removeAttribute('tabIndex');\r\n }\r\n\r\n protected onFocusIn(node: Node): void {\r\n const firstElementChild = this.el.firstElementChild;\r\n if (!containsOrAfter(this.el, node) && firstElementChild) {\r\n getClosestFocusable({\r\n initial: firstElementChild,\r\n root: this.el,\r\n })?.focus();\r\n }\r\n }\r\n}\r\n","import type {Signal} from '@angular/core';\r\nimport {toSignal} from '@angular/core/rxjs-interop';\r\nimport {fromEvent, map, merge} from 'rxjs';\r\n\r\nexport function insFocusedIn(node: Node): Signal<boolean> {\r\n return toSignal(\r\n merge(\r\n fromEvent(node, 'focusin').pipe(map(() => true)),\r\n fromEvent(node, 'focusout').pipe(map(() => false)),\r\n ),\r\n // .pipe(observeOn(insUntrackedScheduler)),\r\n {initialValue: false},\r\n );\r\n}\r\n","import {getNativeFocused} from './get-native-focused';\r\n\r\n/**\r\n * Checks if focused element is within given element.\r\n *\r\n * @param node\r\n * @return true if focused node is contained within element\r\n */\r\nexport function isNativeFocusedIn(node?: Node | null): boolean {\r\n const focused = node?.ownerDocument && getNativeFocused(node.ownerDocument);\r\n\r\n return !!focused && node.contains(focused) && !!node.ownerDocument?.hasFocus();\r\n}\r\n","import { getNativeFocused } from \"./get-native-focused\";\r\n\r\n\r\n/**\r\n * Checks if element is focused.\r\n *\r\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\r\n *\r\n * @param node or null (as a common return value of DOM nodes walking)\r\n * @return true if focused\r\n */\r\nexport function isNativeFocused(node?: Node | null): boolean {\r\n return (\r\n !!node?.ownerDocument &&\r\n getNativeFocused(node.ownerDocument) === node &&\r\n node.ownerDocument.hasFocus()\r\n );\r\n}\r\n","import { isNativeFocused } from \"./is-native-focused\";\r\n\r\n\r\n\r\n/**\r\n * Utility method for moving focus in a list of elements\r\n *\r\n * @param currentIndex currently focused index\r\n * @param elements array of focusable elements\r\n * @param step a step to move focus by, typically -1 or 1\r\n */\r\nexport function insMoveFocus(\r\n currentIndex: number,\r\n elements: readonly HTMLElement[],\r\n step: number,\r\n): void {\r\n currentIndex += step;\r\n\r\n while (currentIndex >= 0 && currentIndex < elements.length) {\r\n elements[currentIndex]?.focus();\r\n\r\n if (isNativeFocused(elements[currentIndex])) {\r\n return;\r\n }\r\n\r\n currentIndex += step;\r\n }\r\n}\r\n","import { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from \"@angular/forms\";\r\nimport { DestroyRef, Directive, inject, input, NgZone } from \"@angular/core\";\r\nimport { timer } from \"rxjs\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { insProvide } from \"../provide\";\r\nimport { injectElement } from \"../dom/inject-element\";\r\nimport { insZonefree } from \"../zone\";\r\n\r\n@Directive({\r\n \r\n selector: '[insNativeValidator]',\r\n providers: [insProvide(NG_VALIDATORS, InsNativeValidator, true)],\r\n host: {\r\n '(focusout)': 'handleValidation()',\r\n },\r\n})\r\nexport class InsNativeValidator implements Validator {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly zone = inject(NgZone);\r\n private readonly el = injectElement<HTMLInputElement>();\r\n private control?: AbstractControl;\r\n\r\n public insNativeValidator = input('Invalid')\r\n\r\n public validate(control: AbstractControl): ValidationErrors | null {\r\n this.control = control\r\n timer(0).pipe(insZonefree(this.zone), takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.handleValidation());\r\n return null\r\n }\r\n\r\n protected handleValidation(): void {\r\n this.el.setCustomValidity?.(\r\n this.control?.touched && this.control?.invalid ? this.insNativeValidator() : '',\r\n );\r\n }\r\n\r\n}","import {inject, Injectable} from '@angular/core';\r\n\r\nimport {distinctUntilChanged, map, Observable, startWith, throttleTime} from 'rxjs';\r\nimport { injectElement } from '../dom/inject-element';\r\nimport { ANIMATION_FRAME } from '../../webapi';\r\nimport { insZonefreeScheduler, insZoneOptimized } from '../zone';\r\nimport { insGetElementObscures } from '../dom/get-element-obscurers';\r\n\r\n/**\r\n * Service that monitors element visibility by polling and returning\r\n * either null or an array of elements that overlap given element edges\r\n */\r\n@Injectable()\r\nexport class InsObscuredService extends Observable<readonly Element[] | null> {\r\n private readonly el = injectElement();\r\n private readonly obscured$ = inject(ANIMATION_FRAME).pipe(\r\n throttleTime(300, insZonefreeScheduler()),\r\n map(() => insGetElementObscures(this.el)),\r\n startWith(null),\r\n distinctUntilChanged(),\r\n insZoneOptimized(),\r\n );\r\n\r\n constructor() {\r\n super((subscriber) => this.obscured$.subscribe(subscriber));\r\n }\r\n}\r\n","import {Directive, inject, Input, Output} from '@angular/core';\r\nimport {EMPTY, map, Subject, switchMap} from 'rxjs';\r\n\r\nimport {InsObscuredService} from './obscured.service';\r\nimport { InsActiveZone } from '../active-zone/active-zone.directive';\r\n\r\n/**\r\n * Directive that monitors element visibility\r\n */\r\n@Directive({\r\n \r\n selector: '[insObscured]',\r\n providers: [InsObscuredService],\r\n})\r\nexport class InsObscured {\r\n private readonly activeZone = inject(InsActiveZone, {optional: true});\r\n private readonly enabled$ = new Subject<boolean>();\r\n private readonly obscured$ = inject(InsObscuredService, {self: true}).pipe(\r\n map((by) => !!by?.every((el) => !this.activeZone?.contains(el))),\r\n );\r\n\r\n @Output()\r\n public readonly insObscured = this.enabled$.pipe(\r\n switchMap((value)=>{\r\n if(value){\r\n return this.obscured$;\r\n }else{\r\n return EMPTY\r\n }\r\n })\r\n );\r\n\r\n @Input()\r\n public set insObscuredEnabled(enabled: boolean) {\r\n this.enabled$.next(enabled);\r\n }\r\n}","import { createToken } from \"../create-token\";\r\nimport { InsSwipeOptions } from \"./swipe.types\";\r\n\r\n\r\n\r\n\r\nexport const INS_SWIPE_OPTIONS = createToken<InsSwipeOptions>({\r\n timeout: 500,\r\n threshold: 30,\r\n});\r\n","\r\nimport {inject, Injectable, DOCUMENT} from '@angular/core';\r\nimport {filter, fromEvent, map, merge, Observable, pairwise} from 'rxjs';\r\nimport { InsSwipeDirection, InsSwipeEvent } from './swipe.types';\r\nimport { injectElement } from '../dom/inject-element';\r\nimport { INS_SWIPE_OPTIONS } from './swipe.options';\r\nimport { isPresent } from '../is-present';\r\n\r\n\r\n@Injectable()\r\nexport class InsSwipeService extends Observable<InsSwipeEvent> {\r\n constructor() {\r\n const doc = inject(DOCUMENT);\r\n const el = injectElement();\r\n const {timeout, threshold} = inject(INS_SWIPE_OPTIONS);\r\n\r\n super((subscriber) =>\r\n merge(\r\n fromEvent<any>(el, 'touchstart', {passive: true}),\r\n fromEvent<any>(doc, 'touchend'),\r\n )\r\n .pipe(\r\n pairwise(),\r\n filter(\r\n ([first, second]) =>\r\n !!first.touches.length &&\r\n first.touches[0]?.identifier ===\r\n second.changedTouches[0]?.identifier,\r\n ),\r\n map(([start, end]) => {\r\n const startX = start.touches[0]?.clientX ?? 0;\r\n const startY = start.touches[0]?.clientY ?? 0;\r\n const endX = end.changedTouches[0]?.clientX ?? 0;\r\n const endY = end.changedTouches[0]?.clientY ?? 0;\r\n\r\n const distanceX = startX - endX;\r\n const distanceY = startY - endY;\r\n const duration = end.timeStamp - start.timeStamp;\r\n\r\n if (\r\n (Math.abs(distanceX) > threshold ||\r\n Math.abs(distanceY) > threshold) &&\r\n duration < timeout\r\n ) {\r\n return {\r\n direction: insGetSwipeDirection(distanceX, distanceY),\r\n events: [start, end] as [TouchEvent, TouchEvent],\r\n };\r\n }\r\n\r\n return null;\r\n }),\r\n filter(isPresent),\r\n )\r\n .subscribe(subscriber),\r\n );\r\n }\r\n}\r\n\r\nfunction insGetSwipeDirection(deltaX: number, deltaY: number): InsSwipeDirection {\r\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\r\n return deltaY > 0 ? 'top' : 'bottom';\r\n }\r\n\r\n return deltaX > 0 ? 'left' : 'right';\r\n}\r\n","import {Directive, inject, Output} from '@angular/core';\r\n\r\nimport {InsSwipeService} from './swipe.service';\r\n\r\n@Directive({\r\n \r\n selector: '[insSwipe]',\r\n providers: [InsSwipeService],\r\n})\r\nexport class InsSwipe {\r\n @Output()\r\n public readonly insSwipe = inject(InsSwipeService);\r\n}\r\n","\r\n\r\nimport { createToken } from '../create-token';\r\nimport type {InsZoomOptions} from './zoom.types';\r\n\r\n/**\r\n * Zoom options\r\n */\r\nexport const INS_ZOOM_OPTIONS = createToken<InsZoomOptions>({\r\n wheelSensitivity: 0.01,\r\n});\r\n","import {inject, Injectable} from '@angular/core';\r\nimport {filter, fromEvent, map, merge, Observable, scan, switchMap, takeUntil, tap} from 'rxjs';\r\n\r\nimport {INS_ZOOM_OPTIONS} from './zoom.options';\r\nimport type {InsZoomEvent} from './zoom.types';\r\nimport { injectElement } from '../dom/inject-element';\r\n\r\nconst TOUCH_SENSITIVITY = 0.01;\r\n\r\n@Injectable()\r\nexport class InsZoomService extends Observable<InsZoomEvent> {\r\n constructor() {\r\n const el = injectElement();\r\n const {wheelSensitivity} = inject(INS_ZOOM_OPTIONS);\r\n\r\n super((subscriber) =>\r\n merge(\r\n fromEvent<any>(el, 'touchstart', {passive: true}).pipe(\r\n filter(({touches}) => touches.length > 1),\r\n switchMap((startEvent) =>\r\n fromEvent<any>(el, 'touchmove', {passive: true}).pipe(\r\n tap((event) => event.preventDefault()),\r\n scan(\r\n (prev, event) => {\r\n const distance = insDistanceBetweenTouches(event);\r\n\r\n return {\r\n event,\r\n distance,\r\n delta:\r\n (distance - prev.distance) *\r\n TOUCH_SENSITIVITY,\r\n };\r\n },\r\n {\r\n event: startEvent,\r\n distance: insDistanceBetweenTouches(startEvent),\r\n delta: 0,\r\n },\r\n ),\r\n map(({event, delta}) => {\r\n const clientX =\r\n ((event.touches[0]?.clientX ?? 0) +\r\n (event.touches[1]?.clientX ?? 0)) /\r\n 2;\r\n const clientY =\r\n ((event.touches[0]?.clientY ?? 0) +\r\n (event.touches[1]?.clientY ?? 0)) /\r\n 2;\r\n\r\n return {clientX, clientY, delta, event};\r\n }),\r\n takeUntil(fromEvent(el, 'touchend')),\r\n ),\r\n ),\r\n ),\r\n fromEvent<any>(el, 'wheel', {passive: false}).pipe(\r\n tap((event) => event.preventDefault()),\r\n map((wheel) => ({\r\n clientX: wheel.clientX,\r\n clientY: wheel.clientY,\r\n delta: -wheel.deltaY * wheelSensitivity,\r\n event: wheel,\r\n })),\r\n ),\r\n ).subscribe(subscriber),\r\n );\r\n }\r\n}\r\n\r\n\r\nfunction insDistanceBetweenTouches({touches}: TouchEvent): number {\r\n return Math.hypot(\r\n (touches[0]?.clientX ?? 0) - (touches[1]?.clientX ?? 0),\r\n (touches[0]?.clientY ?? 0) - (touches[1]?.clientY ?? 0),\r\n );\r\n}","import {Directive, inject} from '@angular/core';\r\n\r\nimport {InsZoomService} from './zoom.service';\r\n\r\n@Directive({\r\n \r\n selector: '[insZoom]',\r\n outputs: ['insZoom'],\r\n providers: [InsZoomService],\r\n host: {\r\n '[style.touch-action]': '\"none\"',\r\n },\r\n})\r\nexport class InsZoom {\r\n protected readonly insZoom = inject(InsZoomService);\r\n}\r\n","import { createToken } from \"../service/create-token\";\r\n\r\n\r\n\r\nexport interface InsMedia {\r\n readonly desktopLarge: number;\r\n readonly desktopSmall: number;\r\n readonly mobile: number;\r\n readonly tablet?: number;\r\n}\r\n\r\n/**\r\n * Token for media constant\r\n */\r\nexport const INS_MEDIA = createToken<InsMedia>({\r\n mobile: 768,\r\n desktopSmall: 1024,\r\n desktopLarge: 1280,\r\n});\r\n","import { inject, Injectable } from '@angular/core';\r\nimport {\r\n distinctUntilChanged,\r\n EMPTY,\r\n filter,\r\n fromEvent,\r\n map,\r\n merge,\r\n Observable,\r\n of,\r\n shareReplay,\r\n startWith,\r\n switchMap,\r\n} from 'rxjs';\r\nimport { INS_MEDIA, InsMedia } from '../model/media';\r\nimport { WINDOW } from '../webapi';\r\n\r\nexport type InsBreakpointMediaKey = keyof Omit<InsMedia, 'tablet'>;\r\n\r\n/**\r\n * Service to provide the current breakpoint based on Taiga UI's media queries\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InsBreakpointService extends Observable<InsBreakpointMediaKey | null> {\r\n private readonly media = inject(INS_MEDIA);\r\n private readonly win = inject(WINDOW);\r\n\r\n private readonly stream$ = of(this.win).pipe(\r\n switchMap((win) => {\r\n if (win && win.matchMedia) {\r\n return merge(\r\n ...this.getQueries().map(({ key, query }) => {\r\n const mql = win.matchMedia(query);\r\n\r\n return fromEvent<MediaQueryListEvent>(mql, 'change').pipe(\r\n startWith({ matches: mql.matches }),\r\n filter((mql) => mql.matches),\r\n map(()=>key)\r\n );\r\n }),\r\n )\r\n } else {\r\n return EMPTY\r\n }\r\n })\r\n ).pipe(\r\n distinctUntilChanged(),\r\n shareReplay({ bufferSize: 1, refCount: true }),\r\n );\r\n\r\n constructor() {\r\n super(subscriber => this.stream$.subscribe(subscriber));\r\n }\r\n\r\n private getQueries(): { key: InsBreakpointMediaKey; query: string }[] {\r\n const sorted = Object.entries(this.media)\r\n .filter((entry): entry is [InsBreakpointMediaKey, number] => typeof entry[1] === 'number')\r\n .sort(([, a], [, b]) => a - b);\r\n\r\n return sorted.map(([key], index) => {\r\n const min = sorted[index - 1]?.[1] || 0;\r\n const max = sorted[index][1];\r\n const query =\r\n index === 0\r\n ? `(max-width: ${max - 0.02}px)`\r\n : `(min-width: ${min}px) and (max-width: ${max - 0.02}px)`;\r\n\r\n if (index === sorted.length - 1) {\r\n return { key, query: `(min-width: ${min}px)` };\r\n }\r\n\r\n return { key, query };\r\n });\r\n }\r\n}\r\n","import {inject, Injectable} from '@angular/core';\r\n\r\n/**\r\n * Generates unique ids\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InsIdService {\r\n private static autoId = 0;\r\n\r\n public generate(): string {\r\n return `ins_${InsIdService.autoId++}${Date.now()}`;\r\n }\r\n}\r\n\r\nexport function insInjectId(): string {\r\n return inject(InsIdService).generate();\r\n}\r\n","\r\nimport type {Observable, OperatorFunction} from 'rxjs';\r\nimport {EMPTY, pipe, switchMap} from 'rxjs';\r\nimport { InsBooleanHandler } from '../model/handler';\r\n\r\nexport function insIfMap<T, G>(\r\n project: (value: T) => Observable<G>,\r\n predicate: InsBooleanHandler<T> = Boolean,\r\n): OperatorFunction<T, G> {\r\n return pipe(switchMap((value) => (predicate(value) ? project(value) : EMPTY)));\r\n}\r\n","import type {ExistingProvider, Type} from '@angular/core';\r\nimport { insProvide } from './provide';\r\n\r\nexport abstract class InsVehicle {\r\n public abstract readonly type: string;\r\n public abstract toggle(value: boolean): void;\r\n}\r\n\r\nexport function insAsVehicle(vehicle: Type<InsVehicle>): ExistingProvider {\r\n return insProvide(InsVehicle, vehicle, true);\r\n}\r\n","export function coerceArray<T>(value: T | T[] | null | undefined): T[] {\r\n if (value == null) {\r\n return [];\r\n }\r\n return Array.isArray(value) ? value : [value];\r\n}","import { AfterViewInit, DestroyRef, Directive, ExistingProvider, inject, OnInit, Type } from \"@angular/core\";\r\nimport { distinctUntilChanged, merge, Observable } from \"rxjs\";\r\nimport { InsVehicle } from \"./vehicle\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { insProvide } from \"./provide\";\r\nimport { coerceArray } from \"./coerceArray\";\r\n\r\nexport abstract class InsDriver extends Observable<boolean> {\r\n public abstract readonly type: string;\r\n}\r\n\r\nexport function insAsDriver(driver: Type<InsDriver>): ExistingProvider {\r\n return insProvide(InsDriver, driver, true);\r\n}\r\n\r\n@Directive()\r\nexport abstract class InsDriverDirective implements AfterViewInit {\r\n public abstract type: string;\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly drivers: readonly InsDriver[] = coerceArray(inject<any>(InsDriver, {self: true, optional: true}));\r\n private readonly vehicles: readonly InsVehicle[] = coerceArray(inject<any>(InsVehicle, {self: true, optional: true}));\r\n\r\n public ngAfterViewInit(): void {\r\n const vehicle = this.vehicles.find(({type}) => type === this.type);\r\n merge(...this.drivers.filter(({ type }) => type === this.type))\r\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\r\n .subscribe((value) => {\r\n vehicle?.toggle(value);\r\n });\r\n }\r\n\r\n}","import { afterNextRender, Directive, EventEmitter, OnDestroy, Output } from \"@angular/core\";\r\nimport { injectElement } from \"./dom/inject-element\";\r\n\r\n@Directive({\r\n \r\n selector: '[insResize]',\r\n})\r\nexport class InsResize implements OnDestroy{\r\n private readonly el = injectElement();\r\n protected resizeObserver:ResizeObserver|null = null;\r\n\r\n @Output()\r\n public insResize = new EventEmitter<ResizeObserverEntry>()\r\n constructor(){\r\n afterNextRender(()=>{\r\n this.resizeObserver = new ResizeObserver(entries =>{\r\n this.insResize.emit(entries[0])\r\n })\r\n this.resizeObserver.observe(this.el)\r\n })\r\n }\r\n \r\n ngOnDestroy(){\r\n this.resizeObserver?.disconnect()\r\n }\r\n}","const KEYS: readonly string[] = [\r\n 'Spacebar',\r\n 'Backspace',\r\n 'Delete',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Left',\r\n 'Right',\r\n 'End',\r\n 'Home',\r\n];\r\n\r\n/**\r\n * Check if pressed key is interactive in terms of input field\r\n */\r\nexport function isEditingKey(key = ''): boolean {\r\n return key.length === 1 || KEYS.includes(key);\r\n}\r\n","import type {AbstractControl} from '@angular/forms';\r\nimport {FormArray, FormGroup} from '@angular/forms';\r\n\r\nexport function insMarkControlAsTouchedAndValidate(control: AbstractControl): void {\r\n if (control instanceof FormArray) {\r\n control.controls.forEach((nestedControl) => {\r\n insMarkControlAsTouchedAndValidate(nestedControl);\r\n });\r\n }else if (control instanceof FormGroup) {\r\n Object.values(control.controls).forEach((nestedControl) => {\r\n insMarkControlAsTouchedAndValidate(nestedControl);\r\n });\r\n }else{\r\n control.markAsTouched();\r\n control.updateValueAndValidity();\r\n }\r\n}\r\n","export function insOverrideOptions<T>(\r\n override: Partial<T>,\r\n fallback: T,\r\n): (directive: T | null, options: T | null) => T {\r\n return (directive, options) => {\r\n const result: T = directive || {...(options || fallback)};\r\n\r\n Object.keys(override).forEach((key) => {\r\n // Update directive props with new defaults before inputs are processed\r\n (result as Record<string, unknown>)[key] = override[key as keyof T];\r\n });\r\n\r\n return result;\r\n };\r\n}\r\n","import { ComponentRef, EmbeddedViewRef, Injectable, TemplateRef } from \"@angular/core\";\r\nimport { InsPortals } from \"./portals\";\r\nimport { PolymorpheusComponent } from \"../Polymorpheus\";\r\n\r\n\r\n@Injectable()\r\nexport abstract class InsPortalService {\r\n protected host?: InsPortals\r\n\r\n public attach(host: InsPortals) {\r\n this.host = host;\r\n }\r\n\r\n public add<C>(content: PolymorpheusComponent<C>): ComponentRef<C>;\r\n public add<C>(content: TemplateRef<C>, context?: C): EmbeddedViewRef<C>;\r\n public add<C>(\r\n content: PolymorpheusComponent<C> | TemplateRef<C>,\r\n context?: C,\r\n ): ComponentRef<C> | EmbeddedViewRef<C> {\r\n if (!this.host) {\r\n throw new InsNoHostException()\r\n }\r\n\r\n return content instanceof PolymorpheusComponent\r\n ? this.host.addComponent(content)\r\n : this.host.addTemplate(content, context);\r\n }\r\n}\r\n\r\nexport class InsNoHostException extends Error {\r\n constructor() {\r\n super('Portals cannot be used without InsPortalHostComponent');\r\n }\r\n}","import { inject, Injectable, Injector, INJECTOR, Optional, Provider, Type } from \"@angular/core\";\r\nimport { InsIdService } from \"../id.service\";\r\nimport { InsPortalService } from \"./service\";\r\nimport { POLYMORPHEUS_CONTEXT, PolymorpheusComponent, PolymorpheusContent } from \"../Polymorpheus\";\r\nimport { Observable, Observer } from \"rxjs\";\r\nimport { insProvide } from \"../provide\";\r\nimport { InsContext } from \"../../model\";\r\n\r\nexport type InsPortalContext<T, O = void> = T &\r\n InsContext<Observer<O>> & {\r\n readonly content: PolymorpheusContent<InsPortalContext<T, O>>;\r\n readonly createdAt: number;\r\n readonly id: string;\r\n completeWith(value: O): void;\r\n };\r\n\r\n@Injectable()\r\nexport abstract class InsPortal<T, K = void> {\r\n protected abstract readonly component: Type<any>;\r\n protected abstract readonly options: T;\r\n\r\n private readonly injector = inject(INJECTOR);\r\n private readonly id = inject(InsIdService);\r\n\r\n constructor(protected readonly service: InsPortalService) { }\r\n\r\n public open<G = void>(\r\n content: PolymorpheusContent<InsPortalContext<T, K extends void ? G : K>>,\r\n options: Partial<T> = {},\r\n ): Observable<K extends void ? G : K> {\r\n return new Observable(($implicit) =>\r\n this.add(\r\n new PolymorpheusComponent(\r\n this.component,\r\n Injector.create({\r\n parent: this.injector,\r\n providers: [\r\n {\r\n provide: POLYMORPHEUS_CONTEXT,\r\n useValue: {\r\n ...this.options,\r\n ...options,\r\n content,\r\n $implicit,\r\n createdAt: Date.now(),\r\n id: this.id.generate(),\r\n completeWith: (v: K extends void ? G : K): void => {\r\n $implicit.next(v);\r\n $implicit.complete();\r\n },\r\n } satisfies InsPortalContext<T, K extends void ? G : K>,\r\n },\r\n ],\r\n }),\r\n ),\r\n ),\r\n );\r\n }\r\n protected add(component: PolymorpheusComponent<unknown>): () => void {\r\n const ref = this.service.add(component);\r\n\r\n return () => ref.destroy();\r\n }\r\n}\r\n\r\nexport function insAsPortal(portal: typeof InsPortal<any>): Provider {\r\n return insProvide(InsPortal, portal);\r\n}","import { Directive, inject, input } from '@angular/core';\r\nimport { outputFromObservable, toObservable } from '@angular/core/rxjs-interop';\r\n\r\nimport { EMPTY, endWith, ignoreElements, share, switchMap } from 'rxjs';\r\n\r\nimport { InsPortal, type InsPortalContext } from './portal';\r\nimport { PolymorpheusTemplate } from '../Polymorpheus';\r\n\r\n@Directive()\r\nexport class InsPortalDirective<T> extends PolymorpheusTemplate<InsPortalContext<T>> {\r\n private readonly service = inject(InsPortal<T>);\r\n\r\n public readonly options = input<Partial<T>>({});\r\n public readonly open = input(false);\r\n public readonly openChange = outputFromObservable(\r\n toObservable(this.open).pipe(\r\n // 当open=false时, switchMap取消订阅,调用service的销毁函数\r\n switchMap((v) => {\r\n if (v) {\r\n return this.service\r\n .open(this, this.options())\r\n .pipe(ignoreElements(), endWith(false))\r\n } else {\r\n return EMPTY\r\n }\r\n }),\r\n share(),\r\n ),\r\n );\r\n}\r\n","\r\nimport type { ComponentRef, EmbeddedViewRef, TemplateRef } from '@angular/core';\r\nimport {\r\n Directive,\r\n inject,\r\n INJECTOR,\r\n viewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { PolymorpheusComponent } from '../Polymorpheus/PolymorpheusComponent';\r\nimport { InsPortalService } from './service';\r\nimport { POLYMORPHEUS_CONTEXT } from '../Polymorpheus';\r\n\r\n/**\r\n * Abstract class for host element for dynamically created portals.\r\n */\r\n@Directive()\r\nexport abstract class InsPortals {\r\n private readonly vcr = viewChild.required('vcr', { read: ViewContainerRef });\r\n private readonly injector = inject(INJECTOR);\r\n\r\n constructor() {\r\n inject(InsPortalService).attach(this);\r\n }\r\n\r\n public addComponent<C>(component: PolymorpheusComponent<C>): ComponentRef<C> {\r\n // TODO: Remove after updating to polymorpheus v5\r\n \r\n const context = component.i?.get(POLYMORPHEUS_CONTEXT, {optional: true});\r\n const injector = component.createInjector(this.injector, context || undefined);\r\n const ref = this.vcr().createComponent(component.component, { injector });\r\n\r\n ref.changeDetectorRef.detectChanges();\r\n\r\n return ref;\r\n }\r\n\r\n public addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\r\n return this.vcr().createEmbeddedView(templateRef, context);\r\n }\r\n\r\n}","import {QueryList} from '@angular/core';\r\n\r\nconst rect = {\r\n bottom: 0,\r\n height: 0,\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n width: 0,\r\n x: 0,\r\n y: 0,\r\n} as const;\r\n\r\n/**\r\n * For type safety when using @ContentChildren and @ViewChildren\r\n *\r\n * NOTE: Be careful subscribing to 'changes'\r\n */\r\nexport const EMPTY_QUERY = new QueryList<any>();\r\nexport const EMPTY_ARRAY: [] = [];\r\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\r\nexport const EMPTY_CLIENT_RECT: DOMRect = {\r\n ...rect,\r\n toJSON: () => rect,\r\n};\r\n","import type {AbstractType, ExistingProvider, FactoryProvider, Type} from '@angular/core';\r\nimport {Optional, SkipSelf} from '@angular/core';\r\nimport { InsPoint } from './point';\r\nimport { insProvide } from '../service/provide';\r\n\r\nexport abstract class InsAccessor {\r\n public abstract readonly type: string;\r\n}\r\n\r\nexport abstract class InsPositionAccessor extends InsAccessor {\r\n public abstract getPosition(rect: DOMRect, element?: HTMLElement): InsPoint;\r\n}\r\n\r\nexport abstract class InsRectAccessor extends InsAccessor {\r\n public abstract getClientRect(): DOMRect;\r\n}\r\n\r\n// export function insProvideAccessor<T extends InsAccessor>(\r\n// provide: AbstractType<T>,\r\n// type: string,\r\n// fallback: Type<T>,\r\n// ): FactoryProvider {\r\n// return {\r\n// provide,\r\n// deps: [[new SkipSelf(), new Optional(), provide], fallback],\r\n// useFactory: insFallbackAccessor<T>(type),\r\n// };\r\n// }\r\n\r\n// export function insFallbackAccessor<T extends InsAccessor>(\r\n// type: string,\r\n// ): (accessors: readonly T[] | null, fallback: T) => T {\r\n// return (accessors, fallback) =>\r\n// accessors?.find?.(\r\n// (accessor) => accessor !== fallback && accessor.type === type,\r\n// ) || fallback;\r\n// }\r\n\r\n// export function insPositionAccessorFor(\r\n// type: string,\r\n// fallback: Type<InsPositionAccessor>,\r\n// ): FactoryProvider {\r\n// return insProvideAccessor(InsPositionAccessor, type, fallback);\r\n// }\r\n\r\n// export function insRectAccessorFor(\r\n// type: string,\r\n// fallback: Type<InsRectAccessor>,\r\n// ): FactoryProvider {\r\n// return insProvideAccessor(InsRectAccessor, type, fallback);\r\n// }\r\n\r\nexport function insAsPositionAccessor(\r\n accessor: Type<InsPositionAccessor>,\r\n): ExistingProvider {\r\n return insProvide(InsPositionAccessor, accessor, false);\r\n}\r\n\r\nexport function insAsRectAccessor(accessor: Type<InsRectAccessor>): ExistingProvider {\r\n return insProvide(InsRectAccessor, accessor, false);\r\n}\r\n","import {inject, Injectable, NgZone} from '@angular/core';\r\nimport {finalize, map, Observable, startWith} from 'rxjs';\r\nimport { injectElement } from './dom/inject-element';\r\nimport { insZonefree } from './zone';\r\nimport { EMPTY_CLIENT_RECT } from '../model/empty';\r\nimport { InsPositionAccessor } from '../model/accessors';\r\nimport { ANIMATION_FRAME } from '../webapi';\r\n\r\n@Injectable()\r\nexport class InsPositionService extends Observable<Readonly<[x: number, y: number]>> {\r\n private readonly el = injectElement();\r\n private readonly accessor = inject(InsPositionAccessor);\r\n \r\n constructor() {\r\n const animationFrame$ = inject(ANIMATION_FRAME);\r\n const zone = inject(NgZone);\r\n\r\n super((subscriber) =>\r\n animationFrame$\r\n .pipe(\r\n startWith(null),\r\n map(() =>\r\n this.accessor.getPosition(\r\n this.el.getBoundingClientRect(),\r\n this.el,\r\n ),\r\n ),\r\n insZonefree(zone),\r\n finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\r\n )\r\n .subscribe(subscriber),\r\n );\r\n }\r\n}\r\n","import {Directive, type OnDestroy, output} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[insPresent]',\r\n host: {\r\n '[style.animation]': '\"insPresent 1s infinite\"',\r\n '(animationcancel.self)': 'insPresent.emit(false)',\r\n '(animationstart.self)': 'insPresent.emit(true)',\r\n },\r\n})\r\nexport class InsPresent implements OnDestroy {\r\n public readonly insPresent = output<boolean>();\r\n\r\n public ngOnDestroy(): void {\r\n this.insPresent.emit(false);\r\n }\r\n}\r\n","import { InsIdentityMatcher } from \"../model/matcher\";\r\n\r\nexport function insArrayToggle<T>(\r\n array: readonly T[],\r\n item: T,\r\n identity?: InsIdentityMatcher<T>,\r\n): T[] {\r\n const index = identity\r\n ? array.findIndex((it) => identity(it, item))\r\n : array.indexOf(item);\r\n\r\n return index === -1 ? [...array, item] : insArrayRemove(array, index);\r\n}\r\n\r\nexport function insArrayRemove<T>(array: readonly T[], index: number): T[] {\r\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { insWithStyles } from '../with-styles';\r\nimport { InsPortalContext } from '../portals/portal';\r\nimport { POLYMORPHEUS_CONTEXT } from '../Polymorpheus';\r\n\r\nexport interface InsPositionOptions {\r\n readonly block: 'end' | 'start';\r\n readonly inline: 'center' | 'end' | 'start';\r\n}\r\n\r\n@Component({\r\n template: '',\r\n styleUrl: './notification.style.less',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nclass InsNotificationStyles {}\r\n\r\n@Directive({\r\n host: {\r\n role: 'alert',\r\n insPopover: '',\r\n '[attr.data-block]': 'context.block',\r\n '[attr.data-inline]': 'context.inline',\r\n },\r\n})\r\nexport class InsNotificationDirective {\r\n protected readonly nothing = insWithStyles(InsNotificationStyles);\r\n public readonly context = inject<InsPortalContext<InsPositionOptions>>(POLYMORPHEUS_CONTEXT);\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { InsPortalService } from '../../service/portals/service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InsPopupService extends InsPortalService {}\r\n","import {type ComponentRef, inject, Injectable} from '@angular/core';\r\nimport { PolymorpheusComponent } from '../Polymorpheus';\r\nimport { InsPortal } from '../portals/portal';\r\nimport { InsPopupService } from '../../components/popup/popup.service';\r\n\r\n@Injectable()\r\nexport abstract class InsNotificationService<T, K = void> extends InsPortal<T, K> {\r\n private readonly concurrency: number;\r\n private readonly current = new Map<unknown, ComponentRef<unknown>>();\r\n private readonly queue = new Set<PolymorpheusComponent<unknown>>();\r\n\r\n constructor(concurrency: number) {\r\n super(inject(InsPopupService));\r\n this.concurrency = Math.min(concurrency, 5);\r\n }\r\n\r\n protected override add(component: PolymorpheusComponent<unknown>): () => void {\r\n if (this.current.size < this.concurrency) {\r\n this.current.set(component, this.service.add(component));\r\n } else {\r\n this.queue.add(component);\r\n }\r\n\r\n return () => {\r\n this.current.get(component)?.destroy();\r\n this.current.delete(component);\r\n this.queue.delete(component);\r\n\r\n const [next] = this.queue;\r\n\r\n if (this.current.size < this.concurrency && next) {\r\n this.current.set(next, this.service.add(next));\r\n this.queue.delete(next);\r\n }\r\n };\r\n }\r\n}\r\n","\r\nimport {inject, NgZone, DOCUMENT} from '@angular/core';\r\n\r\nimport type {Observable} from 'rxjs';\r\nimport {\r\n distinctUntilChanged,\r\n filter,\r\n fromEvent,\r\n map,\r\n merge,\r\n of,\r\n repeat,\r\n share,\r\n startWith,\r\n switchMap,\r\n take,\r\n takeUntil,\r\n timer,\r\n withLatestFrom,\r\n} from 'rxjs';\r\nimport { INS_REMOVED_ELEMENT } from './removed-element';\r\nimport { getDocumentOrShadowRoot } from '../service/dom/get-document-or-shadow-root';\r\nimport { createTokenFromFactory } from '../service/create-token';\r\nimport { getActualTarget } from '../service/dom/get-actual-target';\r\nimport { insZonefreeScheduler } from '../service/zone';\r\nimport { WINDOW } from '../webapi';\r\nimport { isNativeKeyboardFocusable } from '../service';\r\n\r\n// Checks if focusout event should be considered leaving active zone\r\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\r\n return (\r\n // Not due to switching tabs/going to DevTools\r\n getDocumentOrShadowRoot(target).activeElement !== target &&\r\n // Not due to button/input becoming disabled or under disabled fieldset\r\n !target.matches(':disabled') &&\r\n // Not due to element being removed from DOM\r\n !removedElement?.contains(target) &&\r\n // Not due to scrollable element became non-scrollable\r\n (target.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(target))\r\n );\r\n}\r\n\r\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\r\n return merge(\r\n fromEvent(root, 'focusin').pipe(map(({target}) => target)),\r\n fromEvent<any>(root, 'focusout').pipe(\r\n filter(\r\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\r\n ),\r\n map(({relatedTarget}) => relatedTarget),\r\n ),\r\n );\r\n}\r\n\r\n/**\r\n * Active element on the document for ActiveZone\r\n */\r\nexport const INS_ACTIVE_ELEMENT = createTokenFromFactory<\r\n Observable<EventTarget | null>\r\n>(() => {\r\n const removedElement$ = inject(INS_REMOVED_ELEMENT);\r\n const win = inject(WINDOW);\r\n const doc = inject(DOCUMENT);\r\n const zone = inject(NgZone);\r\n const focusout$ = fromEvent<any>(win, 'focusout', {capture: true});\r\n const focusin$ = fromEvent(win, 'focusin', {capture: true});\r\n const blur$ = fromEvent(win, 'blur');\r\n const mousedown$ = fromEvent(win, 'mousedown');\r\n const mouseup$ = fromEvent(win, 'mouseup');\r\n\r\n return merge(\r\n // mousedown事件会触发focusout事件,所以当mousedown时停止监听focusout。\r\n // relatedTarget 对于 focusout 事件是一个元素,焦点即将移动到该元素上,如果焦点将要移走则为 null。\r\n focusout$.pipe(\r\n takeUntil(mousedown$),\r\n repeat({delay: () => mouseup$}),\r\n withLatestFrom(removedElement$),\r\n filter(([event, removedElement]) =>\r\n isValidFocusout(getActualTarget(event), removedElement),\r\n ),\r\n map(([{relatedTarget}]) => relatedTarget),\r\n ),\r\n blur$.pipe(\r\n map(() => doc.activeElement),\r\n filter((element) => !!element?.matches('iframe')),\r\n ),\r\n focusin$.pipe(\r\n switchMap((event) => {\r\n const target = getActualTarget(event);\r\n const root = getDocumentOrShadowRoot(target) || doc;\r\n\r\n return root === doc\r\n ? of(target)\r\n : shadowRootActiveElement(root as Document).pipe(startWith(target));\r\n }),\r\n ),\r\n // 每次 mousedown 事件中,我们检查当前是否有内容被聚焦。如果没有( activeElement 等于 body ),我们只需将 mousedown 事件映射到其目标。\r\n // 如果有内容被聚焦,我们开始监听 focusout 事件,期待失去焦点。\r\n // 焦点丢失是 mousedown 事件后的默认行为。如果你在这个事件上调用 preventDefault() ,焦点将保持原位。\r\n // 如果默认操作被阻止且焦点保持在原位,我们在下一帧( timer(0) )停止等待 focusout 事件\r\n mousedown$.pipe(\r\n switchMap((event) => {\r\n const actualTargetInCurrentTime = getActualTarget(event);\r\n\r\n return !doc.activeElement || doc.activeElement === doc.body\r\n ? of(actualTargetInCurrentTime)\r\n : focusout$.pipe(\r\n take(1),\r\n map(\r\n /**\r\n * Do not use `map(() => insGetActualTarget(event))`\r\n * because we have different result in runtime\r\n */\r\n () => actualTargetInCurrentTime,\r\n ),\r\n // takeUntil(timer(0)),\r\n takeUntil(timer(0, insZonefreeScheduler(zone))),\r\n );\r\n }),\r\n ),\r\n ).pipe(distinctUntilChanged(), share());\r\n});\r\n","import type {OnDestroy} from '@angular/core';\r\nimport {Directive, effect, inject, Input, input, model, NgZone, Output, signal} from '@angular/core';\r\nimport {NgControl} from '@angular/forms';\r\nimport type {Observable} from 'rxjs';\r\nimport {distinctUntilChanged, map, share, skip, startWith, tap} from 'rxjs';\r\nimport { injectElement } from '../dom/inject-element';\r\nimport { insZoneOptimized } from '../zone';\r\nimport { INS_ACTIVE_ELEMENT } from '../../token/active-element';\r\n\r\n@Directive({\r\n \r\n selector:\r\n '[insActiveZone]:not(ng-container), [insActiveZoneChange]:not(ng-container), [insActiveZoneParent]:not(ng-container)',\r\n exportAs: 'insActiveZone',\r\n host: {\r\n '(document:mousedown.zoneless)': '(0)',\r\n },\r\n})\r\nexport class InsActiveZone implements OnDestroy {\r\n private readonly control: any = inject(NgControl, {self: true, optional: true});\r\n private readonly active$ = inject<Observable<Element | null>>(INS_ACTIVE_ELEMENT);\r\n private readonly zone = inject(NgZone);\r\n private readonly el = injectElement();\r\n public subActiveZones: readonly InsActiveZone[] = [];\r\n private readonly directParentActiveZone = inject(InsActiveZone, {\r\n skipSelf: true,\r\n optional: true,\r\n });\r\n\r\n public insActiveZoneParent = signal<InsActiveZone | null>(null)\r\n @Input({\r\n alias: 'insActiveZoneParent'\r\n })\r\n public set insActiveZoneParentSetter(v:InsActiveZone | null){\r\n this.insActiveZoneParent.set(v)\r\n }\r\n\r\n\r\n @Output()\r\n public readonly insActiveZoneChange = this.active$.pipe(\r\n map((element) => !!element && this.contains(element)),\r\n startWith(false),\r\n distinctUntilChanged(),\r\n skip(1),\r\n tap((active) => {\r\n if (!active && typeof this.control?.valueAccessor.onTouched === 'function') {\r\n this.control.valueAccessor.onTouched();\r\n }\r\n }),\r\n insZoneOptimized(this.zone),\r\n share(),\r\n );\r\n\r\n constructor() {\r\n this.directParentActiveZone?.addSubActiveZone(this);\r\n\r\n effect(()=>{\r\n this.setZone(this.insActiveZoneParent())\r\n })\r\n }\r\n\r\n \r\n\r\n public ngOnDestroy(): void {\r\n this.directParentActiveZone?.removeSubActiveZone(this);\r\n this.insActiveZoneParent()?.removeSubActiveZone(this);\r\n }\r\n\r\n public contains(node: Node): boolean {\r\n return (\r\n this.el.contains(node) ||\r\n this.subActiveZones.some(\r\n (item, index, array) =>\r\n array.indexOf(item) === index && item.contains(node),\r\n )\r\n );\r\n }\r\n\r\n private setZone(zone: InsActiveZone | null): void {\r\n this.insActiveZoneParent()?.removeSubActiveZone(this);\r\n zone?.addSubActiveZone(this);\r\n this.insActiveZoneParent.set(zone)\r\n }\r\n\r\n private addSubActiveZone(activeZone: InsActiveZone): void {\r\n this.subActiveZones = [...this.subActiveZones, activeZone];\r\n }\r\n\r\n private removeSubActiveZone(activeZone: InsActiveZone): void {\r\n // this.subActiveZones = insArrayRemove(\r\n // this.subActiveZones,\r\n // this.subActiveZones.indexOf(activeZone),\r\n // );\r\n this.subActiveZones = this.subActiveZones.filter(item => item !== activeZone)\r\n }\r\n}\r\n","import type {Type} from '@angular/core';\r\nimport {InjectionToken} from '@angular/core';\r\nimport { createTokenFromFactory } from '../../service/create-token';\r\nimport { InsDropdownComponent } from './dropdown.component';\r\n\r\n\r\n/**\r\n * A component to display a dropdown\r\n */\r\nexport const INS_DROPDOWN_COMPONENT = createTokenFromFactory<Type<any>>(\r\n () => InsDropdownComponent,\r\n);\r\n\r\nexport const INS_DROPDOWN_CONTEXT = new InjectionToken<Record<any, any>>('');\r\n","import {Directive, Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\r\nimport { InsDriver, InsDriverDirective } from '../../service/insDriver';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class InsDropdownDriver extends BehaviorSubject<boolean> implements InsDriver {\r\n public readonly type = 'dropdown';\r\n constructor() {\r\n super(false);\r\n }\r\n}\r\n\r\n@Directive({\r\n \r\n})\r\nexport class InsDropdownDriverDirective extends InsDriverDirective {\r\n public readonly type = 'dropdown';\r\n}\r\n","import type {FactoryProvider} from '@angular/core';\r\nimport {Directive, inject, Input, Optional, Self, SkipSelf} from '@angular/core';\r\nimport { InsVerticalDirection } from '../../model/direction';\r\nimport { createToken } from '../../service/create-token';\r\nimport { insOverrideOptions } from '../../service/override-options';\r\nimport { insProvide } from '../../service/provide';\r\n\r\nexport type InsDropdownAlign = 'center' | 'left' | 'right';\r\nexport type InsDropdownWidth = 'auto' | 'fixed' | 'min';\r\n\r\nexport interface InsDropdownOptions {\r\n readonly align: InsDropdownAlign;\r\n readonly appearance: string;\r\n readonly direction: InsVerticalDirection | null;\r\n readonly limitWidth: InsDropdownWidth;\r\n readonly maxHeight: number;\r\n readonly minHeight: number;\r\n readonly offset: number;\r\n}\r\n\r\n/** Default values for dropdown options */\r\nexport const INS_DROPDOWN_DEFAULT_OPTIONS: InsDropdownOptions = {\r\n align: 'left',\r\n direction: null,\r\n limitWidth: 'auto',\r\n maxHeight: 400,\r\n minHeight: 80,\r\n offset: 4,\r\n appearance: '',\r\n};\r\n\r\n/**\r\n * Default parameters for dropdown directive\r\n */\r\nexport const INS_DROPDOWN_OPTIONS = createToken(INS_DROPDOWN_DEFAULT_OPTIONS);\r\n\r\nexport const insDropdownOptionsProvider: (\r\n options: Partial<InsDropdownOptions>,\r\n) => FactoryProvider = (override: Partial<InsDropdownOptions>) => ({\r\n provide: INS_DROPDOWN_OPTIONS,\r\n deps: [\r\n [new Optional(),new Self(), InsDropdownOptionsDirective],\r\n [new Optional(), new SkipSelf(), INS_DROPDOWN_OPTIONS],\r\n ],\r\n useFactory: insOverrideOptions(override, INS_DROPDOWN_DEFAULT_OPTIONS),\r\n});\r\n\r\n@Directive({\r\n \r\n selector:\r\n '[insDropdownAlign], [insDropdownAppearance], [insDropdownDirection], [insDropdownLimitWidth], [insDropdownMinHeight], [insDropdownMaxHeight], [insDropdownOffset]',\r\n providers: [insProvide(INS_DROPDOWN_OPTIONS, InsDropdownOptionsDirective)],\r\n})\r\nexport class InsDropdownOptionsDirective implements InsDropdownOptions {\r\n private readonly options = inject(INS_DROPDOWN_OPTIONS, {skipSelf: true});\r\n\r\n @Input('insDropdownAlign')\r\n public align = this.options.align;\r\n\r\n @Input('insDropdownAppearance')\r\n public appearance = this.options.appearance;\r\n\r\n @Input('insDropdownDirection')\r\n public direction = this.options.direction;\r\n\r\n @Input('insDropdownLimitWidth')\r\n public limitWidth = this.options.limitWidth;\r\n\r\n @Input('insDropdownMinHeight')\r\n public minHeight = this.options.minHeight;\r\n\r\n @Input('insDropdownMaxHeight')\r\n public maxHeight = this.options.maxHeight;\r\n\r\n @Input('insDropdownOffset')\r\n public offset = this.options.offset;\r\n}\r\n","import type {Provider, Type} from '@angular/core';\r\nimport {inject} from '@angular/core';\r\nimport { WINDOW } from '../webapi';\r\nimport { InsRectAccessor } from '../model/accessors';\r\nimport { createTokenFromFactory } from '../service/create-token';\r\nimport { insProvide } from '../service/provide';\r\n\r\n/**\r\n * Viewport accessor\r\n */\r\nexport const INS_VIEWPORT = createTokenFromFactory<InsRectAccessor>(() => {\r\n const win = inject(WINDOW);\r\n\r\n return {\r\n type: 'viewport',\r\n getClientRect() {\r\n const rect = {\r\n top: 0,\r\n left: 0,\r\n right: win.innerWidth,\r\n bottom: win.innerHeight,\r\n width: win.innerWidth,\r\n height: win.innerHeight,\r\n x: 0,\r\n y: 0,\r\n };\r\n\r\n return {\r\n ...rect,\r\n toJSON: () => JSON.stringify(rect),\r\n };\r\n },\r\n };\r\n});\r\n\r\nexport function insAsViewport(accessor: Type<InsRectAccessor>): Provider {\r\n return insProvide(INS_VIEWPORT, accessor);\r\n}\r\n","import { Directive, inject } from \"@angular/core\";\r\nimport { insAsPositionAccessor, InsPositionAccessor, InsRectAccessor } from \"../../model/accessors\";\r\nimport { INS_DROPDOWN_OPTIONS } from \"./dropdown-options.directive\";\r\nimport { INS_VIEWPORT } from \"../../token/viewport\";\r\nimport { InsPoint } from \"../../model/point\";\r\nimport { EMPTY_CLIENT_RECT } from \"../../model/empty\";\r\nimport { InsVerticalDirection } from \"../../model/direction\";\r\n\r\n\r\n@Directive({\r\n \r\n providers: [\r\n insAsPositionAccessor(InsDropdownPosition)\r\n ]\r\n})\r\n\r\nexport class InsDropdownPosition extends InsPositionAccessor {\r\n\r\n private readonly options = inject(INS_DROPDOWN_OPTIONS);\r\n private readonly viewport = inject(INS_VIEWPORT);\r\n\r\n public readonly accessor: InsRectAccessor | null = inject<any>(InsRectAccessor)\r\n // insFallbackAccessor<InsRectAccessor>('dropdown')(\r\n // inject<any>(InsRectAccessor),\r\n // inject(InsDropdownDirective, {optional: true})!,\r\n // );\r\n public readonly type = 'dropdown';\r\n private previous?: InsVerticalDirection;\r\n\r\n\r\n public getPosition({width, height}: DOMRect): InsPoint {\r\n if (!width && !height) {\r\n this.previous = undefined;\r\n }\r\n\r\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\r\n const viewportRect = this.viewport.getClientRect();\r\n const {minHeight, align, direction, offset, limitWidth} = this.options;\r\n const viewport = {\r\n top: viewportRect.top + offset,\r\n bottom: viewportRect.bottom - offset,\r\n right: viewportRect.right - offset,\r\n left: viewportRect.left + offset,\r\n } as const;\r\n const previous = this.previous || direction || 'bottom';\r\n const available = {\r\n top: hostRect.top - viewport.top,\r\n bottom: viewport.bottom - hostRect.bottom,\r\n } as const;\r\n const rectWidth = limitWidth === 'fixed' ? hostRect.width : width;\r\n const right = Math.max(hostRect.right - rectWidth, offset);\r\n const left = hostRect.left + width < viewport.right ? hostRect.left : right;\r\n\r\n const position = {\r\n top: hostRect.top - offset - height,\r\n bottom: hostRect.bottom + offset,\r\n right: Math.max(viewport.left, right),\r\n center:\r\n hostRect.left + hostRect.width / 2 + width / 2 < viewport.right\r\n ? hostRect.left + hostRect.width / 2 - width / 2\r\n : right,\r\n left: Math.max(viewport.left, left),\r\n } as const;\r\n\r\n if (\r\n (available[previous] > minHeight && direction) ||\r\n available[previous] > height\r\n ) {\r\n return [position[previous], position[align]];\r\n }\r\n const better = available.top > available.bottom ? 'top' : 'bottom';\r\n this.previous = better;\r\n\r\n return [position[better], position[align]];\r\n}\r\n}","import type {EmbeddedViewRef, OnDestroy} from '@angular/core';\r\nimport {Directive, inject, Input, TemplateRef} from '@angular/core';\r\n\r\nimport {InsPopupService} from './popup.service';\r\n\r\n@Directive({\r\n \r\n selector: 'ng-template[insPopup]',\r\n})\r\nexport class InsPopup implements OnDestroy {\r\n private readonly template = inject(TemplateRef);\r\n private readonly service = inject(InsPopupService);\r\n\r\n private viewRef?: EmbeddedViewRef<unknown>;\r\n\r\n @Input()\r\n public set insPopup(show: boolean) {\r\n this.viewRef?.destroy();\r\n\r\n if (show) {\r\n this.viewRef = this.service.add(this.template);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.viewRef?.destroy();\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\r\nimport { InsPortals, insProvide } from '../../service';\r\nimport { InsPortalService } from '../../service/portals/service';\r\nimport { InsPopupService } from './popup.service';\r\n\r\n\r\n@Component({\r\n selector: 'ins-popups',\r\n template: '<ng-content/><ng-container #vcr />',\r\n styleUrl: './popups.style.less',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n \r\n host: {\r\n 'ngSkipHydration': 'true'\r\n },\r\n providers: [insProvide(InsPortalService, InsPopupService)],\r\n})\r\nexport class InsPopups extends InsPortals {}\r\n","import { ChangeDetectorRef, ComponentRef, Directive, effect, inject, INJECTOR, Input, OnDestroy, signal, TemplateRef } from \"@angular/core\";\r\nimport { insAsRectAccessor, InsRectAccessor } from \"../../model/accessors\";\r\nimport { InsPortalItem } from \"../../model/portal-item\";\r\nimport { insAsVehicle, InsVehicle } from \"../../service/vehicle\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { PolymorpheusComponent } from \"../../service/Polymorpheus/PolymorpheusComponent\";\r\nimport { INS_DROPDOWN_COMPONENT } from \"./dropdown.providers\";\r\nimport { PolymorpheusContent } from \"../../service/Polymorpheus/content\";\r\nimport { InsContext } from \"../../model/context\";\r\nimport { PolymorpheusTemplate } from \"../../service/Polymorpheus/PolymorpheusTemplate\";\r\nimport { InsDropdownDriver, InsDropdownDriverDirective } from \"./dropdown.driver\";\r\nimport { InsDropdownPosition } from \"./dropdown-position.directive\";\r\nimport { insCheckFixedPosition } from \"../../service/dom/check-fixed-position\";\r\nimport { InsPopupService } from \"../popup\";\r\nimport { coerceArray } from \"../../service/coerceArray\";\r\n\r\n@Directive({\r\n \r\n selector: '[insDropdown]:not(ng-container):not(ng-template)',\r\n providers: [\r\n insAsRectAccessor(InsDropdownDirective),\r\n insAsVehicle(InsDropdownDirective),\r\n ],\r\n exportAs: 'insDropdown',\r\n hostDirectives: [\r\n { directive: InsDropdownDriverDirective },\r\n { directive: InsDropdownPosition }\r\n ],\r\n})\r\nexport class InsDropdownDirective\r\n implements\r\n OnDestroy,\r\n InsPortalItem,\r\n InsRectAccessor,\r\n InsVehicle {\r\n\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n private readonly service = inject(InsPopupService);\r\n\r\n public readonly el = injectElement();\r\n public readonly type = 'dropdown';\r\n public readonly component = new PolymorpheusComponent(\r\n inject(INS_DROPDOWN_COMPONENT),\r\n inject(INJECTOR),\r\n );\r\n\r\n public ref = signal<ComponentRef<unknown> | null>(null);\r\n public content = signal<PolymorpheusContent<InsContext<{close: () => void, data: any}>>>(null)\r\n\r\n private readonly drivers = \r\n coerceArray(inject(InsDropdownDriver, {self: true, optional: true}))\r\n \r\n\r\n @Input()\r\n public set insDropdown(content: PolymorpheusContent<InsContext<{close: () => void, data: any}>>) {\r\n this.content.set(\r\n content instanceof TemplateRef\r\n ? new PolymorpheusTemplate(content, this.cdr)\r\n : content\r\n )\r\n }\r\n @Input()\r\n public itemData: any=null;\r\n\r\n public position = insCheckFixedPosition(this.el) ? 'fixed' : 'absolute';\r\n\r\n constructor(){\r\n effect(()=>{\r\n if(!this.content()){\r\n this.toggle(false)\r\n }\r\n })\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.toggle(false);\r\n }\r\n public getClientRect(): DOMRect {\r\n return this.el.getBoundingClientRect();\r\n }\r\n public toggle(show: boolean): void {\r\n const ref = this.ref()\r\n if(show && this.content() && !ref){\r\n this.ref.set(this.service.add(this.component))\r\n } else if(!show && ref){\r\n ref.destroy()\r\n this.ref.set(null)\r\n }\r\n\r\n\r\n this.drivers.forEach((driver) => {\r\n if (driver.value !== show) {\r\n driver.next(show);\r\n }\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, inject } from \"@angular/core\";\r\nimport { PolymorpheusOutlet } from \"../../service/Polymorpheus/PolymorpheusOutlet\";\r\nimport { InsActiveZone } from \"../../service/active-zone/active-zone.directive\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { WINDOW } from \"../../webapi\";\r\nimport { InsPositionService } from \"../../service/position.service\";\r\nimport { map, takeWhile } from \"rxjs\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { InsDropdownDirective } from \"./dropdown.directive\";\r\nimport { INS_DROPDOWN_OPTIONS } from \"./dropdown-options.directive\";\r\nimport { InsRectAccessor, } from \"../../model/accessors\";\r\nimport { insClamp } from \"../../service/math/clamp\";\r\nimport { InsDropdownOpen } from \"./dropdown-open.directive\";\r\nimport { InsAnimated } from \"../../service/animated\";\r\n\r\n\r\n@Component({\r\n selector: 'ins-dropdown',\r\n styleUrls: ['./dropdown.style.less'],\r\n templateUrl: './dropdown.template.html',\r\n imports: [PolymorpheusOutlet],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [\r\n InsPositionService\r\n ],\r\n hostDirectives: [InsActiveZone, InsAnimated],\r\n host: {\r\n '[attr.data-appearance]': 'options.appearance',\r\n },\r\n})\r\nexport class InsDropdownComponent implements AfterViewInit {\r\n private readonly el = injectElement()\r\n private readonly win = inject(WINDOW);\r\n \r\n private readonly accessor = inject(InsRectAccessor);\r\n protected readonly directive = inject(InsDropdownDirective);\r\n // protected readonly openRef = inject(InsDropdownOpen, {optional: true})\r\n protected readonly options = inject(INS_DROPDOWN_OPTIONS);\r\n\r\n\r\n\r\n protected readonly styles$ = inject(InsPositionService)\r\n .pipe(\r\n takeWhile(()=>\r\n this.directive.el.isConnected &&\r\n !!this.directive.el.getBoundingClientRect().height,\r\n ),\r\n map(([top, left]) => this.getStyles(top, left)),\r\n takeUntilDestroyed(),\r\n )\r\n\r\n ngAfterViewInit(): void {\r\n this.styles$.subscribe({\r\n next: (styles) => Object.assign(this.el.style, styles),\r\n complete: () => {},\r\n })\r\n }\r\n\r\n\r\n\r\n // protected readonly close = (): void => this.openRef?.toggle(false);\r\n protected readonly close = (): void => this.directive.toggle(false)\r\n\r\n private getStyles(top: number, left: number): Record<string, string> {\r\n const {right} = this.el.getBoundingClientRect();\r\n const {maxHeight, minHeight, offset, limitWidth} = this.options;\r\n const {innerHeight} = this.win;\r\n const clientRect = this.el.offsetParent?.getBoundingClientRect();\r\n const {position} = this.directive;\r\n const rect = this.accessor.getClientRect();\r\n const offsetX = position === 'fixed' ? 0 : -(clientRect?.left || 0);\r\n const offsetY = position === 'fixed' ? 0 : -(clientRect?.top || 0);\r\n\r\n top += offsetY;\r\n left += offsetX;\r\n\r\n const sided = right <= rect.left || left >= rect.right;\r\n const isIntersecting =\r\n left < rect.right && right > rect.left && top < offsetY + 2 * offset;\r\n const available = isIntersecting\r\n ? rect.top - 2 * offset\r\n : offsetY + innerHeight - top - offset;\r\n\r\n return {\r\n position,\r\n top: Math.round(Math.max(top, offsetY + offset)) + 'px',\r\n left: Math.round(left) + 'px',\r\n maxHeight: sided\r\n ? maxHeight + 'px'\r\n : Math.round(insClamp(available, minHeight, maxHeight)) + 'px',\r\n width: limitWidth === 'fixed' ? Math.round(rect.width) + 'px' : '',\r\n minWidth: limitWidth === 'min' ? Math.round(rect.width) + 'px' : '',\r\n };\r\n }\r\n\r\n}\r\n","<div\r\n *polymorpheusOutlet=\"directive.content() as text; context: {$implicit: {close: close, data: directive.itemData}}\"\r\n class=\"t-primitive\"\r\n>\r\n {{ text }}\r\n</div>","import { ChangeDetectorRef, computed, ContentChild, Directive, effect, ElementRef, inject, Input, model } from \"@angular/core\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { InsObscured } from \"../../service/obscured/obscured.directive\";\r\nimport { InsDropdownDirective } from \"./dropdown.directive\";\r\nimport { distinctUntilChanged, EMPTY, filter, fromEvent, merge, switchMap, tap } from \"rxjs\";\r\nimport { InsActiveZone } from \"../../service/active-zone/active-zone.directive\";\r\nimport { getActualTarget } from \"../../service/dom/get-actual-target\";\r\nimport { isNativeKeyboardFocusable } from \"../../service/focus/is-native-keyboard-focusable\";\r\nimport { getClosestFocusable } from \"../../service/focus/get-closest-focusable\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { isNativeFocusedIn } from \"../../service/focus/is-native-focused-in\";\r\nimport { InsDropdownDriver } from \"./dropdown.driver\";\r\nimport { insIsElementEditable } from \"../../service/dom/is-element-editable\";\r\nimport { isElement, isHTMLElement } from \"../../service/dom/element-checks\";\r\nimport { isEditingKey } from \"../../service/is-editing-key\";\r\nimport { insAsDriver } from \"../../service/insDriver\";\r\nimport { insZonefull } from \"../../service/zone\";\r\n\r\n@Directive({\r\n \r\n selector: '[insDropdown][insDropdownOpen],[insDropdown][insDropdownOpenChange]',\r\n providers: [\r\n InsDropdownDriver,\r\n insAsDriver(InsDropdownDriver)\r\n ],\r\n hostDirectives: [\r\n InsObscured,\r\n {\r\n directive: InsActiveZone,\r\n inputs: ['insActiveZoneParent'],\r\n outputs: ['insActiveZoneChange'],\r\n },\r\n ],\r\n host: {\r\n '(click)': 'onClick($event.target)',\r\n '(keydown.arrowDown)': 'onArrow($event, false)',\r\n '(keydown.arrowUp)': 'onArrow($event, true)',\r\n '(document:keydown.zoneless.capture)': 'onEsc($event)',\r\n '(document:keydown.zoneless)': 'onKeydown($event)',\r\n '(insActiveZoneChange)': '0'\r\n }\r\n})\r\nexport class InsDropdownOpen {\r\n @ContentChild('insDropdownHost', { descendants: false, read: ElementRef })\r\n private readonly dropdownHost?: ElementRef<HTMLElement>;\r\n @Input()\r\n public insDropdownEnabled = true;\r\n public insDropdownOpen = model(false)\r\n\r\n private readonly directive = inject(InsDropdownDirective);\r\n public readonly el = injectElement();\r\n private readonly obscured = inject(InsObscured);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n private readonly driver = inject(InsDropdownDriver);\r\n private readonly dropdown = computed(() =>\r\n this.directive.ref()?.location.nativeElement\r\n )\r\n\r\n protected readonly driveEffect = effect(() => this.drive(this.insDropdownOpen()))\r\n \r\n\r\n private get host() {\r\n if(this.dropdownHost){\r\n return this.dropdownHost.nativeElement;\r\n }\r\n const focusable = isNativeKeyboardFocusable(this.el)\r\n ? this.el\r\n : getClosestFocusable({ initial: this.el, root: this.el });\r\n return focusable || this.el;\r\n }\r\n private readonly activeZone = inject(InsActiveZone)\r\n protected readonly syncSub = this.driver\r\n .pipe(\r\n filter((open) => open !== this.insDropdownOpen()),\r\n takeUntilDestroyed(),\r\n )\r\n .subscribe((open) => this.update(open));\r\n\r\n public readonly sub = this.driver.pipe(\r\n distinctUntilChanged(),\r\n switchMap(v=>{\r\n if(v){\r\n return merge(\r\n this.obscured.insObscured.pipe(filter(Boolean)),\r\n this.activeZone.insActiveZoneChange.pipe(filter((a) => !a)),\r\n fromEvent(this.el, 'focusin').pipe(\r\n filter(\r\n (event) =>\r\n !this.host.contains(getActualTarget(event)) ||\r\n !this.directive.ref(),\r\n ),\r\n ),\r\n )\r\n }else{\r\n return EMPTY\r\n }\r\n }),\r\n insZonefull(),\r\n tap(() => this.cdr.markForCheck()),\r\n takeUntilDestroyed(),\r\n ).subscribe(() => this.toggle(false));\r\n\r\n\r\n // protected readonly sub = merge(\r\n // this.obscured.insObscured.pipe(filter(Boolean)),\r\n // inject(InsActiveZone).insActiveZoneChange.pipe(filter((a) => !a)),\r\n // fromEvent(this.el, 'focusin').pipe(\r\n // map(getActualTarget),\r\n // filter((target) => !this.host.contains(target) || !this.directive.ref()),\r\n // ),\r\n // ).pipe(tap(() => this.cdr.markForCheck()), takeUntilDestroyed())\r\n // .subscribe(() => this.toggle(false));\r\n\r\n public toggle(open: boolean) {\r\n if (this.focused && !open) {\r\n this.host.focus({ preventScroll: true });\r\n }\r\n this.update(open);\r\n }\r\n\r\n private update(open: boolean): void {\r\n if (open && !this.insDropdownEnabled) {\r\n return this.drive(false) //当弹框打开,禁用的情况下,关闭弹框\r\n }\r\n this.insDropdownOpen.set(open);\r\n }\r\n private drive(open = this.insDropdownOpen() && this.insDropdownEnabled): void {\r\n this.driver.next(open); //触发dropdown.directive的toggle,销毁下拉组件\r\n this.obscured.insObscuredEnabled = open;\r\n }\r\n\r\n\r\n protected onEsc(event: Event | KeyboardEvent): void {\r\n if (\r\n 'key' in event &&\r\n event.key.toLowerCase() === 'escape' &&\r\n !!this.insDropdownOpen() &&\r\n !this['dropdown']()?.nextElementSibling\r\n ) {\r\n event.preventDefault();\r\n this.toggle(false);\r\n }\r\n\r\n }\r\n protected onClick(target: HTMLElement): void {\r\n // \r\n if (!this.editable &&this.host.contains(target)) {\r\n this.update(!this.insDropdownOpen());\r\n }\r\n }\r\n\r\n protected onArrow(event: KeyboardEvent, up: boolean): void {\r\n if (\r\n !isElement(event.target) ||\r\n !this.host.contains(event.target) ||\r\n !this.insDropdownEnabled\r\n ) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n this.focusDropdown(up);\r\n }\r\n\r\n protected onKeydown(event: KeyboardEvent): void {\r\n const target = getActualTarget(event);\r\n if (\r\n !event.defaultPrevented &&\r\n isEditingKey(event.key) &&\r\n this.editable &&\r\n this.focused &&\r\n isHTMLElement(target) &&\r\n !insIsElementEditable(target)\r\n\r\n ) {\r\n this.host.focus({ preventScroll: true });\r\n }\r\n }\r\n\r\n\r\n private focusDropdown(previous: boolean): void {\r\n const root = this.dropdown();\r\n\r\n if (!root) {\r\n this.update(true);\r\n return;\r\n }\r\n\r\n const doc = this.el.ownerDocument;\r\n const child = root.appendChild(doc.createElement('div'));\r\n const initial = previous ? child : root;\r\n const focusable = getClosestFocusable({ initial, previous, root });\r\n\r\n child.remove();\r\n focusable?.focus();\r\n }\r\n\r\n private get focused(): boolean {\r\n return isNativeFocusedIn(this.host) || isNativeFocusedIn(this.dropdown());\r\n }\r\n private get editable(): boolean {\r\n return insIsElementEditable(this.host);\r\n }\r\n}","import { Directive, inject, Input } from \"@angular/core\";\r\nimport { insAsPositionAccessor, InsPositionAccessor, InsRectAccessor } from \"../../model/accessors\";\r\nimport { INS_DROPDOWN_OPTIONS } from \"./dropdown-options.directive\";\r\nimport { INS_VIEWPORT } from \"../../token/viewport\";\r\nimport { InsVerticalDirection } from \"../../model/direction\";\r\nimport { InsPoint } from \"../../model/point\";\r\nimport { EMPTY_CLIENT_RECT } from \"../../model/empty\";\r\n\r\n@Directive({\r\n \r\n selector: '[insDropdownSided]',\r\n providers: [insAsPositionAccessor(InsDropdownPositionSided)],\r\n})\r\nexport class InsDropdownPositionSided extends InsPositionAccessor {\r\n private readonly options = inject(INS_DROPDOWN_OPTIONS);\r\n private readonly viewport = inject(INS_VIEWPORT);\r\n\r\n public readonly accessor: InsRectAccessor | null = inject<any>(InsRectAccessor);\r\n\r\n @Input()\r\n public insDropdownSidedOffset = 4;\r\n public readonly type = 'dropdown';\r\n private previous: InsVerticalDirection = this.options.direction||'bottom';\r\n\r\n public getPosition({width, height}: DOMRect): InsPoint {\r\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\r\n const viewport = this.viewport.getClientRect();\r\n const {direction, minHeight, offset} = this.options;\r\n const align = this.options.align === 'center' ? 'left' : this.options.align;\r\n const available = {\r\n top: hostRect.bottom - viewport.top,\r\n left: hostRect.left - offset - viewport.left,\r\n right: viewport.right - hostRect.right - offset,\r\n bottom: viewport.bottom - hostRect.top,\r\n } as const;\r\n const position = {\r\n top: hostRect.bottom - height + this.insDropdownSidedOffset + 1, // 1 for border\r\n left: hostRect.left - width - offset,\r\n right: hostRect.right + offset,\r\n bottom: hostRect.top - this.insDropdownSidedOffset - 1, // 1 for border\r\n } as const;\r\n const better = available.top > available.bottom ? 'top' : 'bottom';\r\n const maxLeft = available.left > available.right ? position.left : position.right;\r\n const left = available[align] > width ? position[align] : maxLeft;\r\n\r\n if (\r\n (available[this.previous] > minHeight && direction) ||\r\n this.previous === better\r\n ) {\r\n return [position[this.previous], left];\r\n }\r\n\r\n this.previous = better;\r\n\r\n return [position[better], left];\r\n }\r\n}","import { InjectionToken, Provider } from \"@angular/core\";\r\nimport { provideOptions } from \"../../service\";\r\n\r\nexport interface InsDropdownHoverOptions {\r\n readonly hideDelay: number;\r\n readonly showDelay: number;\r\n}\r\n\r\n/** Default values for hint options */\r\nexport const INS_DROPDOWN_HOVER_DEFAULT_OPTIONS: InsDropdownHoverOptions = {\r\n showDelay: 200,\r\n hideDelay: 500,\r\n};\r\n\r\n/**\r\n * Default parameters for dropdown hover directive\r\n */\r\nexport const INS_DROPDOWN_HOVER_OPTIONS = new InjectionToken(\r\n ngDevMode ? 'INS_DROPDOWN_HOVER_OPTIONS' : '',\r\n {\r\n factory: () => INS_DROPDOWN_HOVER_DEFAULT_OPTIONS,\r\n },\r\n);\r\n\r\nexport function insDropdownHoverOptionsProvider(\r\n options: Partial<InsDropdownHoverOptions>,\r\n): Provider {\r\n return provideOptions(\r\n INS_DROPDOWN_HOVER_OPTIONS,\r\n options,\r\n INS_DROPDOWN_HOVER_DEFAULT_OPTIONS,\r\n );\r\n}","import { ContentChild, Directive, ElementRef, inject, Input, DOCUMENT } from \"@angular/core\";\r\nimport { getActualTarget, injectElement, InsActiveZone, insAsDriver, InsDriver, insZoneOptimized, isElement } from \"../../service\";\r\n\r\nimport { INS_DROPDOWN_HOVER_OPTIONS } from \"./dropdown-hover.options\";\r\nimport { InsDropdownOpen } from \"./dropdown-open.directive\";\r\nimport { toObservable } from \"@angular/core/rxjs-interop\";\r\nimport { InsDropdownDirective } from \"./dropdown.directive\";\r\nimport { delay, distinctUntilChanged, filter, fromEvent, map, merge, of, share, startWith, switchMap, takeUntil, tap } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[insDropdownHover]',\r\n providers: [InsActiveZone, insAsDriver(InsDropdownHover)],\r\n host: {\r\n '(click.capture)': 'onClick($event)',\r\n },\r\n})\r\nexport class InsDropdownHover extends InsDriver {\r\n @ContentChild('insDropdownHost', { descendants: true, read: ElementRef })\r\n private readonly dropdownHost?: ElementRef<HTMLElement>;\r\n\r\n private readonly el = injectElement()\r\n private readonly doc = inject(DOCUMENT)\r\n private readonly options = inject(INS_DROPDOWN_HOVER_OPTIONS)\r\n private readonly activeZone = inject(InsActiveZone);\r\n\r\n private readonly open = inject(InsDropdownOpen, { optional: true });\r\n\r\n /**\r\n * Dropdown can be removed not only via click/touch –\r\n * swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.\r\n */\r\n private readonly dropdownExternalRemoval$ = toObservable(\r\n inject(InsDropdownDirective).ref\r\n ).pipe(filter((x) => !x && this.hovered))\r\n\r\n private readonly stream$ = merge(\r\n this.dropdownExternalRemoval$.pipe(\r\n switchMap(() =>\r\n fromEvent(this.doc, 'pointerdown').pipe(\r\n map(getActualTarget),\r\n delay(this.showDelay),\r\n startWith(null),\r\n takeUntil(fromEvent(this.doc, 'mouseover'))\r\n )\r\n )\r\n ),\r\n fromEvent(this.doc, 'mouseover').pipe(map(getActualTarget)),\r\n fromEvent(this.doc, 'mouseout').pipe(map((e: any) => e.relatedTarget))\r\n\r\n ).pipe(\r\n map((element) => isElement(element) && this.isHovered(element)),\r\n distinctUntilChanged(),\r\n switchMap((v) => of(v).pipe(delay(v ? this.showDelay : this.hideDelay))),\r\n insZoneOptimized(),\r\n tap((hovered) => {\r\n this.hovered = hovered;\r\n this.open?.toggle(hovered);\r\n }),\r\n share(),\r\n )\r\n\r\n public hovered = false;\r\n\r\n public readonly type = 'dropdown';\r\n\r\n\r\n @Input('insDropdownShowDelay')\r\n public showDelay = this.options.showDelay;\r\n\r\n @Input('insDropdownHideDelay')\r\n public hideDelay = this.options.hideDelay;\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n }\r\n\r\n protected onClick(event: MouseEvent): void {\r\n if (this.hovered && this.open) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n private isHovered(element: Element): boolean {\r\n const host = this.dropdownHost?.nativeElement || this.el;\r\n const hovered = host.contains(element);\r\n const child = !this.el.contains(element) && this.activeZone.contains(element);\r\n\r\n return hovered || child;\r\n }\r\n}","import type {Provider} from '@angular/core';\r\nimport { createToken } from '../service/create-token';\r\nimport { provideOptions } from '../service/provide-options';\r\n\r\nconst COMMON_ICONS: InsCommonIcons = {\r\n check: 'check',\r\n close: 'x',\r\n error: 'circle-alert',\r\n more: 'chevron-right',\r\n search: 'search',\r\n ellipsis: 'ellipsis'\r\n};\r\n\r\nexport interface InsCommonIcons {\r\n readonly check: string;\r\n readonly close: string;\r\n readonly error: string;\r\n readonly more: string;\r\n readonly search: string;\r\n readonly ellipsis: string;\r\n}\r\n\r\nexport const INS_COMMON_ICONS = createToken(COMMON_ICONS);\r\n\r\nexport function commonIconsProvider(icons: Partial<InsCommonIcons>): Provider {\r\n return provideOptions(INS_COMMON_ICONS, icons, COMMON_ICONS);\r\n}\r\n","\r\nimport { inject } from \"@angular/core\";\r\nimport { createTokenFromFactory } from \"../service/create-token\";\r\n\r\n// export const IS_MOBILE = createTokenFromFactory(()=>false)\r\n\r\nexport const IS_IOS = createTokenFromFactory(() => false);\r\n\r\n// export const IS_APPLE = createTokenFromFactory(() => false);","import { InsLanguageCore } from \"../../types/language\";\r\n\r\nexport const INS_CHINESE_LANGUAGE_CORE: InsLanguageCore = {\r\n months: [\r\n '一月',\r\n '二月',\r\n '三月',\r\n '四月',\r\n '五月',\r\n '六月',\r\n '七月',\r\n '八月',\r\n '九月',\r\n '十月',\r\n '十一月',\r\n '十二月',\r\n ],\r\n close: '关闭',\r\n clear: '清除',\r\n hide: '隐藏',\r\n showAll: '显示全部',\r\n nothingFoundMessage: '什么都没找到',\r\n defaultErrorMessage: '无效值',\r\n spinTexts: ['前', '后'],\r\n shortWeekDays: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],\r\n more: '更多',\r\n pagination: ['上一页', '下一页'],\r\n cancel: '',\r\n copyTexts: ['复制', '已复制'],\r\n fileTexts: {\r\n loadingError: '加载错误',\r\n preview: '预览',\r\n remove: '清除',\r\n },\r\n digitalInformationUnits: ['B', 'KiB', 'MiB'],\r\n confirm:{\r\n yes: '是',\r\n no: '不',\r\n }\r\n\r\n}","import { InsLanguage } from \"../../types/language\"\r\nimport { INS_CHINESE_LANGUAGE_CORE } from \"./core\"\r\n\r\n\r\nexport const INS_CHINESE_LANGUAGE: InsLanguage= {\r\n name: 'chinese',\r\n ...INS_CHINESE_LANGUAGE_CORE\r\n}","import {inject, InjectionToken} from '@angular/core';\r\nimport type {Observable} from 'rxjs';\r\nimport {of} from 'rxjs';\r\nimport { INS_CHINESE_LANGUAGE } from '../languages';\r\nimport { InsLanguage } from '../types/language';\r\n\r\nexport const INS_DEFAULT_LANGUAGE = new InjectionToken<InsLanguage>(\r\n '[TUI_DEFAULT_LANGUAGE]',\r\n {\r\n factory: () => INS_CHINESE_LANGUAGE,\r\n },\r\n);\r\n\r\n/**\r\n * Language for libraries i18n\r\n */\r\nexport const INS_LANGUAGE = new InjectionToken<Observable<InsLanguage>>(\r\n '[INS_LANGUAGE]',\r\n {\r\n factory: () => of(inject(INS_DEFAULT_LANGUAGE)),\r\n },\r\n);\r\n","import {inject} from '@angular/core';\r\nimport type {Observable} from 'rxjs';\r\nimport {map} from 'rxjs';\r\nimport { InsLanguage } from '../types';\r\nimport { INS_LANGUAGE } from '../tokens';\r\n\r\nexport function insExtractI18n<K extends keyof InsLanguage>(\r\n key: K,\r\n): () => Observable<InsLanguage[K]> {\r\n return () => inject(INS_LANGUAGE).pipe(map((lang: InsLanguage) => lang[key]));\r\n}\r\n","\r\n\r\nimport { insExtractI18n } from \"../i18n\";\r\nimport { createTokenFromFactory } from \"../service/create-token\";\r\n\r\n;\r\n\r\n/**\r\n * Localized months names\r\n */\r\n// export const INS_MONTHS = createTokenFromFactory(insExtractI18n('months'));\r\n\r\n/**\r\n * i18n 'close' word\r\n */\r\nexport const INS_CLOSE_WORD = createTokenFromFactory(insExtractI18n('close'));\r\n\r\n/**\r\n * i18n 'clear' word\r\n */\r\nexport const INS_CLEAR_WORD = createTokenFromFactory(insExtractI18n('clear'));\r\n\r\n/**\r\n * i18n 'Nothing found' message\r\n */\r\nexport const INS_NOTHING_FOUND_MESSAGE = createTokenFromFactory(\r\n insExtractI18n('nothingFoundMessage'),\r\n);\r\n\r\n/**\r\n * i18n of error message\r\n */\r\nexport const INS_DEFAULT_ERROR_MESSAGE = createTokenFromFactory(\r\n insExtractI18n('defaultErrorMessage'),\r\n);\r\n\r\n/**\r\n * spin i18n texts\r\n */\r\n// export const INS_SPIN_TEXTS = createTokenFromFactory(insExtractI18n('spinTexts'));\r\n\r\n/**\r\n * calendars i18n texts\r\n */\r\n// export const INS_SHORT_WEEK_DAYS = createTokenFromFactory(\r\n// insExtractI18n('shortWeekDays'),\r\n// );\r\n\r\nexport const INS_MORE_WORD = createTokenFromFactory(insExtractI18n('more'));\r\n\r\nexport const INS_PAGINATION_TEXTS = createTokenFromFactory(\r\n insExtractI18n('pagination'),\r\n);\r\n\r\n// export const INS_HIDE_TEXT = createTokenFromFactory(insExtractI18n('hide'));\r\n\r\n// export const INS_SHOW_ALL_TEXT = createTokenFromFactory(insExtractI18n('showAll'));\r\n\r\n// export const INS_DIGITAL_INFORMATION_UNITS = createTokenFromFactory(\r\n// insExtractI18n('digitalInformationUnits'),\r\n// );\r\n// export const INS_FILE_TEXTS = createTokenFromFactory(insExtractI18n('fileTexts'));","\r\nimport {inject, DOCUMENT} from '@angular/core';\r\nimport { createTokenFromFactory } from '../service/create-token';\r\n\r\nexport const REDUCED_MOTION = createTokenFromFactory(\r\n () =>\r\n inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\r\n .matches ?? false,\r\n);\r\n","import { createToken } from \"../service/create-token\";\r\n\r\n\r\n\r\nexport interface InsSpinIcons {\r\n readonly decrement: string;\r\n readonly increment: string;\r\n}\r\n\r\nexport const INS_SPIN_ICONS = createToken<InsSpinIcons>({\r\n decrement: 'chevron-left',\r\n increment: 'chevron-right',\r\n});\r\n","\r\nimport type {Observable} from 'rxjs';\r\nimport { createToken } from '../service/create-token';\r\nimport { PolymorpheusContent } from '../service/Polymorpheus/content';\r\n\r\n/**\r\n * Validation errors\r\n */\r\nexport const INS_VALIDATION_ERRORS = createToken<\r\n Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>\r\n>({});\r\n","import {DOCUMENT} from '@angular/common';\r\nimport {inject, InjectionToken} from '@angular/core';\r\nimport {fromEvent, merge, type Observable, share, switchMap, takeUntil} from 'rxjs';\r\n\r\n/**\r\n * A stream of possible selection changes\r\n */\r\nexport const INS_SELECTION_STREAM = new InjectionToken<Observable<unknown>>(\r\n '',\r\n {\r\n factory: () => {\r\n const doc = inject(DOCUMENT);\r\n\r\n return merge(\r\n fromEvent(doc, 'selectionchange'),\r\n fromEvent(doc, 'mouseup'),\r\n fromEvent(doc, 'mousedown').pipe(\r\n switchMap(() =>\r\n fromEvent(doc, 'mousemove').pipe(\r\n takeUntil(fromEvent(doc, 'mouseup')),\r\n ),\r\n ),\r\n ),\r\n fromEvent(doc, 'keydown'),\r\n fromEvent(doc, 'keyup'),\r\n ).pipe(share());\r\n },\r\n },\r\n);\r\n","import {DOCUMENT, isPlatformBrowser} from '@angular/common';\r\nimport {\r\n computed,\r\n Directive,\r\n inject,\r\n input,\r\n type OnDestroy,\r\n PLATFORM_ID,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport {toObservable} from '@angular/core/rxjs-interop';\r\nimport {combineLatest, distinctUntilChanged, filter, map} from 'rxjs';\r\nimport { getNativeFocused, injectElement, insAsDriver, InsDriver, isElement, isTextfield, isTextNode } from '../../service';\r\nimport { EMPTY_CLIENT_RECT, insAsRectAccessor, InsBooleanHandler, InsRectAccessor } from '../../model';\r\nimport { InsDropdownDirective } from './dropdown.directive';\r\nimport { INS_SELECTION_STREAM } from '../../token';\r\nimport { insGetWordRange } from '../../service/dom/get-word-range';\r\nimport { CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_SPACE } from '../../token/unicode-chars';\r\n\r\n@Directive({\r\n selector: '[insDropdownSelection]',\r\n providers: [\r\n insAsDriver(InsDropdownSelection),\r\n insAsRectAccessor(InsDropdownSelection),\r\n ],\r\n})\r\nexport class InsDropdownSelection\r\n extends InsDriver\r\n implements InsRectAccessor, OnDestroy\r\n{\r\n private ghost?: HTMLElement;\r\n\r\n protected readonly doc = inject(DOCUMENT);\r\n protected readonly vcr = inject(ViewContainerRef);\r\n protected readonly dropdown = inject(InsDropdownDirective, {optional: true});\r\n protected readonly el = injectElement();\r\n protected readonly handler = computed((visible = this.insDropdownSelection()) =>\r\n typeof visible === 'string' ? ()=>true : visible,\r\n );\r\n\r\n protected readonly stream$ = combineLatest([\r\n toObservable(this.handler),\r\n inject(INS_SELECTION_STREAM).pipe(\r\n map(() => this.getRange()),\r\n filter((range) => this.isValid(range)),\r\n distinctUntilChanged(\r\n (x, y) =>\r\n x.startOffset === y.startOffset &&\r\n x.endOffset === y.endOffset &&\r\n x.commonAncestorContainer === y.commonAncestorContainer,\r\n ),\r\n ),\r\n ]).pipe(\r\n map(([handler, range]) => {\r\n const contained = this.el.contains(range.commonAncestorContainer);\r\n\r\n this.range =\r\n contained && isTextNode(range.commonAncestorContainer)\r\n ? range\r\n : this.range;\r\n\r\n return (contained && handler(this.range)) || this.inDropdown(range);\r\n }),\r\n );\r\n\r\n protected range = isPlatformBrowser(inject(PLATFORM_ID))\r\n ? new Range()\r\n : ({} as unknown as Range);\r\n\r\n public readonly type = 'dropdown';\r\n public readonly insDropdownSelection = input<InsBooleanHandler<Range> | string>('');\r\n public readonly insDropdownSelectionPosition = input<'selection' | 'tag' | 'word'>(\r\n 'selection',\r\n );\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n }\r\n\r\n public getClientRect(): DOMRect {\r\n switch (this.insDropdownSelectionPosition()) {\r\n case 'tag': {\r\n const {commonAncestorContainer} = this.range;\r\n const element = isElement(commonAncestorContainer)\r\n ? commonAncestorContainer\r\n : commonAncestorContainer.parentNode;\r\n\r\n return element && isElement(element)\r\n ? element.getBoundingClientRect()\r\n : EMPTY_CLIENT_RECT;\r\n }\r\n case 'word':\r\n return insGetWordRange(this.range).getBoundingClientRect();\r\n default:\r\n return this.range.getBoundingClientRect();\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.ghost) {\r\n this.ghostHost.removeChild(this.ghost);\r\n }\r\n }\r\n\r\n private get ghostHost(): HTMLElement {\r\n return this.el.querySelector('ins-textfield .t-ghost') || this.el;\r\n }\r\n\r\n private getRange(): Range {\r\n const active = getNativeFocused(this.doc);\r\n const selection = this.doc.getSelection();\r\n const range =\r\n active && isTextfield(active) && this.el.contains(active)\r\n ? this.veryVerySadInputFix(active)\r\n : (selection?.rangeCount && selection.getRangeAt(0)) || this.range;\r\n\r\n return range.cloneRange();\r\n }\r\n\r\n /**\r\n * Check if given range is at least partially inside dropdown\r\n */\r\n private inDropdown(range: Range): boolean {\r\n const {startContainer, endContainer} = range;\r\n const inDropdown = this.boxContains(range.commonAncestorContainer);\r\n const hostToDropdown =\r\n this.boxContains(endContainer) && this.el.contains(startContainer);\r\n const dropdownToHost =\r\n this.boxContains(startContainer) && this.el.contains(endContainer);\r\n\r\n return inDropdown || hostToDropdown || dropdownToHost;\r\n }\r\n\r\n /**\r\n * Check if Node is inside dropdown\r\n */\r\n private boxContains(node: Node): boolean {\r\n return !!this.dropdown?.ref()?.location.nativeElement.contains(node);\r\n }\r\n\r\n /**\r\n * Check if range is not inside ins-textfield's DOM elements\r\n */\r\n private isValid(range: Range): boolean {\r\n return (\r\n !this.el.contains(range.commonAncestorContainer) ||\r\n !this.el.closest('ins-textfield') ||\r\n range.intersectsNode(this.ghost || this.el)\r\n );\r\n }\r\n\r\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\r\n const {ghost = this.initGhost(this.ghostHost)} = this;\r\n const {top, left, width, height} = this.ghostHost.getBoundingClientRect();\r\n const {selectionStart, selectionEnd, value} = element;\r\n const range = this.doc.createRange();\r\n const hostRect = this.ghostHost.getBoundingClientRect();\r\n\r\n ghost.style.top = (top - hostRect.top) + 'px';\r\n ghost.style.left = (left - hostRect.left) + 'px';\r\n ghost.style.width = width + 'px';\r\n ghost.style.height = height + 'px';\r\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + value + CHAR_NO_BREAK_SPACE;\r\n\r\n range.setStart(ghost.firstChild as Node, selectionStart || 0);\r\n range.setEnd(ghost.firstChild as Node, selectionEnd || 0);\r\n\r\n return range;\r\n }\r\n\r\n /**\r\n * Create an invisible DIV styled exactly like input/textarea element inside directive\r\n */\r\n private initGhost(\r\n element: HTMLElement | HTMLInputElement | HTMLTextAreaElement,\r\n ): HTMLElement {\r\n const ghost = this.doc.createElement('div');\r\n const {font, letterSpacing, textTransform, padding, borderTop} =\r\n getComputedStyle(element);\r\n\r\n ghost.style.position = 'absolute';\r\n ghost.style.pointerEvents = 'none';\r\n ghost.style.opacity = '0';\r\n ghost.style.whiteSpace = 'pre-wrap';\r\n ghost.style.boxSizing = 'border-box';\r\n ghost.style.borderTop = borderTop;\r\n ghost.style.font = font;\r\n ghost.style.letterSpacing = letterSpacing;\r\n ghost.style.textTransform = textTransform;\r\n ghost.style.padding = padding;\r\n\r\n this.ghostHost.appendChild(ghost);\r\n this.ghost = ghost;\r\n\r\n return ghost;\r\n }\r\n}\r\n","import {isPlatformBrowser} from '@angular/common';\r\nimport {Directive, inject, type OnDestroy, PLATFORM_ID, TemplateRef} from '@angular/core';\r\n\r\nimport {InsDropdownDirective} from './dropdown.directive';\r\n/**\r\n * 暂时没有使用\r\n */\r\n@Directive({\r\n selector: 'ng-template[insDropdown]',\r\n})\r\nexport class InsDropdownContent implements OnDestroy {\r\n private readonly directive = inject(InsDropdownDirective);\r\n\r\n constructor() {\r\n // insSetSignal(this.directive.insDropdown, inject(TemplateRef));\r\n this.directive.insDropdown = inject(TemplateRef);\r\n\r\n if (\r\n isPlatformBrowser(inject(PLATFORM_ID)) &&\r\n this.directive.el.matches(':focus-within')\r\n ) {\r\n this.directive.toggle(true);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n // insSetSignal(this.directive.insDropdown, null);\r\n this.directive.insDropdown = null;\r\n }\r\n}\r\n","import {InsDropdownComponent} from './dropdown.component';\r\nimport {InsDropdownDirective} from './dropdown.directive';\r\nimport {InsDropdownDriverDirective} from './dropdown.driver';\r\nimport {InsDropdownOpen} from './dropdown-open.directive';\r\nimport {InsDropdownOptionsDirective} from './dropdown-options.directive';\r\nimport {InsDropdownPosition} from './dropdown-position.directive';\r\nimport { InsDropdownPositionSided } from './dropdown-position-sided.directive';\r\nimport { InsDropdownHover } from './dropdown-hover.directive';\r\nimport { InsDropdownSelection } from './dropdown-selection.directive';\r\nimport { InsDropdownContent } from './dropdown-content.directive';\r\n\r\nexport const InsDropdown = [\r\n InsDropdownOptionsDirective,\r\n InsDropdownDriverDirective,\r\n InsDropdownDirective,\r\n InsDropdownComponent,\r\n InsDropdownOpen,\r\n InsDropdownPosition,\r\n InsDropdownPositionSided,\r\n InsDropdownHover,\r\n InsDropdownSelection,\r\n InsDropdownContent\r\n] as const;\r\n","import {Directive} from '@angular/core';\r\n\r\nimport {InsDropdownOpen} from './dropdown-open.directive';\r\n\r\n@Directive({\r\n \r\n hostDirectives: [\r\n {\r\n directive: InsDropdownOpen,\r\n inputs: ['insDropdownOpen: open', 'insDropdownEnabled'],\r\n outputs: ['insDropdownOpenChange: openChange'],\r\n },\r\n ],\r\n})\r\nexport class InsWithDropdownOpen {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n Directive,\r\n inject,\r\n Input,\r\n signal,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { createToken } from '../../service/create-token';\r\nimport { insProvide } from '../../service/provide';\r\nimport { INS_ICON_END } from '../icon/icon.options';\r\nimport { InsDropdownDirective } from '../dropdowns';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\nexport const INS_CHEVRON = createToken('chevron-down');\r\n\r\n@Component({\r\n \r\n template: '',\r\n styleUrls: ['./chevron.style.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {class: 'ins-chevron'},\r\n})\r\nclass InsChevronStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insChevron]',\r\n providers: [insProvide(INS_ICON_END, INS_CHEVRON)],\r\n host: {\r\n insChevron: '',\r\n \"[class._chevron-rotated]\" :\"isRotated()\" \r\n },\r\n})\r\nexport class InsChevron {\r\n protected readonly dropdown = inject(InsDropdownDirective, {optional: true});\r\n\r\n protected readonly nothing = insWithStyles(InsChevronStyles);\r\n // protected readonly toggle = effect(() =>\r\n // this.el.classList.toggle(\r\n // '_chevron-rotated',\r\n // this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref()),\r\n // ),\r\n // );\r\n\r\n public readonly chevron = signal<boolean | ''>('')\r\n protected isRotated = computed(()=>this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref()))\r\n @Input({alias: 'insChevron'}) public set setChevron(val: boolean | ''){\r\n this.chevron.set(val)\r\n }\r\n}\r\n","import { Directive, effect, EventEmitter, inject, Input, model, OnChanges, Output, signal } from \"@angular/core\";\r\nimport { insAvatarOptionsProvider } from \"../avatar/avatar.options\";\r\nimport { insButtonOptionsProvider } from \"../button/button.options\";\r\nimport { InsButton } from \"../button/button.directive\";\r\nimport { InsChevron } from \"../chevron\";\r\nimport { InsAccordionComponent } from \"./accordion.component\";\r\n\r\n@Directive({\r\n \r\n selector: 'button[insAccordion]',\r\n providers: [\r\n insAvatarOptionsProvider({size: 's'}),\r\n insButtonOptionsProvider({appearance: 'outline-grayscale'}),\r\n ],\r\n hostDirectives: [InsButton, InsChevron],\r\n host: {\r\n insButton: '',\r\n insAccordion: '',\r\n type: 'button',\r\n '[class._open]': 'open()',\r\n '(click)': 'toggle()',\r\n },\r\n})\r\nexport class InsAccordionDirective implements OnChanges {\r\n\r\n private readonly accordion = inject(InsAccordionComponent);\r\n private readonly insChevron = inject(InsChevron);\r\n private readonly insButton = inject(InsButton)\r\n\r\n public insAccordion = model<boolean|string>('')\r\n\r\n constructor(){\r\n effect(()=>{\r\n this.insButton.sizeSetter = this.accordion.size()\r\n })\r\n effect(()=>{\r\n this.insChevron.setChevron = this.open()\r\n })\r\n }\r\n\r\n public readonly open = signal(false)\r\n\r\n public ngOnChanges(): void {\r\n this.open.set(!!this.insAccordion())\r\n this.accordion.toggle(this)\r\n }\r\n\r\n public toggle(){\r\n this.open.set(!this.open())\r\n this.insAccordion.set(this.open())\r\n this.accordion.toggle(this)\r\n }\r\n}","import { ChangeDetectionStrategy, Component, contentChildren, input, ViewEncapsulation } from \"@angular/core\";\r\nimport { InsGroup } from \"../group/group.directive\";\r\nimport { insGroupOptionsProvider } from \"../group/group.options\";\r\nimport { InsExpand } from \"../expand/expand.component\";\r\nimport { InsAccordionDirective } from \"./accordion.directive\";\r\n\r\n@Component({\r\n \r\n selector: 'ins-accordion',\r\n template: '<ng-content />',\r\n styleUrls: ['./accordion.style.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n insGroupOptionsProvider({\r\n orientation: 'vertical',\r\n collapsed: true,\r\n }),\r\n ],\r\n hostDirectives: [\r\n InsGroup\r\n ],\r\n host: {\r\n '[attr.data-size]': 'size()',\r\n }\r\n})\r\n\r\nexport class InsAccordionComponent {\r\nprotected readonly expands = contentChildren(InsExpand);\r\n protected readonly directives = contentChildren(InsAccordionDirective);\r\n\r\n public readonly closeOthers = input(true);\r\n public readonly size = input<'s' | 'm' | 'l'>('m');\r\n\r\n public toggle(directive: InsAccordionDirective): void {\r\n if (this.closeOthers() && directive.open()) {\r\n this.expands().forEach((expand) => expand.expandedSetter=false);\r\n this.directives().forEach((dir) => {\r\n if (dir !== directive) {\r\n dir.open.set(false);\r\n }\r\n });\r\n }\r\n\r\n const expand = this.expands()[this.directives().indexOf(directive)];\r\n\r\n if (expand) {\r\n expand.expandedSetter=!!directive.open()\r\n }\r\n }\r\n}","\r\nimport { InsExpand } from '../expand/expand.component';\r\nimport {InsAccordionComponent} from './accordion.component';\r\nimport {InsAccordionDirective} from './accordion.directive';\r\n\r\nexport const InsAccordion = [\r\n InsAccordionComponent,\r\n InsAccordionDirective,\r\n InsExpand\r\n] as const;","import { Provider } from \"@angular/core\";\r\nimport { InsAppearanceOptions } from \"../appearance/appearance.options\";\r\nimport { InsStringHandler } from \"../../model/handler\";\r\nimport { createToken } from \"../../service/create-token\";\r\nimport { provideOptions } from \"../../service/provide-options\";\r\n\r\nexport interface InsNotificationOptions extends InsAppearanceOptions {\r\n readonly icon: InsStringHandler<string>|string;\r\n readonly size: 's' | 'm' | 'l';\r\n}\r\n\r\nconst ICONS: Record<string, string> = {\r\n info: 'info',\r\n positive: 'circle-check',\r\n negative: 'circle-x',\r\n warning: 'circle-alert',\r\n neutral: 'info',\r\n};\r\n\r\nexport const INS_NOTIFICATION_DEFAULT_OPTIONS: InsNotificationOptions = {\r\n appearance: 'info',\r\n icon: (appearance) => ICONS[appearance]??'',\r\n size: 'l',\r\n}\r\n\r\n/**\r\n * Default parameters for notification alert component\r\n */\r\nexport const INS_NOTIFICATION_OPTIONS = createToken(INS_NOTIFICATION_DEFAULT_OPTIONS);\r\n\r\nexport function insNotificationOptionsProvider(\r\n options: Partial<InsNotificationOptions>,\r\n): Provider {\r\n return provideOptions(\r\n INS_NOTIFICATION_OPTIONS,\r\n options,\r\n INS_NOTIFICATION_DEFAULT_OPTIONS,\r\n );\r\n}","import type {FactoryProvider} from '@angular/core';\r\nimport { InsAppearanceOptions } from '../appearance/appearance.options';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsLinkOptions extends InsAppearanceOptions {\r\n readonly pseudo: boolean;\r\n}\r\n\r\nexport const INS_LINK_DEFAULT_OPTIONS: InsLinkOptions = {\r\n appearance: 'action',\r\n pseudo: false,\r\n};\r\n\r\nexport const INS_LINK_OPTIONS = createToken(INS_LINK_DEFAULT_OPTIONS);\r\n\r\nexport function insLinkOptionsProvider(\r\n options: Partial<InsLinkOptions>,\r\n): FactoryProvider {\r\n return provideOptions(INS_LINK_OPTIONS, options, INS_LINK_DEFAULT_OPTIONS);\r\n}\r\n","import { ChangeDetectionStrategy, Component, Directive, effect, inject, input, ViewEncapsulation } from \"@angular/core\";\r\n\r\nimport { INS_NOTIFICATION_OPTIONS } from \"./notification.options\";\r\nimport { InsWithIcons } from \"../icon/with-icons\";\r\nimport { InsIcons } from \"../icon/icons.directive\";\r\nimport { insButtonOptionsProvider } from \"../button/button.options\";\r\nimport { insAppearanceOptionsProvider } from \"../appearance/appearance.options\";\r\nimport { insLinkOptionsProvider } from \"../link/link.options\";\r\nimport { InsWithAppearance } from \"../appearance/with-appearance\";\r\nimport { insWithStyles } from \"../../service/with-styles\";\r\nimport { InsStringHandler } from \"../../model/handler\";\r\n\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/notification.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-notification',\r\n },\r\n})\r\nclass InsNotificationStyles { }\r\n\r\n@Directive({\r\n \r\n selector: 'ins-notification,[insNotification]',\r\n providers: [\r\n insAppearanceOptionsProvider(INS_NOTIFICATION_OPTIONS),\r\n insLinkOptionsProvider({\r\n appearance: '',\r\n pseudo: true,\r\n }),\r\n insButtonOptionsProvider({\r\n appearance: 'outline-grayscale',\r\n size: 's',\r\n }),\r\n ],\r\n hostDirectives: [{ directive: InsWithIcons }, { directive: InsWithAppearance }],\r\n host: {\r\n '[attr.data-size]': 'size()',\r\n },\r\n})\r\nexport class InsNotification {\r\n private readonly options = inject(INS_NOTIFICATION_OPTIONS);\r\n\r\n protected readonly nothing = insWithStyles(InsNotificationStyles);\r\n protected readonly icons = inject(InsIcons);\r\n\r\n public appearance = input(this.options.appearance);\r\n public icon = input<string|InsStringHandler<string>>(this.options.icon);\r\n public size = input(this.options.size);\r\n\r\n constructor() {\r\n effect(()=>{\r\n this.icons.iconStart = typeof this.icon() === 'function' ? (this.icon() as Function)(this.appearance()) : this.icon();\r\n })\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"./title.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-title',\r\n },\r\n})\r\nclass InsTitleStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insTitle]',\r\n host: {\r\n insTitle: '',\r\n '[attr.data-size]': 'size()',\r\n },\r\n})\r\nexport class InsTitle {\r\n protected readonly nothing = insWithStyles(InsTitleStyles);\r\n\r\n public size = input('m', {\r\n alias: 'insTitle',\r\n transform: (value:'xs'|'s'|'m'|'l'|'xl'|'xxl'|'') => value===''?'m' : value\r\n })\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject } from \"@angular/core\";\r\nimport { InsButton } from \"../button/button.directive\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { InsAlertOptions } from \"./alert.interfaces\";\r\nimport { EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer } from \"rxjs\";\r\nimport { PolymorpheusOutlet } from \"../../service/Polymorpheus/PolymorpheusOutlet\";\r\nimport { InsNotification } from \"../notification/notification.directive\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { INS_COMMON_ICONS } from \"../../token/common-icons\";\r\nimport { POLYMORPHEUS_CONTEXT } from \"../../service/Polymorpheus/context\";\r\nimport { InsAnimated } from \"../../service/animated\";\r\nimport { InsPortalContext } from \"../../service/portals/portal\";\r\nimport { INS_CLOSE_WORD } from \"../../token/i18n\";\r\nimport { InsTitle } from \"../title\";\r\nimport { InsNotificationDirective } from \"../../service/notification/notification.directive\";\r\n\r\n@Component({\r\n \r\n selector: 'ins-alert',\r\n imports: [PolymorpheusOutlet, InsNotification, InsButton, InsTitle],\r\n templateUrl: './alert.template.html',\r\n styleUrls: ['./alert.style.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n \r\n hostDirectives: [InsAnimated, InsNotificationDirective],\r\n host: {\r\n role: 'alert',\r\n // '(click.capture)': 'syncContentChangeDetection()',\r\n },\r\n})\r\nexport class InsAlertComponent<O, I> {\r\n private readonly el = injectElement()\r\n\r\n protected readonly icons = inject(INS_COMMON_ICONS);\r\n protected readonly item = inject<InsPortalContext<InsAlertOptions<I>, O>>(POLYMORPHEUS_CONTEXT);\r\n\r\n protected readonly close = toSignal(inject(INS_CLOSE_WORD));\r\n\r\n // 当alert内容是一个模板时,需要手动触发变更检测,会有模版open修改了,但是没有触发变更检测的情况\r\n // protected syncContentChangeDetection(): void {\r\n // (this.item.content as unknown as {check?: () => void})?.check?.();\r\n // }\r\n\r\n\r\n protected readonly sub = of(\r\n typeof this.item.autoClose === 'function'\r\n ? this.item.autoClose(this.item.appearance)\r\n : this.item.autoClose,\r\n ).pipe(\r\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\r\n takeUntil(fromEvent(this.el, 'mouseenter')),\r\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\r\n takeUntilDestroyed(),\r\n ).subscribe(()=> this.item.$implicit.complete())\r\n}\r\n","<div class=\"t-wrapper\">\r\n <ins-notification\r\n size=\"m\"\r\n [appearance]=\"item.appearance\"\r\n [class.t-closeable]=\"item.closeable\"\r\n [icon]=\"item.icon\"\r\n >\r\n <div insTitle>\r\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\r\n {{ text }}\r\n </ng-container>\r\n <div insSubtitle>\r\n <span\r\n *polymorpheusOutlet=\"item.content as text; context: item\"\r\n [innerHTML]=\"text\"\r\n ></span>\r\n </div>\r\n </div>\r\n @if (item.closeable) {\r\n <button\r\n insIconButton\r\n type=\"button\"\r\n [iconStart]=\"icons.close\"\r\n (click)=\"item.$implicit.complete()\"\r\n >\r\n {{close()}}\r\n </button>\r\n }\r\n </ins-notification>\r\n</div>\r\n","import type {FactoryProvider} from '@angular/core';\r\nimport {inject} from '@angular/core';\r\n\r\nimport { InsAlertOptions } from './alert.interfaces';\r\nimport { INS_NOTIFICATION_OPTIONS } from '../notification/notification.options';\r\nimport { createToken, createTokenFromFactory } from '../../service/create-token';\r\n\r\nexport const INS_ALERT_CONCURRENCY = createToken<number>(5);\r\n\r\nexport const INS_ALERT_DEFAULT_OPTIONS: Omit<InsAlertOptions, 'appearance' | 'icon'> = {\r\n autoClose: 3000,\r\n label: '',\r\n closeable: true,\r\n data: undefined,\r\n block: 'start',\r\n inline: 'end',\r\n};\r\n\r\nexport const INS_ALERT_OPTIONS = createTokenFromFactory<InsAlertOptions>(() => ({\r\n ...INS_ALERT_DEFAULT_OPTIONS,\r\n ...inject(INS_NOTIFICATION_OPTIONS),\r\n}));\r\n\r\n\r\n\r\nexport function insAlertOptionsProvider(\r\n options: Partial<InsAlertOptions>,\r\n): FactoryProvider {\r\n return {\r\n provide: INS_ALERT_OPTIONS,\r\n useFactory: (): InsAlertOptions => ({\r\n ...INS_ALERT_DEFAULT_OPTIONS,\r\n ...(inject(INS_ALERT_OPTIONS, {optional: true, skipSelf: true}) ||\r\n inject(INS_NOTIFICATION_OPTIONS)),\r\n ...options,\r\n }),\r\n };\r\n}","import {inject, Injectable} from '@angular/core';\r\nimport type {InsAlertOptions} from './alert.interfaces';\r\nimport { InsNotificationService } from '../../service/notification';\r\nimport { INS_ALERT_CONCURRENCY, INS_ALERT_OPTIONS } from './alert.tokens';\r\nimport { InsAlertComponent } from './alert.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InsAlertService extends InsNotificationService<InsAlertOptions<any>> {\r\n protected override readonly options = inject(INS_ALERT_OPTIONS);\r\n protected override readonly component = InsAlertComponent;\r\n\r\n constructor() {\r\n super(inject(INS_ALERT_CONCURRENCY));\r\n }\r\n}\r\n","import {Directive, input} from '@angular/core';\r\n\r\nimport type {InsAlertOptions} from './alert.interfaces';\r\nimport { InsAlertService } from './alert.service';\r\nimport { insAsPortal } from '../../service/portals/portal';\r\nimport { InsPortalDirective } from '../../service/portals/directive';\r\n\r\n@Directive({\r\n \r\n selector: 'ng-template[insAlert]',\r\n providers: [insAsPortal(InsAlertService)],\r\n hostDirectives: [\r\n {\r\n directive: InsPortalDirective,\r\n inputs: ['options: insAlertOptions', 'open: insAlert'],\r\n outputs: ['openChange: insAlertChange'],\r\n },\r\n ],\r\n})\r\nexport class InsAlert<T> {\r\n public readonly insAlertOptions = input<Partial<InsAlertOptions<T>>>({})\r\n}\r\n","\r\nimport {ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation} from '@angular/core';\r\n\r\nimport {INS_AVATAR_OPTIONS} from './avatar.options';\r\nimport { insAppearanceOptionsProvider } from '../appearance/appearance.options';\r\nimport { InsWithAppearance } from '../appearance/with-appearance';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/avatar.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-avatar',\r\n },\r\n})\r\nclass InsAvatarStyles {}\r\n\r\n\r\n\r\n\r\n@Component({\r\n \r\n selector: 'ins-avatar,button[insAvatar],a[insAvatar]',\r\n templateUrl: './avatar.template.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [insAppearanceOptionsProvider(INS_AVATAR_OPTIONS)],\r\n hostDirectives: [{ directive: InsWithAppearance }],\r\n host: {\r\n '[attr.data-size]': 'size()',\r\n '[class._round]': 'round()',\r\n },\r\n})\r\nexport class InsAvatar {\r\n\r\n protected readonly nothing = insWithStyles(InsAvatarStyles);\r\n\r\n private readonly options = inject(INS_AVATAR_OPTIONS);\r\n public size = input(this.options.size)\r\n public round = input(this.options.round)\r\n}\r\n","<ng-content />","import type {Provider} from '@angular/core';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsLoaderOptions {\r\n readonly inheritColor: boolean;\r\n readonly overlay: boolean;\r\n readonly size: 's' | 'm' | 'l';\r\n}\r\n\r\n/** Default values for the loader options. */\r\nexport const INS_LOADER_DEFAULT_OPTIONS: InsLoaderOptions = {\r\n size: 'm',\r\n inheritColor: false,\r\n overlay: false,\r\n};\r\n\r\n/**\r\n * Default parameters for loader component\r\n */\r\nexport const INS_LOADER_OPTIONS = createToken(INS_LOADER_DEFAULT_OPTIONS);\r\n\r\nexport function insLoaderOptionsProvider(options: Partial<InsLoaderOptions>): Provider {\r\n return provideOptions(INS_LOADER_OPTIONS, options, INS_LOADER_DEFAULT_OPTIONS);\r\n}\r\n","import { NgIf } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\n\r\nimport { INS_LOADER_OPTIONS } from './loader.options';\r\nimport { PolymorpheusOutlet } from '../../service/Polymorpheus/PolymorpheusOutlet';\r\nimport { PolymorpheusContent } from '../../service/Polymorpheus/content';\r\n\r\n@Component({\r\n \r\n selector: 'ins-loader',\r\n imports: [PolymorpheusOutlet],\r\n templateUrl: './loader.template.html',\r\n styleUrls: ['./loader.style.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class._loading]': 'loading()',\r\n '[attr.data-size]': 'size()',\r\n },\r\n})\r\nexport class InsLoader {\r\n private readonly options = inject(INS_LOADER_OPTIONS);\r\n public size = input<'xs'|'s'|'m'|'l'>(this.options.size)\r\n\r\n\r\n public inheritColor = input(this.options.inheritColor)\r\n public overlay = input(this.options.overlay)\r\n public textContent = input<PolymorpheusContent|string>()\r\n\r\n protected hasOverlay = computed(() => this.overlay() && this.loading())\r\n\r\n public loading = input(true, {\r\n alias: 'showLoader'\r\n })\r\n\r\n\r\n}\r\n","<fieldset\r\n class=\"t-content\"\r\n [attr.inert]=\"loading() || null\"\r\n [class.t-content_has-overlay]=\"hasOverlay()\"\r\n [class.t-content_loading]=\"loading()\"\r\n [disabled]=\"loading()\"\r\n>\r\n <ng-content />\r\n</fieldset>\r\n\r\n<!-- [class.t-loader_horizontal]=\"isHorizontal()\" -->\r\n@if (loading()) {\r\n<div\r\n class=\"t-loader\"\r\n [class.t-loader_inherit-color]=\"inheritColor()\"\r\n>\r\n <svg\r\n automation-id=\"ins-loader__loader\"\r\n focusable=\"false\"\r\n height=\"100%\"\r\n width=\"100%\"\r\n class=\"t-icon\"\r\n >\r\n <circle\r\n cx=\"50%\"\r\n cy=\"50%\"\r\n class=\"t-circle\"\r\n />\r\n </svg>\r\n\r\n <!-- [class.t-text_horizontal]=\"isHorizontal()\" -->\r\n @if (textContent()) {\r\n <div\r\n automation-id=\"ins-loader__text\"\r\n class=\"t-text\"\r\n >\r\n <ng-container *polymorpheusOutlet=\"textContent() as text\">\r\n {{ text }}\r\n </ng-container>\r\n </div>\r\n }\r\n</div>\r\n}\r\n","import {ChangeDetectionStrategy, Component, computed, inject, input} from '@angular/core';\r\nimport { INS_BUTTON_OPTIONS } from './button.options';\r\nimport { InsLoader } from '../loader/loader.component';\r\n\r\n@Component({\r\n \r\n selector: '[insButton][loading],[insIconButton][loading]',\r\n imports: [InsLoader],\r\n template: `\r\n <ng-content />\r\n <ins-loader\r\n aria-live=\"polite\"\r\n role=\"status\"\r\n class=\"t-loader\"\r\n [inheritColor]=\"true\"\r\n [showLoader]=\"!!loading()\"\r\n [size]=\"size()\"\r\n [textContent]=\"label()\"\r\n />\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[attr.aria-disabled]': 'loading()',\r\n '[class._loading]': 'loading()',\r\n },\r\n})\r\nexport class InsButtonLoading {\r\n private readonly options = inject(INS_BUTTON_OPTIONS);\r\n public size = input(this.options.size);\r\n public loading = input<boolean | string | null>(false);\r\n \r\n protected label = computed(()=>{\r\n return typeof this.loading() === 'string' ? this.loading() : '';\r\n })\r\n}\r\n","import type {Provider} from '@angular/core';\r\nimport { InsStringHandler } from '../../model/handler';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsCheckboxOptions {\r\n readonly size: 's' | 'm' | 'l';\r\n readonly appearance: InsStringHandler<HTMLInputElement> | string;\r\n readonly icons: Readonly<{\r\n checked: InsStringHandler<'s' | 'm' | 'l'> | string;\r\n indeterminate: InsStringHandler<'s' | 'm' | 'l'> | string;\r\n }>;\r\n}\r\n\r\nexport const INS_CHECKBOX_DEFAULT_OPTIONS: InsCheckboxOptions = {\r\n size: 'm',\r\n appearance: (el) =>\r\n el.checked || el.indeterminate ? 'primary' : 'outline-grayscale',\r\n icons: {\r\n checked: 'check',\r\n indeterminate: 'minus',\r\n },\r\n};\r\n\r\nexport const INS_CHECKBOX_OPTIONS = createToken(INS_CHECKBOX_DEFAULT_OPTIONS);\r\n\r\nexport function insCheckboxOptionsProvider(\r\n options: Partial<InsCheckboxOptions>,\r\n): Provider {\r\n return provideOptions(INS_CHECKBOX_OPTIONS, options, INS_CHECKBOX_DEFAULT_OPTIONS);\r\n}\r\n","import type {DoCheck, OnInit} from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n computed,\r\n DestroyRef,\r\n inject,\r\n input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {NgControl, NgModel} from '@angular/forms';\r\n\r\nimport {INS_CHECKBOX_OPTIONS} from './checkbox.options';\r\nimport { startWith, tap } from 'rxjs';\r\nimport { InsAppearance } from '../appearance/appearance.directive';\r\nimport { InsNativeValidator } from '../../service/native-validator/native-validator.directive';\r\nimport { injectElement } from '../../service/dom/inject-element';\r\nimport { insInjectIconResolver } from '../icon/icons.directive';\r\n\r\n@Component({\r\n \r\n selector: 'input[type=\"checkbox\"][insCheckbox]',\r\n template: '',\r\n styles: ['@import \"../../styles/components/checkbox.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [\r\n {\r\n directive: InsAppearance,\r\n inputs: ['insAppearanceState', 'insAppearanceFocus', 'insAppearanceMode'],\r\n },\r\n\r\n InsNativeValidator,\r\n ],\r\n host: {\r\n '[disabled]': '!control || control.disabled',\r\n '[attr.data-size]': 'size()',\r\n '[class._readonly]': '!control',\r\n '[style.--t-checked-icon]': 'iconChecked()',\r\n '[style.--t-indeterminate-icon]': 'iconIndeterminate()',\r\n },\r\n})\r\nexport class InsCheckbox implements OnInit, DoCheck {\r\n private readonly appearance = inject(InsAppearance);\r\n private readonly options = inject(INS_CHECKBOX_OPTIONS);\r\n private readonly resolver = insInjectIconResolver();\r\n private readonly el = injectElement<HTMLInputElement>();\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n\r\n public size = input<'s'|'m'|'l'>(this.options.size)\r\n\r\n public readonly control: NgControl | null = inject(NgControl, {\r\n optional: true,\r\n self: true,\r\n });\r\n\r\n public ngOnInit(): void {\r\n if (!this.control?.valueChanges) {\r\n return;\r\n }\r\n\r\n this.control.valueChanges\r\n .pipe(startWith(this.control.value), tap(() => this.cdr.markForCheck()),takeUntilDestroyed(this.destroyRef))\r\n .subscribe((value) => {\r\n // https://github.com/angular/angular/issues/14988\r\n // const fix =\r\n // this.control instanceof NgModel && value === null\r\n // ? this.control.model\r\n // : value;\r\n\r\n // this.el.indeterminate = fix === null;\r\n });\r\n }\r\n\r\n public ngDoCheck(): void {\r\n this.appearance.insAppearance.set(\r\n typeof this.options.appearance === 'string'\r\n ? this.options.appearance\r\n : this.options.appearance(this.el)\r\n )\r\n }\r\n\r\n protected iconChecked = computed(()=> {\r\n const option = this.options.icons.checked;\r\n const icon = typeof option === 'string' ? option : option(this.size());\r\n\r\n return icon && `url(${this.resolver(icon)})`\r\n })\r\n protected iconIndeterminate = computed(()=> {\r\n const option = this.options.icons.indeterminate;\r\n const icon = typeof option === 'string' ? option : option(this.size());\r\n\r\n return icon && `url(${this.resolver(icon)})`\r\n })\r\n}\r\n","import type {Provider} from '@angular/core';\r\nimport { InsAppearanceOptions } from '../appearance/appearance.options';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsChipOptions extends InsAppearanceOptions {\r\n readonly size: 'xs'|'s'|'m'|'l';\r\n}\r\n\r\nexport const INS_CHIP_DEFAULT_OPTIONS: InsChipOptions = {\r\n appearance: 'neutral',\r\n size: 'm',\r\n};\r\n\r\nexport const INS_CHIP_OPTIONS = createToken(INS_CHIP_DEFAULT_OPTIONS);\r\n\r\nexport function insChipOptionsProvider(options: Partial<InsChipOptions>): Provider {\r\n return provideOptions(INS_CHIP_OPTIONS, options, INS_CHIP_DEFAULT_OPTIONS);\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\nimport {INS_CHIP_OPTIONS} from './chip.options';\r\nimport { insCheckboxOptionsProvider } from '../checkbox/checkbox.options';\r\nimport { insAvatarOptionsProvider } from '../avatar/avatar.options';\r\nimport { insButtonOptionsProvider } from '../button/button.options';\r\nimport { InsWithIcons } from '../icon/with-icons';\r\nimport { insAppearanceOptionsProvider } from '../appearance/appearance.options';\r\nimport { InsWithAppearance } from '../appearance/with-appearance';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/chip.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-chip',\r\n },\r\n})\r\nclass InsChipStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insChip]',\r\n providers: [\r\n insAppearanceOptionsProvider(INS_CHIP_OPTIONS),\r\n insCheckboxOptionsProvider({size: 's'}),\r\n insAvatarOptionsProvider({size: 's'}),\r\n insButtonOptionsProvider({size: 's', appearance: 'action-grayscale'})\r\n ],\r\n hostDirectives: [{ directive: InsWithAppearance }, { directive: InsWithIcons }],\r\n host: {'[attr.data-size]': 'size'},\r\n})\r\nexport class InsChip {\r\n private readonly options = inject(INS_CHIP_OPTIONS);\r\n\r\n protected readonly nothing = insWithStyles(InsChipStyles);\r\n\r\n @Input()\r\n public size: 'xs'|'s'|'m'|'l' = this.options.size;\r\n}\r\n","import { InjectionToken, InputSignal, Provider, TemplateRef, Type } from \"@angular/core\";\r\nimport { InsStringHandler } from \"../../model/handler\";\r\nimport { PolymorpheusContent } from \"../../service/Polymorpheus/content\";\r\nimport { InsContext } from \"../../model/context\";\r\nimport { insProvide } from \"../../service/provide\";\r\nimport { InsIdentityMatcher } from \"../../model/matcher\";\r\n\r\n\r\nexport interface InsDataListAccessor<T = unknown> {\r\n getOptions(includeDisabled?: boolean): readonly T[];\r\n}\r\n\r\nexport interface InsDataListHost<T> {\r\n handleOption(option:T): void\r\n readonly identityMatcher?: InsIdentityMatcher<T>;\r\n readonly stringify?: InsStringHandler<T>;\r\n readonly size: InputSignal<'xs'|'s'|'m'|'l'>;\r\n}\r\n\r\n/**\r\n * Content for insOption component\r\n */\r\n// export const INS_OPTION_CONTENT = new InjectionToken<\r\n// PolymorpheusContent<InsContext<TemplateRef<Record<string, unknown>>>>\r\n// >('[INS_OPTION_CONTENT]');\r\n\r\n// export function insAsOptionContent(\r\n// useValue: PolymorpheusContent<InsContext<TemplateRef<Record<string, unknown>>>>\r\n// ): Provider{\r\n// return {\r\n// provide: INS_OPTION_CONTENT,\r\n// useValue\r\n// }\r\n// }\r\n\r\n/**\r\n * Accessor for data-list options\r\n */\r\nexport const INS_DATA_LIST_ACCESSOR = new InjectionToken<InsDataListAccessor>(\r\n '[INS_DATA_LIST_ACCESSOR]',\r\n);\r\n\r\nexport function insAsDataListAccessor(accessor: Type<InsDataListAccessor>): Provider {\r\n return insProvide(INS_DATA_LIST_ACCESSOR, accessor);\r\n}\r\n\r\n/**\r\n* DataList controller\r\n*/\r\nexport const INS_DATA_LIST_HOST = new InjectionToken<InsDataListHost<unknown>>(\r\n '[INS_DATA_LIST_HOST]',\r\n);\r\n\r\nexport function insAsDataListHost<T>(host: Type<InsDataListHost<T>>): Provider {\r\n return insProvide(INS_DATA_LIST_HOST, host);\r\n}\r\n","import { Directive, forwardRef, inject, Input, OnDestroy } from \"@angular/core\";\r\nimport { InsWithIcons } from \"../icon/with-icons\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { InsDataListComponent } from \"./data-list.component\";\r\nimport { INS_DATA_LIST_HOST, InsDataListHost } from \"./data-list.tokens\";\r\n\r\n@Directive({\r\n selector: 'button[insOption], a[insOption], label[insOption]',\r\n hostDirectives: [InsWithIcons],\r\n host: {\r\n type: 'button',\r\n role: 'option',\r\n '[attr.disabled]': 'disabled || null',\r\n '(click)': 'onClick()'\r\n },\r\n})\r\nexport class InsOption<T = unknown> implements OnDestroy {\r\n\r\n private readonly el = injectElement();\r\n private readonly dataList = inject<InsDataListComponent<T>>(\r\n forwardRef(() => InsDataListComponent),\r\n {optional: true},\r\n );\r\n private readonly host = inject<InsDataListHost<T>>(INS_DATA_LIST_HOST, {\r\n optional: true,\r\n });\r\n\r\n // protected readonly content: PolymorpheusContent<\r\n // InsContext<TemplateRef<Record<string, unknown>>>\r\n // > = inject(INS_OPTION_CONTENT, {optional: true});\r\n\r\n // protected readonly dropdown = inject(InsDropdownDirective, {\r\n // self: true,\r\n // optional: true,\r\n // })?.ref;\r\n\r\n @Input()\r\n public disabled = false;\r\n\r\n @Input()\r\n public value?: T;\r\n\r\n public ngOnDestroy(): void {\r\n this.dataList?.handleFocusLossIfNecessary(this.el);\r\n }\r\n\r\n protected onClick(): void {\r\n if (this.host?.handleOption && this.value !== undefined) {\r\n this.host.handleOption(this.value);\r\n }\r\n}\r\n\r\n // protected onMouseMove(): void {\r\n // if (!this.isMobile && !isNativeFocused(this.el) && this.dataList) {\r\n // this.el.focus({preventScroll: true});\r\n // }\r\n // }\r\n}","import { INS_DATA_LIST_HOST, insAsDataListAccessor, InsDataListAccessor } from \"./data-list.tokens\";\r\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, forwardRef, inject, input, ViewEncapsulation } from \"@angular/core\";\r\nimport { PolymorpheusOutlet } from \"../../service/Polymorpheus/PolymorpheusOutlet\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { insMoveFocus } from \"../../service/focus/move-focus\";\r\nimport { isNativeFocusedIn } from \"../../service/focus/is-native-focused-in\";\r\nimport { isPresent } from \"../../service/is-present\";\r\nimport { PolymorpheusContent } from \"../../service/Polymorpheus/content\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { INS_NOTHING_FOUND_MESSAGE } from \"../../token/i18n\";\r\nimport { InsOption } from \"./option.component\";\r\nimport { insWithStyles } from \"../../service\";\r\n\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"./data-list.style.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-data-list',\r\n },\r\n})\r\nclass InsDataListStyles {}\r\n\r\n\r\n@Component({\r\n selector: 'ins-data-list',\r\n imports: [PolymorpheusOutlet],\r\n templateUrl: './data-list.template.html',\r\n // styleUrls: ['./data-list.style.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [insAsDataListAccessor(InsDataListComponent)],\r\n host: {\r\n role: 'listbox',\r\n '[attr.data-size]': 'size()',\r\n '(focusin)': 'onFocusIn($event.relatedTarget, $event.currentTarget)',\r\n '(mousedown.prevent)': '(0)',\r\n '(wheel.zoneless.passive)': 'handleFocusLossIfNecessary()',\r\n '(mouseleave)': 'handleFocusLossIfNecessary($event.target)',\r\n '(keydown.tab)': 'handleFocusLossIfNecessary()',\r\n '(keydown.shift.tab)': 'handleFocusLossIfNecessary()',\r\n '(keydown.arrowDown.prevent)': 'onKeyDownArrow($event.target, 1)',\r\n '(keydown.arrowUp.prevent)': 'onKeyDownArrow($event.target, -1)',\r\n },\r\n})\r\nexport class InsDataListComponent<T> implements InsDataListAccessor {\r\n\r\n private origin?: HTMLElement;\r\n private readonly el = injectElement();\r\n\r\n private readonly nothing = insWithStyles(InsDataListStyles);\r\n \r\n private readonly options = contentChildren(forwardRef(() => InsOption), { descendants: true })\r\n protected readonly empty = computed(()=>this.options()?.length === 0)\r\n protected readonly fallback = toSignal(inject(INS_NOTHING_FOUND_MESSAGE));\r\n\r\n public size = input<'xs'|'s'|'m'|'l'>(inject(INS_DATA_LIST_HOST, {optional: true})?.size?.() || 'l')\r\n public emptyContent= input<PolymorpheusContent<any>>()\r\n\r\n public onKeyDownArrow(current: HTMLElement, step: number): void {\r\n const elements: readonly HTMLElement[] = Array.from(this.el.querySelectorAll('a,button,input'));\r\n\r\n insMoveFocus(elements.indexOf(current), elements, step);\r\n }\r\n\r\n public handleFocusLossIfNecessary(element: Element = this.el) {\r\n if (isNativeFocusedIn(element)) {\r\n this.origin?.focus({ preventScroll: true });\r\n }\r\n }\r\n\r\n public getOptions(includeDisabled = false): readonly T[] {\r\n return this.options()\r\n .filter(({ disabled }) => includeDisabled || !disabled)\r\n .map(({ value }) => value)\r\n .filter(isPresent);\r\n }\r\n\r\n protected onFocusIn(relatedTarget: HTMLElement, currentTarget: HTMLElement): void {\r\n if (!currentTarget.contains(relatedTarget) && !this.origin) {\r\n this.origin = relatedTarget;\r\n }\r\n }\r\n}","<ng-content />\r\n@if(empty()){\r\n<div class=\"t-empty\">\r\n <ng-container *polymorpheusOutlet=\"emptyContent() || fallback() as text\">\r\n {{ text }}\r\n </ng-container>\r\n</div>\r\n}","import {Directive, Input} from '@angular/core';\r\n\r\n@Directive({\r\n \r\n selector: 'ins-opt-group',\r\n host: {\r\n role: 'group',\r\n '[attr.data-label]': 'label',\r\n },\r\n})\r\nexport class InsOptGroup {\r\n @Input()\r\n public label?: string | null;\r\n}\r\n","import {InsDataListComponent} from './data-list.component';\r\nimport {InsOptGroup} from './opt-group.directive';\r\nimport {InsOption} from './option.component';\r\n\r\nexport const InsDataList = [\r\n InsDataListComponent,\r\n InsOption,\r\n InsOptGroup,\r\n] as const;\r\n","\r\nimport { inject, Injectable, InjectionToken, DOCUMENT } from \"@angular/core\";\r\nimport { filter, fromEvent, map, merge, Observable, switchMap, take } from \"rxjs\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { getActualTarget } from \"../../service/dom/get-actual-target\";\r\nimport { isElement } from \"../../service/dom/element-checks\";\r\nimport { containsOrAfter } from \"../../service/dom/contains-or-after\";\r\nimport { getViewportWidth } from \"../../service/dom/get-viewport\";\r\nimport { WINDOW } from \"../../webapi\";\r\nimport { ActivationStart, Router } from \"@angular/router\";\r\n\r\nconst SCROLLBAR_PLACEHOLDER = 17;\r\n\r\nexport const INS_DIALOGS_CLOSE = new InjectionToken<Observable<unknown>>(\r\n '',\r\n {\r\n factory: () =>\r\n inject(Router).events.pipe(filter((e) => e instanceof ActivationStart)),\r\n },\r\n);\r\n\r\n@Injectable()\r\nexport class InsDialogCloseService extends Observable<unknown>{\r\n \r\n private readonly doc = inject(DOCUMENT)\r\n private readonly win = inject(WINDOW)\r\n private readonly el = injectElement();\r\n\r\n\r\n private readonly esc$ = fromEvent(this.doc, 'keydown').pipe(\r\n filter((event:any)=>{\r\n const target = getActualTarget(event)\r\n return (\r\n event.key === 'Escape' &&\r\n !event.defaultPrevented &&\r\n (this.el.contains(target) || this.isOutside(target)) // 点击的元素是否在 el 元素内或者点击的元素是否再el前面,多弹框时。关闭target后方的dialog\r\n )\r\n })\r\n )\r\n\r\n private readonly mousedown$ = fromEvent(this.doc, 'mousedown').pipe(\r\n filter((event:any)=>\r\n getViewportWidth(this.win) - event.clientX > SCROLLBAR_PLACEHOLDER &&\r\n this.isOutside(getActualTarget(event)),\r\n ),\r\n switchMap(()=>\r\n fromEvent(this.doc, 'mouseup').pipe(\r\n take(1),\r\n map(getActualTarget),\r\n filter((target) => this.isOutside(target)),\r\n )\r\n )\r\n )\r\n constructor(){\r\n super((subscriber) => merge(this.esc$, this.mousedown$).subscribe(subscriber))\r\n }\r\n\r\n\r\n private isOutside(target: EventTarget): boolean {\r\n return (\r\n isElement(target) &&\r\n !containsOrAfter(this.el, target) \r\n );\r\n}\r\n}","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from \"@angular/core\";\r\nimport { exhaustMap, filter, isObservable, map, merge, Observable, of, Subject, switchMap, take } from \"rxjs\";\r\nimport { POLYMORPHEUS_CONTEXT } from \"../../service/Polymorpheus/context\";\r\nimport { INS_DIALOGS_CLOSE, InsDialogCloseService } from \"./dialog-close.service\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { InsButton } from \"../button/button.directive\";\r\nimport { INS_COMMON_ICONS } from \"../../token/common-icons\";\r\nimport { InsDialogOptions } from \"./dialog.option\";\r\nimport { PolymorpheusOutlet } from \"../../service/Polymorpheus/PolymorpheusOutlet\";\r\nimport { InsPortalContext } from \"../../service/portals/portal\";\r\nimport { InsAnimated } from \"../../service/animated\";\r\nimport { INS_CLOSE_WORD } from \"../../token\";\r\nimport { InsTitle } from \"../title\";\r\n\r\nconst REQUIRED_ERROR = new Error('Required dialog was dismissed');\r\n\r\nfunction toObservable<T>(valueOrStream: Observable<T> | T): Observable<T> {\r\n return isObservable(valueOrStream) ? valueOrStream : of(valueOrStream);\r\n}\r\n\r\n@Component({\r\n \r\n selector: 'ins-dialog',\r\n templateUrl: './dialog.template.html',\r\n styleUrl: './dialog.style.less',\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InsDialogCloseService],\r\n hostDirectives: [InsAnimated],\r\n imports: [\r\n InsButton,\r\n PolymorpheusOutlet,\r\n InsTitle,\r\n],\r\n host:{\r\n '[attr.data-appearance]': 'context.appearance',\r\n '[attr.data-size]': 'context.size',\r\n '[class._closable]': 'context.closable',\r\n }\r\n})\r\nexport class InsDialogComponent<O, I> {\r\n \r\n protected readonly close$ = new Subject<void>()\r\n protected readonly context = inject<InsPortalContext<InsDialogOptions<I>, O>>(POLYMORPHEUS_CONTEXT)\r\n protected readonly icons = inject(INS_COMMON_ICONS)\r\n protected readonly close = toSignal(inject(INS_CLOSE_WORD))\r\n\r\n\r\n protected readonly sub = merge(\r\n this.close$.pipe(switchMap(() => toObservable(this.context.closable))),\r\n inject(InsDialogCloseService).pipe(\r\n exhaustMap(() => toObservable(this.context.dismissible).pipe(take(1))),\r\n ),\r\n inject(INS_DIALOGS_CLOSE).pipe(map((v) => v===true)),\r\n ).pipe(filter(Boolean), takeUntilDestroyed())\r\n .subscribe(() => {\r\n if (this.context.required) {\r\n this.context.$implicit.error(REQUIRED_ERROR);\r\n } else {\r\n this.context.$implicit.complete();\r\n }\r\n })\r\n\r\n}","@if (context.closable) {\r\n <button\r\n size=\"s\"\r\n insIconButton\r\n type=\"button\"\r\n class=\"t-close\"\r\n [appearance]=\"context.appearance.includes('fullscreen') ? 'action' : 'neutral'\"\r\n [iconStart]=\"icons.close\"\r\n [style.border-radius.%]=\"100\"\r\n (click)=\"close$.next()\"\r\n (mousedown.prevent.zoneless)=\"(0)\"\r\n >\r\n {{ close() }}\r\n </button>\r\n}\r\n@if (context.label) {\r\n <header>\r\n <h2\r\n insTitle\r\n [id]=\"context.id\"\r\n [innerHTML]=\"context.label\"\r\n ></h2>\r\n </header>\r\n}\r\n<ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\r\n <!-- <header>\r\n <h2\r\n insTitle\r\n [id]=\"context.id\"\r\n [innerHTML]=\"context.label\"\r\n ></h2>\r\n </header> -->\r\n <p [innerHTML]=\"text\"></p>\r\n @if (context.closable || context.dismissible) {\r\n <footer>\r\n <button\r\n size=\"m\"\r\n insAutoFocus\r\n insButton\r\n type=\"button\"\r\n (click)=\"context.$implicit.complete()\"\r\n >\r\n {{ context.data?.button || 'OK' }}\r\n </button>\r\n </footer>\r\n }\r\n</ng-container>\r\n","import { Observable } from \"rxjs\";\r\nimport { createToken } from \"../../service/create-token\";\r\nimport { InsAppearanceOptions } from \"../appearance/appearance.options\";\r\nimport { InsPortalContext } from \"../../service/portals/portal\";\r\n\r\nexport interface InsDialogOptions<I> extends InsAppearanceOptions{\r\n readonly closable: Observable<boolean> | boolean;\r\n readonly data: I extends void ? undefined : I & {button?: string};\r\n readonly dismissible: Observable<boolean> | boolean;\r\n // readonly header: PolymorpheusContent<InsPortal<InsDialogOptions<I>, any>>|'';\r\n readonly label: string;\r\n readonly required: boolean;\r\n readonly size: 's'|'m'|'l'\r\n}\r\n\r\nexport type InsDialogContext<O = void, I = undefined> = InsPortalContext<InsDialogOptions<I>, O>\r\n\r\nexport const INS_DIALOG_DEFAULT_OPTIONS: InsDialogOptions<void> = {\r\n appearance: 'dialog-default',\r\n size: 'm',\r\n required: false,\r\n closable: true,\r\n dismissible: true,\r\n label: '',\r\n // header: '',\r\n data: undefined,\r\n};\r\nexport const INS_DIALOG_OPTIONS = createToken(INS_DIALOG_DEFAULT_OPTIONS);","\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n type OnDestroy,\r\n type OnInit,\r\n signal,\r\n ViewEncapsulation,\r\n DOCUMENT\r\n} from '@angular/core';\r\nimport { getNativeFocused, InsActiveZone, InsFocusTrap, POLYMORPHEUS_CONTEXT, PolymorpheusContent, PolymorpheusOutlet } from '../../service';\r\nimport { InsPortalContext } from '../../service/portals/portal';\r\n\r\n@Component({\r\n selector: 'ins-modal',\r\n imports: [PolymorpheusOutlet],\r\n template: `\r\n <ng-container *polymorpheusOutlet=\"component(); context: context\" />\r\n `,\r\n styleUrl: './modal.style.less',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [InsActiveZone, InsFocusTrap],\r\n host: {\r\n role: 'dialog',\r\n class: 'ins-enter',\r\n 'aria-modal': 'true',\r\n '[attr.aria-labelledby]': 'context.id',\r\n '(animationend.self)': '$event.target.classList.remove(\"ins-enter\")',\r\n },\r\n})\r\nexport class InsModalComponent<T> implements OnDestroy, OnInit {\r\n private readonly current = inject(InsActiveZone);\r\n private readonly parent = findActive(\r\n inject(InsActiveZone, {skipSelf: true, optional: true}),\r\n getNativeFocused(inject(DOCUMENT)),\r\n );\r\n\r\n public readonly context = inject<InsPortalContext<T>>(POLYMORPHEUS_CONTEXT);\r\n public readonly component = signal<PolymorpheusContent<InsPortalContext<T>>>(null);\r\n\r\n public ngOnInit(): void {\r\n this.current.insActiveZoneParentSetter = this.parent;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.current.insActiveZoneParentSetter = null;\r\n }\r\n}\r\n\r\nfunction findActive(zone: InsActiveZone | null, el: Element | null): InsActiveZone | null {\r\n if (!zone || !el || !zone.contains(el)) {\r\n return null;\r\n }\r\n\r\n const active = zone.subActiveZones.find(\r\n (child) => !child['el'].matches('[insActiveZoneAdapter]') && child.contains(el),\r\n );\r\n\r\n return active ? findActive(active, el) : zone;\r\n}\r\n","import {inject, Injectable, type Type} from '@angular/core';\r\nimport { InsPortal } from '../../service/portals/portal';\r\nimport { InsModalComponent } from './modal.component';\r\nimport { InsPopupService } from '../popup';\r\nimport { PolymorpheusComponent } from '../../service';\r\nimport { INS_LEAVE } from '../../service/animated';\r\n\r\n@Injectable()\r\nexport abstract class InsModalService<T, K = void> extends InsPortal<T, K> {\r\n protected abstract readonly content: Type<unknown>;\r\n protected readonly component = InsModalComponent;\r\n\r\n constructor() {\r\n super(inject(InsPopupService));\r\n }\r\n\r\n protected override add(\r\n component: PolymorpheusComponent<InsModalComponent<T>>,\r\n ): () => void {\r\n const ref = this.service.add(component);\r\n const el: HTMLElement = ref.location.nativeElement;\r\n\r\n ref.instance.component.set(new PolymorpheusComponent(this.content));\r\n\r\n return () => {\r\n ref.instance.component.set(null);\r\n ref.changeDetectorRef.detectChanges();\r\n el.classList.add(INS_LEAVE);\r\n\r\n Promise.allSettled(getAnimations(el))\r\n .then(async () => Promise.allSettled(getAnimations(el.firstElementChild)))\r\n .then(() => ref.destroy());\r\n };\r\n }\r\n}\r\n\r\nfunction getAnimations(el: Element | null): readonly Promise<unknown>[] {\r\n return el?.getAnimations().map(async ({finished}) => finished) || [];\r\n}\r\n","import {inject, Injectable} from '@angular/core';\r\nimport { InsDialogComponent } from './dialog.component';\r\nimport { INS_DIALOG_OPTIONS, InsDialogOptions } from './dialog.option';\r\nimport { InsModalService } from '../modal';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InsDialogService extends InsModalService<InsDialogOptions<any>> {\r\n protected readonly options = inject(INS_DIALOG_OPTIONS);\r\n protected readonly content = InsDialogComponent\r\n}\r\n","import {Directive, input} from '@angular/core';\r\nimport { InsDialogService } from './dialog.service';\r\nimport { InsDialogOptions } from './dialog.option';\r\nimport { insAsPortal } from '../../service/portals/portal';\r\nimport { InsPortalDirective } from '../../service/portals/directive';\r\n\r\n\r\n\r\n@Directive({\r\n \r\n selector: 'ng-template[insDialog]',\r\n providers: [insAsPortal(InsDialogService)],\r\n hostDirectives: [\r\n {\r\n directive: InsPortalDirective,\r\n inputs: ['options: insDialogOptions', 'open: insDialog'],\r\n outputs: ['openChange: insDialogChange'],\r\n },\r\n ],\r\n})\r\nexport class InsDialog<T>{\r\n \r\n public readonly insDialogOptions = input<Partial<InsDialogOptions<T>>>({});\r\n}\r\n","import { PolymorpheusContent } from \"../../service/Polymorpheus/content\";\r\n\r\nexport class InsValidationError<T extends Record<string, any> = Record<string, unknown>> {\r\n constructor(\r\n public readonly message: PolymorpheusContent<T>,\r\n public readonly context: T = {} as T,\r\n ) {}\r\n}\r\n","import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\r\nimport { InsValidationError } from './validation-error';\r\nimport { PolymorpheusOutlet } from '../../service/Polymorpheus/PolymorpheusOutlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { INS_DEFAULT_ERROR_MESSAGE } from '../../token/i18n';\r\nimport { InsAnimated } from '../../service/animated';\r\n\r\n@Component({\r\n \r\n selector: 'ins-error',\r\n imports: [PolymorpheusOutlet, InsAnimated],\r\n templateUrl: './error.template.html',\r\n styleUrls: ['./error.style.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class._error]': 'error()'\r\n },\r\n})\r\nexport class InsError {\r\n protected readonly default = toSignal(inject(INS_DEFAULT_ERROR_MESSAGE));\r\n public readonly error = input.required({\r\n transform(value: string | InsValidationError | null): InsValidationError | null {\r\n return typeof value === \"string\" ? new InsValidationError(value) : value;\r\n }\r\n });\r\n}\r\n","@if (error()) {\r\n<div\r\n class=\"t-message-text\"\r\n insAnimated\r\n>\r\n <ng-container *polymorpheusOutlet=\"error()?.message || default() as text; context: error()?.context || {}\">\r\n {{ text }}\r\n </ng-container>\r\n</div>\r\n}\r\n","import { inject, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { INS_VALIDATION_ERRORS } from \"../../token\";\r\n\r\n@Pipe({\r\n name: 'fieldError',\r\n \r\n})\r\nexport class FieldErrorPipe implements PipeTransform {\r\n\r\n errorInfo = inject(INS_VALIDATION_ERRORS)\r\n\r\n transform(value: any) {\r\n if(value){\r\n return Object.keys(value).filter(key=>key in value).map(key=>{\r\n if(this.errorInfo[key] instanceof Function){\r\n return this.errorInfo[key](value[key])\r\n }else {\r\n return this.errorInfo[key]\r\n }\r\n }).toString()\r\n }else{\r\n return null\r\n }\r\n }\r\n}","import { Provider, Signal, signal } from \"@angular/core\";\r\nimport { createToken, provideOptions } from \"../../service\";\r\n\r\nexport interface InsFormOptions {\r\n size: 's'|'m'|'l';\r\n cleaner: boolean;\r\n orientation: 'horizontal'| 'vertical'| '';\r\n}\r\nexport const INS_FORM_DEFAULT_OPTIONS: InsFormOptions = {\r\n size: 'm',\r\n orientation: 'vertical',\r\n cleaner: true,\r\n}\r\n\r\nexport const INS_FORM_OPTIONS = createToken<InsFormOptions>(INS_FORM_DEFAULT_OPTIONS);\r\n\r\nexport function insFormOptionsProvider(options: Partial<InsFormOptions>): Provider {\r\n return provideOptions(INS_FORM_OPTIONS, options, INS_FORM_DEFAULT_OPTIONS);\r\n}","import type {Provider} from '@angular/core';\r\nimport { InsStringHandler } from '../../model/handler';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsRadioOptions {\r\n readonly appearance: InsStringHandler<HTMLInputElement> | string;\r\n readonly size: 's' | 'm' | 'l';\r\n}\r\n\r\nexport const INS_RADIO_DEFAULT_OPTIONS: InsRadioOptions = {\r\n size: 'm',\r\n appearance: ({checked}) => (checked ? 'primary' : 'outline-grayscale'),\r\n};\r\n\r\nexport const INS_RADIO_OPTIONS = createToken(INS_RADIO_DEFAULT_OPTIONS);\r\n\r\nexport function insRadioOptionsProvider(options: Partial<InsRadioOptions>): Provider {\r\n return provideOptions(INS_RADIO_OPTIONS, options, INS_RADIO_DEFAULT_OPTIONS);\r\n}\r\n","import type {DoCheck, OnInit} from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n inject,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {NgControl} from '@angular/forms';\r\n\r\nimport {INS_RADIO_OPTIONS} from './radio.options';\r\nimport { tap } from 'rxjs';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { InsAppearance } from '../appearance/appearance.directive';\r\nimport { InsNativeValidator } from '../../service/native-validator/native-validator.directive';\r\nimport { injectElement } from '../../service/dom/inject-element';\r\n\r\n@Component({\r\n \r\n selector: 'input[type=\"radio\"][insRadio]',\r\n template: '',\r\n styles: ['@import \"../../styles/components/radio.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [\r\n {\r\n directive: InsAppearance,\r\n inputs: ['insAppearanceState', 'insAppearanceFocus', 'insAppearanceMode'],\r\n },\r\n\r\n InsNativeValidator,\r\n ],\r\n host: {\r\n '[disabled]': '!control || control.disabled',\r\n '[attr.data-size]': 'size',\r\n '[class._readonly]': '!control',\r\n },\r\n})\r\nexport class InsRadioComponent implements DoCheck , OnInit {\r\n private readonly appearance = inject(InsAppearance);\r\n private readonly options = inject(INS_RADIO_OPTIONS);\r\n private readonly el = injectElement<HTMLInputElement>();\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n protected readonly control = inject(NgControl, {self: true, optional: true});\r\n\r\n @Input()\r\n public size: 's'|'m'|'l' = this.options.size;\r\n\r\n public ngOnInit(): void {\r\n this.control?.valueChanges\r\n ?.pipe(tap(() => this.cdr.markForCheck()), takeUntilDestroyed(this.destroyRef))\r\n .subscribe();\r\n }\r\n\r\n public ngDoCheck(): void {\r\n this.appearance.insAppearance.set(typeof this.options.appearance === 'string'\r\n ? this.options.appearance\r\n : this.options.appearance(this.el))\r\n }\r\n}\r\n","import {Directive, inject, Input} from '@angular/core';\r\nimport {RadioControlValueAccessor} from '@angular/forms';\r\nimport { InsIdentityMatcher } from '../../model/matcher';\r\n\r\n@Directive({\r\n \r\n selector: 'input[type=\"radio\"][insRadio][identityMatcher]',\r\n})\r\nexport class InsRadioDirective<T> {\r\n @Input()\r\n public identityMatcher: InsIdentityMatcher<T> = (item1, item2)=> item1 === item2 || (Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length);\r\n\r\n constructor() {\r\n const accessor = inject(RadioControlValueAccessor);\r\n const writeValue = accessor.writeValue.bind(accessor);\r\n\r\n accessor.writeValue = (value: T) => {\r\n if (this.identityMatcher(value, accessor.value)) {\r\n writeValue(accessor.value);\r\n } else {\r\n writeValue(value);\r\n }\r\n };\r\n }\r\n}\r\n","import {InsRadioComponent} from './radio.component';\r\nimport {InsRadioDirective} from './radio.directive';\r\n\r\nexport const InsRadio = [InsRadioComponent, InsRadioDirective] as const;","import { Optional, Provider, Signal, signal, SkipSelf } from \"@angular/core\";\r\nimport { createToken } from \"../../service/create-token\";\r\nimport { InjectionToken } from \"@angular/core\";\r\n\r\n\r\nexport interface InsTextfieldOptions {\r\n readonly appearance: string;\r\n readonly size: 'xs'|'s'|'m'|'l';\r\n readonly cleaner: boolean;\r\n}\r\n\r\nexport const INS_TEXTFIELD_DEFAULT_OPTIONS: InsTextfieldOptions = {\r\n appearance: 'textfield',\r\n size: 'm',\r\n cleaner: true,\r\n};\r\nexport const INS_TEXTFIELD_OPTIONS = createToken(INS_TEXTFIELD_DEFAULT_OPTIONS)\r\n\r\nexport function insTextfieldOptionsProvider(\r\n options: Partial<InsTextfieldOptions>,\r\n): Provider {\r\n return {\r\n provide: INS_TEXTFIELD_OPTIONS,\r\n deps: [[new Optional(), new SkipSelf(), INS_TEXTFIELD_OPTIONS]],\r\n useFactory: (parent: InsTextfieldOptions | null) => ({\r\n appearance: parent?.appearance ?? INS_TEXTFIELD_DEFAULT_OPTIONS.appearance,\r\n size: parent?.size ?? INS_TEXTFIELD_DEFAULT_OPTIONS.size,\r\n cleaner: parent?.cleaner ?? INS_TEXTFIELD_DEFAULT_OPTIONS.cleaner,\r\n ...options,\r\n }),\r\n};\r\n}\r\n\r\n// @Directive({\r\n// \r\n// selector: '[insTextfieldAppearance],[insTextfieldSize],[insTextfieldCleaner]',\r\n// providers: [insProvide(INS_TEXTFIELD_OPTIONS, InsTextfieldOptionsDirective)],\r\n// })\r\n// export class InsTextfieldOptionsDirective implements InsTextfieldOptions {\r\n// private readonly options = inject(INS_TEXTFIELD_OPTIONS, { skipSelf: true });\r\n\r\n// public appearance = input(this.options.appearance(), {alias: 'insTextfieldAppearance'})\r\n// public size = input(this.options.size(), {alias: 'insTextfieldSize'})\r\n// public cleaner = input(this.options.cleaner(), {alias: 'insTextfieldCleaner'})\r\n// }\r\n\r\n\r\n\r\n\r\n\r\nexport interface InsTextFieldAccessor<T> {\r\n setValue(value: T|T[]|null): void;\r\n getValue(): T|T[]|null;\r\n clearValue(): void;\r\n setFocused(event: MouseEvent|any): void;\r\n id: string;\r\n}\r\n\r\nexport const INS_TEXTFIELD_ACCESSOR = new InjectionToken<InsTextFieldAccessor<unknown>>(\r\n '[INS_TEXTFIELD_ACCESSOR]',\r\n);","import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from \"@angular/core\";\r\nimport { INS_ASSETS_PATH, INS_ICON_END, INS_ICON_START } from \"./icon.options\";\r\nimport { INS_ICON_STARTS } from \"./icons\";\r\nimport { insWithStyles } from \"../../service/with-styles\";\r\n\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/icon.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-icon',\r\n },\r\n})\r\nclass InsIconStyles { }\r\n\r\n\r\n@Component({\r\n \r\n selector: 'ins-icon',\r\n template: '',\r\n styles: ['@import \"../../styles/components/icon.less\";'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[style.--t-icon]': 'icon()'\r\n },\r\n})\r\nexport class InsIcon {\r\n \r\n protected readonly path = inject(INS_ASSETS_PATH);\r\n protected readonly icons = inject(INS_ICON_STARTS);\r\n protected nothing = insWithStyles(InsIconStyles)\r\n resolver(icon: string){\r\n return icon.includes('/')? icon : this.icons[icon] || `${this.path}/${icon}.svg`\r\n }\r\n\r\n public readonly icon = input(\r\n this.resolve(\r\n inject(INS_ICON_START, { self: true, optional: true }) ||\r\n inject(INS_ICON_END, { self: true, optional: true }),\r\n ),\r\n {\r\n transform: (value: string) => this.resolve(value),\r\n }\r\n )\r\n\r\n public resolve(value?: string | null): string | null {\r\n return value ? `url(${this.resolver(value)})` : null;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, computed, contentChild, forwardRef, inject, input, InputSignal, signal, ViewEncapsulation } from \"@angular/core\";\r\n\r\nimport { InsDropdownOpen } from \"../dropdowns\";\r\nimport { insButtonOptionsProvider } from \"../button/button.options\";\r\nimport { insFocusedIn } from \"../../service/focus/focused-in\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { INS_TEXTFIELD_OPTIONS, INS_TEXTFIELD_ACCESSOR, InsTextFieldAccessor } from \"./textfield.options\";\r\nimport { INS_COMMON_ICONS } from \"../../token/common-icons\";\r\nimport { INS_CLEAR_WORD } from \"../../token/i18n\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { InsButton } from \"../button/button.directive\";\r\nimport { InsDataListHost } from \"../data-list\";\r\nimport { InsResize } from \"../../service/insResize\";\r\nimport { InsWithIcons } from \"../icon\";\r\n\r\n\r\n@Component({\r\n \r\n selector: 'ins-textfield',\r\n templateUrl: './textfield.template.html',\r\n styles: ['@import \"./textfield.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n insButtonOptionsProvider({size: 's', appearance: 'action-grayscale'})\r\n ],\r\n imports: [\r\n InsButton,\r\n InsResize\r\n ],\r\n hostDirectives: [\r\n InsWithIcons\r\n ],\r\n host: {\r\n '[attr.data-size]': 'size()',\r\n '[class._empty]': 'controller()?.getValue()==\"\"',\r\n '[style.--t-side]':'side()',\r\n // '(pointerdown.self)': 'onIconClick($event)',\r\n '(pointerdown.self)': '0',\r\n '(click.self)': '0',\r\n }\r\n})\r\nexport class InsTextfieldComponent<T> implements InsDataListHost<T>{\r\n\r\n protected readonly controller = contentChild<InsTextFieldAccessor<T>>(INS_TEXTFIELD_ACCESSOR)\r\n\r\n\r\n public readonly focused = insFocusedIn(injectElement())\r\n // private openD = inject(forwardRef(() =>InsDropdownOpen),{optional: true})\r\n // public readonly focused = computed(() => this.openD?.insDropdownOpen() || this.focusedIn())\r\n\r\n\r\n public readonly options = inject(INS_TEXTFIELD_OPTIONS)\r\n public readonly icons = inject(INS_COMMON_ICONS)\r\n public readonly clear = toSignal(inject(INS_CLEAR_WORD));\r\n\r\n\r\n public cleaner = signal(this.options.cleaner)\r\n public size = input<'xs'|'s' | 'm' | 'l'>(this.options.size)\r\n\r\n // public readonly empty = computed(() => {\r\n // const v = this.controller()?.getValue();\r\n // return Array.isArray(v) ? v.length === 0 : v === '';\r\n // })\r\n\r\n\r\n\r\n public handleOption(option: T): void {\r\n this.controller()?.setValue(option)\r\n }\r\n // protected onMouseDown(event: MouseEvent): void {\r\n // this.controller()?.setFocused(event)\r\n // }\r\n // protected detectRetargetFromLabel(event: Event): void {\r\n // event.stopImmediatePropagation();\r\n // }\r\n side = signal<string>('')\r\n onResize({contentRect}: any|ResizeObserverEntry){\r\n this.side.set(contentRect.width + 'px')\r\n }\r\n\r\n // onIconClick(event: MouseEvent){\r\n // this.controller()?.setFocused(event)\r\n // if(this.openD?.insDropdownEnabled){\r\n // this.openD?.insDropdownOpen.update((open:boolean) => !open);\r\n // }\r\n // }\r\n}\r\n","<ng-content select=\"select,input,textarea,ins-input-tag\" />\r\n\r\n<div class=\"t-content\" (insResize)=\"onResize($event)\">\r\n <ng-content /> \r\n @if (cleaner()) {\r\n <button\r\n appearance=\"icon\"\r\n size=\"s\"\r\n tabindex=\"-1\"\r\n insIconButton\r\n type=\"button\"\r\n class=\"t-clear\"\r\n [iconStart]=\"icons.close\"\r\n (click)=\"controller()?.clearValue();controller()?.setFocused($event)\"\r\n [title]=\"clear()\"\r\n >\r\n {{clear()}}\r\n </button>\r\n }\r\n <ng-content select=\"ins-icon\" />\r\n \r\n</div>\r\n","import {contentChild, Directive, effect, inject, TemplateRef} from '@angular/core';\r\nimport { InsDropdownDirective, InsDropdownOpen, insDropdownOptionsProvider, InsWithDropdownOpen } from '../dropdowns';\r\nimport { insAsDataListHost } from '../data-list';\r\nimport { InsTextfieldComponent } from './textfield.component';\r\n\r\n\r\n@Directive({\r\n \r\n selector: 'ng-template[insTextfieldDropdown]',\r\n})\r\nexport class InsTextfieldDropdownDirective {}\r\n\r\n@Directive({\r\n \r\n selector: '[insWithTextfieldDropdown]',\r\n hostDirectives: [\r\n InsWithDropdownOpen,\r\n InsDropdownDirective\r\n ],\r\n providers: [\r\n insAsDataListHost(InsTextfieldComponent),\r\n insDropdownOptionsProvider({ limitWidth: 'fixed' }),\r\n ],\r\n host:{\r\n }\r\n})\r\nexport class InsWithTextfieldDropdown{\r\n private readonly dropdown = inject(InsDropdownDirective, {optional: true})\r\n\r\n private readonly textfield = inject(InsTextfieldComponent, {optional: true})\r\n protected temp = contentChild(InsTextfieldDropdownDirective, {read: TemplateRef,descendants: true})\r\n constructor() {\r\n effect(()=>{\r\n if(this.dropdown){\r\n this.dropdown.insDropdown = this.temp()\r\n }\r\n })\r\n }\r\n\r\n // sub = effect(()=>{\r\n // if(this.textfield?.focused()){\r\n // this.dropdown?.toggle(true)\r\n // }\r\n // })\r\n}\r\n","import { Provider } from \"@angular/core\";\r\nimport { createToken, provideOptions } from \"../../service\";\r\n\r\nexport interface InsLabelOptions {\r\n orientation: 'horizontal'| 'vertical'| '';\r\n}\r\nexport const INS_LABEL_DEFAULT_OPTIONS: InsLabelOptions = {\r\n orientation: 'horizontal',\r\n}\r\n\r\nexport const INS_LABEL_OPTIONS = createToken<InsLabelOptions>(INS_LABEL_DEFAULT_OPTIONS);\r\n\r\nexport function insLabelOptionsProvider(options: Partial<InsLabelOptions>): Provider {\r\n return provideOptions(INS_LABEL_OPTIONS, options, INS_LABEL_DEFAULT_OPTIONS);\r\n}","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChild,\r\n Directive,\r\n forwardRef,\r\n inject,\r\n input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { insWithStyles } from '../../service/with-styles';\r\nimport { INS_TEXTFIELD_ACCESSOR } from '../textfield/textfield.options';\r\nimport { injectElement } from '../../service/dom/inject-element';\r\nimport { INS_LABEL_OPTIONS } from './label.options';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/label.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-label',\r\n },\r\n})\r\nclass InsLabelStyles {}\r\n\r\n// TODO: Replace INS_DATA_LIST_HOST with proper token once we refactor textfields\r\n@Directive({\r\n \r\n selector: 'label[insLabel]',\r\n host: {\r\n // '[attr.for]': 'el.htmlFor||parent()?.id',\r\n '[attr.data-orientation]': 'orientation()'\r\n },\r\n})\r\nexport class InsLabel {\r\n private readonly options = inject(INS_LABEL_OPTIONS)\r\n\r\n orientation = input(this.options.orientation)\r\n\r\n // protected readonly el = injectElement<HTMLLabelElement>();\r\n\r\n protected readonly nothing = insWithStyles(InsLabelStyles);\r\n\r\n // parent = contentChild(forwardRef(()=>INS_TEXTFIELD_ACCESSOR))\r\n // parent = inject(forwardRef(()=>INS_TEXTFIELD_ACCESSOR), { optional: true, host: true })\r\n}\r\n","import { computed, Directive, effect, inject, input } from \"@angular/core\";\r\nimport { InsTextfieldComponent } from \"./textfield.component\";\r\nimport { InsAppearance } from \"../appearance/appearance.directive\";\r\nimport { InsWithAppearance } from \"../appearance/with-appearance\";\r\nimport { InsNativeValidator } from \"../../service/native-validator/native-validator.directive\";\r\nimport { INS_TEXTFIELD_OPTIONS } from \"./textfield.options\";\r\n\r\n@Directive({\r\n providers: [\r\n ],\r\n hostDirectives: [\r\n InsWithAppearance,\r\n InsNativeValidator\r\n ],\r\n host:{\r\n '[attr.readonly]': 'readOnly()',\r\n '[attr.disabled]': 'disabled()',\r\n }\r\n})\r\nexport class InsTextfieldDirective {\r\n\r\n private readonly textfield = inject(InsTextfieldComponent);\r\n private readonly appearance = inject(InsAppearance);\r\n public readonly options = inject(INS_TEXTFIELD_OPTIONS)\r\n\r\n \r\n public invalid = input<boolean | null>(null)\r\n public focused = input<boolean | null>(null)\r\n public readOnly = input<boolean>(false)\r\n public disabled = input<boolean>(false)\r\n\r\n public mode = computed(() => {\r\n if (this.readOnly()) {\r\n return 'readonly'\r\n }\r\n if (this.invalid() === false) {\r\n return 'valid';\r\n }\r\n\r\n if (this.invalid()) {\r\n return 'invalid';\r\n }\r\n return null\r\n })\r\n constructor() {\r\n this.appearance.insAppearance.set(this.options.appearance);\r\n effect(() => {\r\n this.appearance.insAppearanceFocus.set(this.focused() ?? this.textfield.focused())\r\n })\r\n effect(() => {\r\n this.appearance.insAppearanceMode.set(this.mode())\r\n })\r\n effect(()=>{\r\n this.textfield.cleaner.set(this.options.cleaner&&!this.readOnly()&&!this.disabled())\r\n })\r\n }\r\n\r\n}\r\n","import { Directive, Input } from \"@angular/core\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { insProvide } from \"../../service/provide\";\r\nimport { INS_TEXTFIELD_ACCESSOR, InsTextFieldAccessor } from \"./textfield.options\";\r\nimport { getActualTarget } from \"../../service/dom/get-actual-target\";\r\nimport { InsTextfieldDirective } from \"./textfield.directive\";\r\nimport { insInjectId } from \"../../service/id.service\";\r\n\r\n@Directive({\r\n \r\n selector: '[insTextFieldController]',\r\n providers: [\r\n insProvide(INS_TEXTFIELD_ACCESSOR, InsTextFieldController),\r\n ],\r\n hostDirectives:[\r\n {\r\n directive: InsTextfieldDirective,\r\n inputs: [\r\n 'invalid',\r\n 'focused',\r\n 'readOnly',\r\n 'disabled',\r\n ]\r\n },\r\n ],\r\n host: {\r\n '[attr.id]': 'id',\r\n }\r\n})\r\nexport class InsTextFieldController<T> implements InsTextFieldAccessor<T> {\r\n\r\n public readonly el = injectElement<HTMLInputElement>();\r\n protected readonly autoId = insInjectId()\r\n @Input()\r\n public stringify = String\r\n\r\n public id = this.el.id || this.autoId\r\n\r\n public setValue(value: T | null): void {\r\n this.el.value = value == null ? '' : this.stringify(value);\r\n this.el.dispatchEvent(new Event('input', { bubbles: true }));\r\n }\r\n public getValue(): any {\r\n return this.el.value\r\n }\r\n public clearValue(): void {\r\n this.el.value = '';\r\n this.el.dispatchEvent(new Event('input', { bubbles: true }));\r\n }\r\n public setFocused(event: MouseEvent): void {\r\n const actualTarget = getActualTarget(event);\r\n if (this.el.contains(actualTarget)) {\r\n return;\r\n }\r\n event.preventDefault();\r\n this.el.focus();\r\n }\r\n}\r\n","import { Directive, Input, } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\n\r\n@Directive({\r\n \r\n selector: '[insTextFieldData]'\r\n})\r\nexport class InsTextFieldDataDirective<T> extends Observable<T[]>{\r\n private _data$ = new Subject<T[]>()\r\n public data$ = this._data$.asObservable()\r\n @Input({alias:'insTextFieldData'}) set _data(val:T[]|null){\r\n if(val){\r\n this._data$.next(val)\r\n }\r\n }\r\n \r\n @Input()\r\n getValue:null|Function = null\r\n @Input()\r\n identityMatcher: Function = (a: any, b: any) => a === b\r\n @Input()\r\n stringify:Function = toString\r\n\r\n\r\n constructor(){\r\n super((subscriber)=> this.data$.subscribe(subscriber))\r\n }\r\n}\r\n","import { Directive, Input } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\n\r\n@Directive({\r\n \r\n selector: '[insTextFieldSingleData]'\r\n})\r\nexport class InsTextFieldSingleDataDirective<T> extends Observable<T[]>{\r\n\r\n private _data$ = new BehaviorSubject<T[]>([])\r\n public data$ = this._data$.asObservable()\r\n @Input({alias:'insTextFieldSingleData'}) set _data(val:T[]|null){\r\n if(val){\r\n this._data$.next(val)\r\n }\r\n }\r\n\r\n \r\n @Input()\r\n getValue:null|Function = null\r\n @Input()\r\n identityMatcher: Function = (a: any, b: any) => a === b\r\n public value$!:Observable<T|null>\r\n\r\n constructor(){\r\n super((subscriber)=> this.data$.subscribe(subscriber))\r\n }\r\n\r\n}\r\n","\r\nimport {InsTextfieldComponent} from './textfield.component';\r\nimport {InsTextfieldDropdownDirective, InsWithTextfieldDropdown} from './textfield-dropdown.directive';\r\nimport { InsLabel } from '../label/label.directive';\r\nimport { InsTextfieldDirective } from './textfield.directive';\r\nimport { InsTextFieldController } from './textfield.controller';\r\nimport { InsTextFieldDataDirective } from './textfield-data.directive';\r\nimport { InsTextFieldSingleDataDirective } from './textfield-single-data.directive';\r\n\r\nexport const InsTextfield = [\r\n InsLabel,\r\n InsTextfieldComponent,\r\n InsTextfieldDirective,\r\n InsTextFieldController,\r\n InsTextfieldDropdownDirective,\r\n InsTextFieldDataDirective,\r\n InsWithTextfieldDropdown,\r\n\r\n InsTextFieldSingleDataDirective\r\n] as const;\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n InjectionToken,\r\n Provider,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { insWithStyles } from '../../service/with-styles';\r\nimport { INS_FORM_OPTIONS, InsFormOptions } from './form.options';\r\nimport { INS_BUTTON_OPTIONS } from '../button';\r\nimport { INS_NOTIFICATION_OPTIONS } from '../notification';\r\nimport { INS_RADIO_OPTIONS } from '../radio';\r\nimport { INS_CHECKBOX_OPTIONS } from '../checkbox';\r\nimport { INS_TEXTFIELD_OPTIONS } from '../textfield';\r\nimport { INS_LABEL_OPTIONS } from '../label/label.options';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"./form.style.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-form',\r\n },\r\n})\r\nclass InsFormStyles {}\r\n\r\n\r\n@Directive({\r\n \r\n selector: '[insForm]',\r\n providers: [\r\n // projectSize(INS_BUTTON_OPTIONS, (size) => size),\r\n // projectSize(INS_NOTIFICATION_OPTIONS, (size) => size),\r\n // projectSize(INS_SWITCH_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),\r\n // projectSize(INS_RADIO_OPTIONS, (size) => size),\r\n // projectSize(INS_CHECKBOX_OPTIONS, (size) => size),\r\n\r\n projectOptions(INS_BUTTON_OPTIONS),\r\n projectOptions(INS_NOTIFICATION_OPTIONS),\r\n projectOptions(INS_RADIO_OPTIONS),\r\n projectOptions(INS_CHECKBOX_OPTIONS),\r\n projectOptions(INS_TEXTFIELD_OPTIONS),\r\n projectOptions(INS_LABEL_OPTIONS),\r\n ],\r\n host: {\r\n '[attr.data-size]': 'options.size',\r\n insForm:''\r\n },\r\n})\r\nexport class InsForm {\r\n protected readonly nothing = insWithStyles(InsFormStyles);\r\n protected readonly options = inject(INS_FORM_OPTIONS);\r\n}\r\n\r\n\r\n// function projectSize(\r\n// provide: InjectionToken<any>,\r\n// project: InsHandler<InsFormOptions['size'], string>\r\n// ): Provider {\r\n// return {\r\n// provide,\r\n// useFactory: () => ({\r\n// ...inject(provide, {skipSelf: true}),\r\n// size: project(inject(InsForm).size() || inject(INS_FORM_OPTIONS).size || 'm'),\r\n// }),\r\n// };\r\n// }\r\n\r\nfunction projectOptions(provide: InjectionToken<any>): Provider{\r\n return {\r\n provide,\r\n useFactory: ()=>{\r\n const formOptions = inject(INS_FORM_OPTIONS)\r\n const options = inject(provide, {skipSelf: true})\r\n const tem = Object.keys(options).reduce((acc,key)=>{\r\n if((key in formOptions) && formOptions[key as keyof InsFormOptions]!=undefined){\r\n acc[key]=formOptions[key as keyof InsFormOptions]\r\n }else{\r\n acc[key]=options[key]\r\n }\r\n return acc\r\n },{} as typeof options)\r\n return tem\r\n }\r\n }\r\n}\r\n","import type {Provider} from '@angular/core';\r\nimport { InsAppearanceOptions } from '../appearance/appearance.options';\r\nimport { createToken } from '../../service/create-token';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsInputTagOptions extends InsAppearanceOptions {\r\n inputHidden: boolean;\r\n}\r\n\r\nexport const INS_INPUT_TAG_DEFAULT_OPTIONS: InsInputTagOptions = {\r\n appearance: 'textfield',\r\n inputHidden: false\r\n};\r\n\r\nexport const INS_INPUT_TAG_OPTIONS = createToken(INS_INPUT_TAG_DEFAULT_OPTIONS);\r\n\r\nexport function insInputTagOptionsProvider(options: Partial<InsInputTagOptions>): Provider {\r\n return provideOptions(INS_INPUT_TAG_OPTIONS, options, INS_INPUT_TAG_DEFAULT_OPTIONS);\r\n}\r\n","import type {PipeTransform} from '@angular/core';\r\nimport {Pipe} from '@angular/core';\r\nimport { InsMapper } from '../../model/mapper';\r\n\r\n@Pipe({\r\n \r\n name: 'insMapper',\r\n})\r\nexport class InsMapperPipe implements PipeTransform {\r\n /**\r\n * Maps object to an arbitrary result through a mapper function\r\n *\r\n * @param value an item to transform\r\n * @param mapper a mapping function\r\n * @param args arbitrary number of additional arguments\r\n */\r\n public transform<T extends unknown[], U, G>(\r\n value: U,\r\n mapper: InsMapper<[U, ...T], G>,\r\n ...args: T\r\n ): G {\r\n return mapper(value, ...args);\r\n }\r\n}\r\n","import {type FactoryProvider, inject, type ProviderToken} from '@angular/core';\r\nimport {identity} from 'rxjs';\r\n\r\nexport abstract class InsValueTransformer<From, To = unknown> {\r\n public abstract toControlValue(componentValue: From): To;\r\n public abstract fromControlValue(controlValue: To): From;\r\n}\r\n\r\nexport function insValueTransformerFrom<\r\n T extends {valueTransformer: InsValueTransformer<unknown>},\r\n>(token: ProviderToken<T>): FactoryProvider {\r\n return {\r\n provide: InsValueTransformer,\r\n useFactory: () => inject(token).valueTransformer,\r\n };\r\n}\r\n\r\nexport class InsNonNullableValueTransformer<T> extends InsValueTransformer<T | null, T> {\r\n private prevValue!: T;\r\n\r\n public fromControlValue(value: T): T {\r\n this.prevValue = value;\r\n\r\n return value;\r\n }\r\n\r\n public toControlValue(value: T | null): T {\r\n this.prevValue = value ?? this.prevValue;\r\n\r\n return this.prevValue;\r\n }\r\n}\r\n\r\nexport const INS_IDENTITY_VALUE_TRANSFORMER: InsValueTransformer<any, any> = {\r\n fromControlValue: identity,\r\n toControlValue: identity,\r\n};\r\n","import {InjectionToken, type ValueProvider} from '@angular/core';\r\n\r\nexport const INS_FALLBACK_VALUE = new InjectionToken<any>(\r\n '',\r\n {\r\n factory: () => null,\r\n },\r\n);\r\n\r\nexport function insFallbackValueProvider<T>(useValue: T): ValueProvider {\r\n return {\r\n provide: INS_FALLBACK_VALUE,\r\n useValue,\r\n };\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n computed,\r\n Directive,\r\n inject,\r\n input,\r\n type Provider,\r\n signal,\r\n type Type,\r\n untracked,\r\n} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {\r\n type ControlValueAccessor,\r\n type FormControlStatus,\r\n NgControl,\r\n NgModel,\r\n} from '@angular/forms';\r\nimport {\r\n delay,\r\n distinctUntilChanged,\r\n EMPTY,\r\n filter,\r\n map,\r\n merge,\r\n startWith,\r\n Subject,\r\n switchMap,\r\n} from 'rxjs';\r\n\r\nimport {INS_IDENTITY_VALUE_TRANSFORMER, InsValueTransformer} from './value-transformer';\r\nimport { EMPTY_FUNCTION } from '../../model';\r\nimport { insProvide } from '../provide';\r\nimport { INS_FALLBACK_VALUE } from '../../token/fallback-value';\r\n\r\nconst FLAGS = {self: true, optional: true};\r\n\r\n/**\r\n * Basic ControlValueAccessor class to build form components upon\r\n */\r\n@Directive()\r\nexport abstract class InsControl<T> implements ControlValueAccessor {\r\n private readonly fallback = inject(INS_FALLBACK_VALUE, FLAGS) as T;\r\n private readonly refresh$ = new Subject<void>();\r\n private readonly internal = signal(this.fallback);\r\n\r\n protected readonly control = inject(NgControl, {self: true});\r\n protected readonly cdr = inject(ChangeDetectorRef);\r\n protected transformer =\r\n inject(InsValueTransformer, FLAGS) ?? INS_IDENTITY_VALUE_TRANSFORMER;\r\n\r\n public readonly value = computed(() => this.internal() ?? this.fallback);\r\n public readonly readOnly = input(false);\r\n public readonly pseudoInvalid = input<boolean | null>(null, {alias: 'invalid'});\r\n public readonly touched = signal(false);\r\n public readonly status = signal<FormControlStatus | undefined>(undefined);\r\n public readonly disabled = computed(() => this.status() === 'DISABLED');\r\n public readonly interactive = computed(() => !this.disabled() && !this.readOnly());\r\n public readonly invalid = computed(() =>\r\n this.pseudoInvalid() !== null\r\n ? !!this.pseudoInvalid() && this.interactive()\r\n : this.interactive() && this.touched() && this.status() === 'INVALID',\r\n );\r\n\r\n public readonly mode = computed(() =>\r\n \r\n this.readOnly() ? 'readonly' : this.invalid() ? 'invalid' : 'valid',\r\n );\r\n\r\n public onTouched = EMPTY_FUNCTION;\r\n public onChange: (value: T) => void = EMPTY_FUNCTION;\r\n\r\n constructor() {\r\n this.control.valueAccessor = this;\r\n this.refresh$\r\n .pipe(\r\n delay(0),\r\n startWith(null),\r\n map(() => this.control.control),\r\n filter(Boolean),\r\n distinctUntilChanged(),\r\n switchMap((c) =>\r\n merge(\r\n c.valueChanges,\r\n c.statusChanges,\r\n (c as any).events || EMPTY,\r\n ).pipe(startWith(null)),\r\n ),\r\n takeUntilDestroyed(),\r\n )\r\n .subscribe(() => this.update());\r\n }\r\n\r\n public registerOnChange(onChange: (value: unknown) => void): void {\r\n this.refresh$.next();\r\n\r\n this.onChange = (value: T) => {\r\n const internal = untracked(() => this.internal());\r\n\r\n if (value === internal) {\r\n return;\r\n }\r\n\r\n onChange(this.transformer.toControlValue(value));\r\n this.internal.set(value);\r\n this.update();\r\n };\r\n }\r\n\r\n public registerOnTouched(onTouched: () => void): void {\r\n this.onTouched = () => {\r\n onTouched();\r\n this.update();\r\n };\r\n }\r\n\r\n public setDisabledState(): void {\r\n this.update();\r\n }\r\n\r\n public writeValue(value: T | null): void {\r\n // TODO: https://github.com/angular/angular/issues/14988\r\n const safe = this.control instanceof NgModel ? this.control.model : value;\r\n\r\n this.internal.set(this.transformer.fromControlValue(safe));\r\n this.update();\r\n }\r\n\r\n private update(): void {\r\n this.status.set(this.control.control?.status);\r\n this.touched.set(!!this.control.control?.touched);\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n\r\nexport function insAsControl<T>(control: Type<InsControl<T>>): Provider {\r\n return insProvide(InsControl, control);\r\n}\r\n","import { Component, computed, DestroyRef, ElementRef, EventEmitter, inject, input, OnInit, Output, QueryList, TemplateRef, ViewChild, ViewChildren, ViewContainerRef } from \"@angular/core\";\r\nimport { InsChip } from \"../chip/chip.directive\";\r\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { insProvide } from \"../../service/provide\";\r\nimport { INS_TEXTFIELD_ACCESSOR, InsTextFieldAccessor } from \"../textfield/textfield.options\";\r\nimport { InsButton } from \"../button/button.directive\";\r\nimport { InsBooleanHandler } from \"../../model/handler\";\r\nimport { debounceTime, takeWhile, } from \"rxjs\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { EMPTY_QUERY } from \"../../model/empty\";\r\nimport { getActualTarget } from \"../../service/dom/get-actual-target\";\r\nimport { isElement } from \"../../service/dom/element-checks\";\r\nimport { insChipOptionsProvider } from \"../chip/chip.options\";\r\nimport { INS_INPUT_TAG_OPTIONS } from \"./input-tag.option\";\r\nimport { insInjectId } from \"../../service/id.service\";\r\nimport { InsAppearance } from \"../appearance\";\r\nimport { INS_COMMON_ICONS } from \"../../token\";\r\nimport { InsMapperPipe } from \"../../pipe\";\r\nimport { InsControl } from \"../../service/control/control\";\r\nimport { insFallbackValueProvider } from \"../../token/fallback-value\";\r\nimport { InsTextfieldDirective } from \"../textfield\";\r\n\r\nexport class TextfieldOptionItem {\r\n constructor(public data: any) { }\r\n static toString: (data: any) => string\r\n static toValue: (data: any) => any\r\n static identityMatcher: (a: any, b: any) => boolean\r\n}\r\n@Component({\r\n \r\n selector: 'ins-input-tag',\r\n templateUrl: './input-tag.template.html',\r\n styleUrls: ['./input-tag.style.less'],\r\n imports: [\r\n InsChip,\r\n InsButton,\r\n InsMapperPipe,\r\n ReactiveFormsModule\r\n ],\r\n hostDirectives: [\r\n {\r\n directive: InsTextfieldDirective,\r\n inputs: ['invalid', 'focused', 'readOnly', 'disabled']\r\n }\r\n ],\r\n providers: [\r\n insFallbackValueProvider([]),\r\n insProvide(INS_TEXTFIELD_ACCESSOR, InsInputTagComponent),\r\n insChipOptionsProvider({ appearance: 'glass', size: 's' })\r\n ],\r\n host: {\r\n // ngSkipHydration: 'true',\r\n '(mousedown)': 'setFocused($event)',\r\n '[attr.id]': 'id',\r\n 'class': 'ins-input-tag'\r\n }\r\n})\r\nexport class InsInputTagComponent<T> extends InsControl<T[]> implements InsTextFieldAccessor<T>, OnInit {\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n private readonly template?: TemplateRef<any>;\r\n\r\n id = insInjectId()\r\n\r\n protected icons = inject(INS_COMMON_ICONS)\r\n\r\n protected destroyRef = inject(DestroyRef);\r\n private readonly options = inject(INS_INPUT_TAG_OPTIONS);\r\n private readonly apprearance = inject(InsAppearance, { optional: true })\r\n\r\n private readonly vcr = inject(ViewContainerRef)\r\n\r\n @ViewChildren('tag', { read: ElementRef })\r\n private readonly tags: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\r\n @ViewChild('focusableElement')\r\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\r\n\r\n\r\n disabledItemHandler = input<InsBooleanHandler<any>>(() => false)\r\n inputHidden = input(this.options.inputHidden)\r\n placeholder = input('')\r\n\r\n searchValue = new FormControl('')\r\n @Output() searchChange = new EventEmitter<string>()\r\n\r\n searchSignal = toSignal(this.searchValue.valueChanges)\r\n\r\n computedPlaceholder = computed(() => {\r\n const focused = this.apprearance?.insAppearanceFocus()\r\n const searchValue = this.searchSignal() ?? ''\r\n const placeholder = this.placeholder()\r\n const longer = searchValue.length > placeholder.length ? searchValue : placeholder\r\n return searchValue ? longer : (focused || !this.value().length ? placeholder : '')\r\n })\r\n showGhost = computed(() => {\r\n return (this.searchSignal()?.length ?? 0) > 0 ? 'hidden' : 'visible'\r\n })\r\n\r\n ngOnInit(): void {\r\n if (this.template) {\r\n this.vcr.createEmbeddedView(this.template);\r\n }\r\n\r\n this.searchValue.valueChanges.pipe(\r\n takeWhile(() => !this.readOnly() && !this.disabled() && !this.inputHidden()),\r\n takeUntilDestroyed(this.destroyRef),\r\n debounceTime(300)\r\n ).subscribe(value => {\r\n this.searchChange.emit(value || '')\r\n })\r\n\r\n // if (this.optionsDataDirective) {\r\n // merge(\r\n // this.writeValue$,\r\n // this.controlValue$.pipe(\r\n // map(v => this.optionsDataDirective?.getValue?.(v))\r\n // )\r\n // ).pipe(\r\n // combineLatestWith(this.optionsDataDirective),\r\n // map(this.mapOptionsToValues),\r\n // takeUntilDestroyed(this.destroyRef),\r\n // ).subscribe(value => {\r\n // this.value.set(value)\r\n // })\r\n\r\n // } else {\r\n // merge(\r\n // this.writeValue$,\r\n // this.controlValue$\r\n // ).pipe(\r\n // takeUntilDestroyed(this.destroyRef),\r\n // ).subscribe(value => {\r\n // this.value.set(value)\r\n // })\r\n // }\r\n\r\n\r\n }\r\n\r\n setValue(value: T[]|T) {\r\n this.searchValue.setValue('')\r\n if(!Array.isArray(value)){\r\n value = [...this.value(),value]\r\n }\r\n this.onChange(\r\n Array.from(new Set(value.reverse())).reverse()\r\n )\r\n }\r\n clearValue() {\r\n this.setValue([])\r\n }\r\n public getValue(): any {\r\n return this.value()\r\n }\r\n\r\n\r\n removeItem(index: number) {\r\n this.setValue(this.value().filter((_, i) => i != index))\r\n }\r\n\r\n\r\n public get nativeFocusableElement(): HTMLInputElement | null {\r\n return !this.focusableElement || this.disabled()\r\n ? null\r\n : this.focusableElement.nativeElement;\r\n }\r\n\r\n private focusInput(preventScroll = false): void {\r\n this.nativeFocusableElement?.focus({ preventScroll });\r\n }\r\n\r\n // private scrollTo(scrollLeft = this.scrollBar?.nativeElement.scrollWidth) {\r\n // timer(0).pipe(takeUntilDestroyed(this.destroyRef))\r\n // .subscribe(() => {\r\n // if(this.scrollBar){\r\n // this.scrollBar.nativeElement.scrollLeft = scrollLeft || 0\r\n // }\r\n // })\r\n // }\r\n\r\n protected onTagKeyDownArrowLeft(currentIndex: number): void {\r\n if (currentIndex > 0) {\r\n this.onScrollKeyDown(currentIndex, -1);\r\n }\r\n }\r\n\r\n protected onTagKeyDownArrowRight(currentIndex: number): void {\r\n if (currentIndex === this.value().length - 1) {\r\n this.focusInput();\r\n } else {\r\n this.onScrollKeyDown(currentIndex, 1);\r\n }\r\n }\r\n\r\n private onScrollKeyDown(currentIndex: number, flag: number): void {\r\n const tag = this.tags.find((_item, index) => index === currentIndex + flag);\r\n\r\n if (!tag) {\r\n return;\r\n }\r\n\r\n tag.nativeElement.focus();\r\n }\r\n\r\n public setFocused(event: MouseEvent): void {\r\n if (this.readOnly() || this.disabled()) {\r\n event.preventDefault();\r\n return;\r\n }\r\n const actualTarget = getActualTarget(event);\r\n if (\r\n !this.focusableElement ||\r\n actualTarget === this.focusableElement.nativeElement ||\r\n !isElement(event.target) ||\r\n this.tags.some(event => event.nativeElement.contains(actualTarget))\r\n ) {\r\n return;\r\n }\r\n event.preventDefault();\r\n this.focusInput();\r\n }\r\n\r\n get hasNativeValue() {\r\n return !!this.searchValue.value\r\n }\r\n\r\n protected onFieldKeyDownArrowLeft(event: Event): void {\r\n if (this.hasNativeValue || !this.value().length) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n this.tags.last.nativeElement.focus();\r\n }\r\n\r\n protected onFieldKeyDownBackspace(event: Event): void {\r\n if (!this.hasNativeValue && this.value().length) {\r\n this.deleteLastEnabledItem();\r\n } else {\r\n this.onFieldKeyDownArrowLeft(event);\r\n }\r\n }\r\n\r\n protected onFieldKeyDownEnter(): void {\r\n this.addTag();\r\n }\r\n\r\n private addTag(): void {\r\n const inputValue = this.searchValue.value?.trim() ?? '';\r\n\r\n if (!inputValue || this.disabledItemHandler()(inputValue)) {\r\n return;\r\n }\r\n\r\n this.setValue([...this.value(), inputValue as T])\r\n }\r\n private deleteLastEnabledItem(): void {\r\n for (let index = this.value().length - 1; index >= 0; index--) {\r\n if (!this.disabledItemHandler()(this.value()[index] ?? '')) {\r\n this.setValue(this.value().filter((_, i) => i != index))\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // protected onMouseDown(event: MouseEvent): void {\r\n // const actualTarget = getActualTarget(event);\r\n // if (\r\n // !this.focusableElement ||\r\n // actualTarget === this.focusableElement.nativeElement ||\r\n // !isElement(event.target) ||\r\n // this.tags.some(event => event.nativeElement.contains(actualTarget))\r\n // ) {\r\n // return;\r\n // }\r\n // event.preventDefault();\r\n // this.focusInput();\r\n // }\r\n}","<ng-template #template>\r\n <div class=\"t-tag-content\" >\r\n @if (!disabled()&&!readOnly()&&!inputHidden()) {\r\n <div class=\"t-input-wrapper\">\r\n <div class=\"t-ghost\" [style.visibility]=\"showGhost()\">{{computedPlaceholder()}}</div>\r\n <input\r\n type=\"text\"\r\n class=\"t-native\"\r\n #focusableElement\r\n [formControl]=\"searchValue\"\r\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\r\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\r\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\r\n />\r\n </div>\r\n }\r\n @for (item of value(); track item) {\r\n <div\r\n tabIndex=\"-1\"\r\n #tag\r\n insChip\r\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft($index)\"\r\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight($index)\"\r\n \r\n >\r\n <div class=\"t-text\" [title]=\"item\">{{item}}</div>\r\n @if (!disabled()&&!readOnly()&&!(item|insMapper:disabledItemHandler())) {\r\n <button\r\n tabIndex=\"-1\"\r\n [iconStart]=\"icons.close\"\r\n size=\"s\"\r\n insIconButton\r\n type=\"button\"\r\n (click.stop)=\"removeItem($index)\"\r\n >\r\n Remove\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n\r\nimport {INS_LINK_OPTIONS} from './link.options';\r\nimport { insAppearanceOptionsProvider } from '../appearance/appearance.options';\r\nimport { InsWithAppearance } from '../appearance/with-appearance';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styles: ['@import \"../../styles/components/link.less\";'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-link',\r\n },\r\n})\r\nclass InsLinkStyles {}\r\n\r\n@Directive({\r\n \r\n selector: 'a[insLink], button[insLink]',\r\n providers: [insAppearanceOptionsProvider(INS_LINK_OPTIONS)],\r\n hostDirectives: [{ directive: InsWithAppearance }],\r\n host: {\r\n insLink: '',\r\n '[style.text-decoration-line]': 'pseudo() ? \"underline\" : null',\r\n },\r\n})\r\nexport class InsLink {\r\n protected readonly nothing = insWithStyles(InsLinkStyles);\r\n\r\n public pseudo = input(inject(INS_LINK_OPTIONS).pseudo)\r\n}\r\n","import { Component, computed, ElementRef, inject, input, model, QueryList, ViewChildren } from \"@angular/core\";\r\nimport { InsButton } from \"../button/button.directive\";\r\nimport { NgForOf, NgIf, NgTemplateOutlet } from \"@angular/common\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { timer } from \"rxjs\";\r\nimport { PolymorpheusOutlet } from \"../../service/Polymorpheus/PolymorpheusOutlet\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { EMPTY_QUERY } from \"../../model/empty\";\r\nimport { INS_PAGINATION_TEXTS } from \"../../token/i18n\";\r\nimport { PolymorpheusContent } from \"../../service/Polymorpheus/content\";\r\nimport { InsContext } from \"../../model/context\";\r\nimport { insClamp } from \"../../service/math/clamp\";\r\nimport { isNativeFocusedIn } from \"../../service/focus/is-native-focused-in\";\r\nimport { INS_SPIN_ICONS } from \"../../token/spin-icons\";\r\n\r\nconst DOTS_LENGTH = 1;\r\nconst ACTIVE_ITEM_LENGTH = 1;\r\n\r\n@Component({\r\n \r\n selector: 'ins-pagination',\r\n templateUrl: './pagination.template.html',\r\n styleUrls: ['./pagination.style.less'],\r\n imports: [\r\n InsButton,\r\n NgTemplateOutlet,\r\n PolymorpheusOutlet\r\n ]\r\n})\r\nexport class InsPagination {\r\n // private readonly els = viewChildren('element', { read: ElementRef })\r\n @ViewChildren('element', {read: ElementRef})\r\n private readonly els: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\r\n private readonly el = injectElement()\r\n\r\n protected readonly textsSignal = toSignal(inject(INS_PAGINATION_TEXTS), { initialValue: ['', ''] })\r\n protected readonly icons = inject(INS_SPIN_ICONS)\r\n\r\n public length = input(1)\r\n public focusable = input(true)\r\n public size = input<'s'|'m'|'l'>('s')\r\n public readonly disabled = input(false)\r\n\r\n public activePadding = input(1)\r\n public sidePadding = input(1)\r\n public content = input<PolymorpheusContent<InsContext<number>>>()\r\n\r\n\r\n /**\r\n * Max number of elements in half (not counting the middle one).\r\n */\r\n private maxHalfLength = computed(() => this.sidePadding() + DOTS_LENGTH + this.activePadding())\r\n /**\r\n * Max number of elements\r\n */\r\n private maxElementsLength = computed(() => this.maxHalfLength() * 2 + ACTIVE_ITEM_LENGTH)\r\n\r\n /**\r\n * Is there '...' anywhere\r\n */\r\n private itemsFit = computed(() => this.length() <= this.maxElementsLength())\r\n\r\n protected elementsLength = computed(() => this.itemsFit() ? this.length() : this.maxElementsLength())\r\n protected elementArr = computed(() => new Array(this.elementsLength()))\r\n\r\n private lastElementIndex = computed(() => this.elementsLength() - 1);\r\n private lastIndex = computed(() => this.length() - 1)\r\n\r\n\r\n\r\n public index = model(0)\r\n\r\n /**\r\n * Get index by element index\r\n * @param elementIndex\r\n * @returns index or null (for '…')\r\n */\r\n protected getItemIndexByElementIndex(elementIndex: number): number | null {\r\n if (elementIndex < this.sidePadding()) {\r\n return elementIndex;\r\n }\r\n\r\n if (elementIndex === this.sidePadding() && this.hasCollapsedItems(this.index())) {\r\n return null;\r\n }\r\n\r\n const reverseElementIndex = this.lastElementIndex() - elementIndex;\r\n\r\n if (\r\n reverseElementIndex === this.sidePadding() &&\r\n this.hasCollapsedItems(this.lastIndex() - this.index())\r\n ) {\r\n return null;\r\n }\r\n\r\n if (reverseElementIndex < this.sidePadding()) {\r\n return this.lastIndex() - reverseElementIndex;\r\n }\r\n\r\n const computedIndex = this.index() - this.maxHalfLength() + elementIndex;\r\n\r\n return insClamp(\r\n computedIndex,\r\n elementIndex,\r\n this.lastIndex() - reverseElementIndex,\r\n );\r\n }\r\n /**\r\n * Are there collapsed items at that index\r\n * @param index\r\n * @returns there are collapsed items\r\n */\r\n private hasCollapsedItems(index: number): boolean {\r\n return !this.itemsFit() && index > this.maxHalfLength();\r\n }\r\n\r\n\r\n public arrowIsDisabledLeft = computed(() => this.index() === 0)\r\n public arrowIsDisabledRight = computed(() => this.lastIndex() === this.index())\r\n\r\n\r\n protected elementIsFocusable(index: number): boolean {\r\n return this.index() === index && !isNativeFocusedIn(this.el);\r\n }\r\n\r\n private updateIndex(index: number): void {\r\n if (this.index() === index) {\r\n return;\r\n }\r\n this.index.set(index)\r\n }\r\n\r\n protected onElementClick(index: number): void {\r\n this.updateIndex(index);\r\n }\r\n\r\n protected onElementKeyDownArrowLeft(element: HTMLElement): void {\r\n if (element === this.els?.first.nativeElement) {\r\n return;\r\n }\r\n\r\n const previous = this.els.find(\r\n (_, index, array) => array[index + 1]?.nativeElement === element,\r\n );\r\n\r\n previous?.nativeElement.focus();\r\n }\r\n protected onElementKeyDownArrowRight(element: HTMLElement): void {\r\n if (element === this.els?.last.nativeElement) {\r\n return;\r\n }\r\n\r\n const next = this.els.find(\r\n (_, index, array) => array[index - 1]?.nativeElement === element,\r\n );\r\n\r\n next?.nativeElement.focus();\r\n }\r\n\r\n protected onArrowClick(direction: 'left' | 'right'): void {\r\n this.tryChangeTo(direction);\r\n timer(0).subscribe(()=>{\r\n this.focusActive();\r\n })\r\n }\r\n private tryChangeTo(direction: 'left' | 'right'): void {\r\n this.updateIndex(\r\n insClamp(this.index() + (direction === 'right' ? 1 : -1), 0, this.lastIndex()),\r\n );\r\n }\r\n private focusActive(): void { \r\n if (this.disabled()) {\r\n return;\r\n }\r\n let activeElementIndex = 0\r\n for (let i = 0; i < this.elementsLength(); i++) {\r\n const itemIndex = this.getItemIndexByElementIndex(i)\r\n if (itemIndex) {\r\n activeElementIndex++\r\n }\r\n if (itemIndex === this.index()) {\r\n break\r\n }\r\n }\r\n this.els.find((_, index) => index === activeElementIndex)?.nativeElement.focus()\r\n }\r\n}","\r\n<button\r\n appearance=\"flat\"\r\n tabIndex=\"-1\"\r\n insIconButton\r\n type=\"button\"\r\n class=\"t-button\"\r\n [disabled]=\"arrowIsDisabledLeft()\"\r\n [iconStart]=\"icons.decrement\"\r\n [size]=\"size()\"\r\n (click)=\"onArrowClick('left')\"\r\n (mousedown.zoneless.prevent)=\"(0)\"\r\n>\r\n {{ textsSignal()[0] }}\r\n</button>\r\n@for (cell of elementArr(); track $index) {\r\n <ng-container *ngTemplateOutlet=\"pagebtnTmp; context: {\r\n $implicit: getItemIndexByElementIndex($index)\r\n }\">\r\n </ng-container>\r\n}\r\n<button\r\n appearance=\"flat\"\r\n tabIndex=\"-1\"\r\n insIconButton\r\n type=\"button\"\r\n class=\"t-button\"\r\n [disabled]=\"arrowIsDisabledRight()\"\r\n [iconStart]=\"icons.increment\"\r\n [size]=\"size()\"\r\n (click)=\"onArrowClick('right')\"\r\n (mousedown.zoneless.prevent)=\"(0)\"\r\n>\r\n {{ textsSignal()[1] }}\r\n</button>\r\n\r\n\r\n<ng-template #pagebtnTmp let-itemIndex >\r\n @if (itemIndex !== null) {\r\n <button\r\n #element\r\n automation-id=\"ins-pagination__element\"\r\n insButton\r\n type=\"button\"\r\n class=\"t-button\"\r\n [appearance]=\"itemIndex === index() ? 'primary' : 'flat'\"\r\n [disabled]=\"disabled()\"\r\n [size]=\"size()\"\r\n [tabIndex]=\"elementIsFocusable(itemIndex) ? 0 : -1\"\r\n (click)=\"onElementClick(itemIndex)\"\r\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\r\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\r\n >\r\n <ng-container *polymorpheusOutlet=\"content() || itemIndex + 1 as text; context: {$implicit: itemIndex}\">\r\n {{ text }}\r\n </ng-container>\r\n </button>\r\n } @else {\r\n <span\r\n automation-id=\"ins-pagination__element\"\r\n class=\"t-dots\"\r\n ></span>\r\n }\r\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n signal,\r\n ViewEncapsulation,\r\n DOCUMENT\r\n} from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { map } from 'rxjs';\r\nimport { InsBreakpointService } from '../../service/breakpoint.service';\r\nimport { REDUCED_MOTION } from '../../token/reduced-motion';\r\nimport { InsPopups } from '../popup';\r\n\r\nimport { injectElement } from '../../service';\r\n\r\n@Component({\r\n \r\n selector: 'ins-root',\r\n templateUrl: './root.template.html',\r\n styleUrls: ['./root.style.less', './animations.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n \r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [InsPopups],\r\n host: {\r\n '[style.--ins-scroll-behavior]': 'reducedMotion()',\r\n '[class._mobile]': 'isMobileRes()',\r\n '(document:fullscreenchange)': 'top.set(parent)',\r\n },\r\n})\r\nexport class InsRoot {\r\n private readonly doc = inject(DOCUMENT);\r\n private readonly el = injectElement();\r\n private readonly child = !!inject(InsRoot, { optional: true, skipSelf: true });\r\n\r\n protected readonly reducedMotion = signal(inject(REDUCED_MOTION) ? \"auto\" : \"smooth\");\r\n protected readonly isMobileRes = toSignal(\r\n inject(InsBreakpointService).pipe(\r\n map((breakpoint) => breakpoint === 'mobile'),\r\n ),\r\n { initialValue: false }\r\n );\r\n\r\n protected readonly top = signal(this.parent);\r\n\r\n protected get parent(): boolean {\r\n return this.doc.fullscreenElement === this.el || !this.child;\r\n }\r\n\r\n}\r\n","<div class=\"t-root-content\">\r\n <ng-content />\r\n</div>\r\n@if(top()){\r\n <ins-popups></ins-popups>\r\n}","import { Component, DestroyRef, forwardRef, inject, input, OnInit, signal } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\nimport { insProvide } from \"../../service/provide\";\r\nimport { INS_TEXTFIELD_ACCESSOR, InsTextFieldAccessor } from \"../textfield/textfield.options\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { InsTextFieldSingleDataDirective } from \"../textfield/textfield-single-data.directive\";\r\nimport { insInjectId } from \"../../service/id.service\";\r\nimport { combineLatestWith, map, merge, Subject } from \"rxjs\";\r\n\r\n@Component({\r\n \r\n selector: 'ins-select',\r\n templateUrl: './select.template.html',\r\n styleUrls: ['./select.style.less'],\r\n imports: [\r\n ],\r\n hostDirectives: [\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InsSelectComponent),\r\n multi: true//令牌多对一\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => InsSelectComponent),\r\n multi: true//令牌多对一\r\n },\r\n insProvide(INS_TEXTFIELD_ACCESSOR, InsSelectComponent)\r\n ],\r\n host: {\r\n // '_disabled': \"disabled()\",\r\n tabindex: \"0\",\r\n role: \"combobox\",\r\n '[attr.id]': 'id',\r\n }\r\n})\r\nexport class InsSelectComponent<T> implements ControlValueAccessor, Validator, InsTextFieldAccessor<T>, OnInit {\r\n\r\n // private readonly textfield = inject(InsTextfieldComponent);\r\n protected readonly optionsDataDirective = inject(InsTextFieldSingleDataDirective,{optional: true})\r\n protected readonly destroyRef = inject(DestroyRef);\r\n\r\n value = signal<T|null>(null)\r\n controlValue$ = new Subject<T|null>()\r\n writeValue$ = new Subject<T|null>()\r\n \r\n readOnly = input<boolean>(false)\r\n disabled = input<boolean>(false)\r\n placeholder = input<string>('')\r\n\r\n id = insInjectId()\r\n\r\n\r\n private propageteChange!: (_: any) => void\r\n writeValue(data: T): void {\r\n this.writeValue$.next(data)\r\n }\r\n registerOnChange(fn: any): void {\r\n if(this.optionsDataDirective?.getValue!=null){\r\n this.propageteChange = (data)=>{\r\n fn(this.optionsDataDirective?.getValue!(data))\r\n }\r\n }else{\r\n this.propageteChange = fn;\r\n }\r\n }\r\n registerOnTouched(fn: any): void {}\r\n validate(): any {\r\n return null;\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.optionsDataDirective){\r\n merge(\r\n this.writeValue$,\r\n this.controlValue$.pipe(\r\n map(v=>this.optionsDataDirective?.getValue?.(v))\r\n )\r\n ).pipe(\r\n combineLatestWith(this.optionsDataDirective),\r\n map(this.mapOptionsToValues),\r\n takeUntilDestroyed(this.destroyRef),\r\n ).subscribe(value => {\r\n this.value.set(value)\r\n })\r\n }else{\r\n merge(\r\n this.writeValue$,\r\n this.controlValue$\r\n ).pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n ).subscribe(value => {\r\n this.value.set(value)\r\n })\r\n }\r\n }\r\n mapOptionsToValues = ([dataValues, optionsArray]:[T,T[]]) => {\r\n if (dataValues && optionsArray) {\r\n return optionsArray.find(opt => this.optionsDataDirective?.identityMatcher(dataValues, opt))??null;\r\n }\r\n return null;\r\n }\r\n\r\n setFocused(event: MouseEvent): void {\r\n }\r\n setValue(data: T | null) {\r\n // this.value.set(data)\r\n this.controlValue$.next(data)\r\n this.propageteChange(data)\r\n }\r\n getValue(): any {\r\n return this.value\r\n }\r\n clearValue(): void {\r\n // this.value.set(null)\r\n this.controlValue$.next(null)\r\n this.propageteChange(null)\r\n }\r\n}","<!-- {{value()}} -->\r\n<input type=\"text\" [value]=\"value()\" class=\"t-input\" readonly [placeholder]=\"placeholder()\">","import { Directive, inject, OnDestroy } from \"@angular/core\";\r\nimport { InsWithIcons } from \"../icon/with-icons\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\nimport { RouterLinkActive } from \"@angular/router\";\r\nimport { EMPTY, filter, fromEvent, merge, switchMap, take } from \"rxjs\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { isNativeFocused } from \"../../service/focus/is-native-focused\";\r\n\r\nexport const INS_TAB_ACTIVATE = 'ins-tab-activate';\r\n\r\n@Directive({\r\n \r\n selector:\r\n 'a[insTab]:not([routerLink]), a[insTab][routerLink][routerLinkActive], button[insTab]',\r\n // hostDirectives: [InsWithIcons],\r\n host: {\r\n type: 'button',\r\n },\r\n})\r\nexport class InsTab implements OnDestroy {\r\n public readonly el = injectElement()\r\n private readonly rla = inject(RouterLinkActive, {optional: true});\r\n\r\n protected readonly sub = merge(\r\n this.rla?.isActiveChange.pipe(filter(Boolean))|| EMPTY,\r\n this.el.matches('button')\r\n ?fromEvent(this.el, 'click').pipe(\r\n switchMap(()=>\r\n // Delaying execution until after all other click callbacks\r\n fromEvent(this.el.parentElement!, 'click').pipe(take(1))\r\n )\r\n )\r\n :EMPTY\r\n ).pipe(takeUntilDestroyed())\r\n .subscribe(()=>\r\n this.el.dispatchEvent(new CustomEvent(INS_TAB_ACTIVATE, {bubbles: true})),\r\n )\r\n\r\n public ngOnDestroy(): void {\r\n if(isNativeFocused(this.el)){\r\n this.el.blur()\r\n }\r\n }\r\n}","import type {Provider} from '@angular/core';\r\nimport {InjectionToken} from '@angular/core';\r\nimport { provideOptions } from '../../service/provide-options';\r\n\r\nexport interface InsTabsOptions {\r\n readonly exposeActive: boolean;\r\n readonly itemsLimit: number;\r\n readonly minMoreWidth: number;\r\n readonly underline: boolean | string;\r\n readonly size: 's'|'m'|'l';\r\n}\r\n\r\nexport const INS_TABS_DEFAULT_OPTIONS: InsTabsOptions = {\r\n underline: true,\r\n exposeActive: true,\r\n itemsLimit: Infinity,\r\n minMoreWidth: 0,\r\n size: 'm',\r\n};\r\n\r\n/**\r\n * Default parameters for Tabs component\r\n */\r\nexport const INS_TABS_OPTIONS = new InjectionToken('', {\r\n factory: () => INS_TABS_DEFAULT_OPTIONS,\r\n});\r\n\r\nexport function insTabsOptionsProvider(options: Partial<InsTabsOptions>): Provider {\r\n return provideOptions(INS_TABS_OPTIONS, options, INS_TABS_DEFAULT_OPTIONS);\r\n}\r\n","import { afterNextRender, AfterViewChecked, ChangeDetectionStrategy, Component, computed, contentChildren, Directive, effect, inject, INJECTOR, input, model, ViewEncapsulation } from \"@angular/core\";\r\nimport { INS_TAB_ACTIVATE, InsTab } from \"./tab.directive\";\r\nimport { insWithStyles } from \"../../service/with-styles\";\r\nimport { INS_TABS_OPTIONS } from \"./tabs.options\";\r\nimport { insMoveFocus } from \"../../service/focus/move-focus\";\r\nimport { injectElement } from \"../../service/dom/inject-element\";\r\n\r\n@Component({\r\n \r\n template: '',\r\n styleUrls: ['./tabs.style.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-tabs',\r\n },\r\n})\r\nexport class InsTabsStyles { }\r\n\r\n@Directive({\r\n \r\n host: {\r\n '[attr.data-size]': 'size()',\r\n [`(${INS_TAB_ACTIVATE})`]: 'onActivate($event, $event.target)',\r\n },\r\n})\r\nexport class InsTabsDirective {\r\n private readonly el = injectElement()\r\n protected nothing = insWithStyles(InsTabsStyles)\r\n\r\n public size = input(inject(INS_TABS_OPTIONS).size)\r\n public activeItemIndex = model(0)\r\n public tabs = contentChildren(InsTab, { descendants: false })\r\n\r\n public tabElements = computed(() => this.tabs().map((tab) => tab.el))\r\n public activeElement = computed(() => this.tabs()[this.activeItemIndex()]?.el)\r\n\r\n constructor(){\r\n effect(() => {\r\n // console.log(this.activeItemIndex())\r\n this.tabElements().forEach((nativeElement) => {\r\n const active = nativeElement === this.activeElement();\r\n nativeElement?.classList.toggle('_active', active);\r\n nativeElement?.setAttribute('tabIndex', active ? '0' : '-1');\r\n });\r\n this.scrollTo(this.activeItemIndex())\r\n })\r\n }\r\n\r\n onActivate(event: Event, element: HTMLElement) {\r\n event.stopPropagation();\r\n\r\n const index = this.tabElements().findIndex((tab) => tab === element);\r\n if (index === this.activeItemIndex()) {\r\n return;\r\n }\r\n this.activeItemIndex.set(index)\r\n }\r\n public moveFocus(current: HTMLElement, step: number) {\r\n insMoveFocus(this.tabElements().indexOf(current), this.tabElements(), step)\r\n }\r\n\r\n private scrollTo(index: number) {\r\n const element = this.tabElements()[index]\r\n if (!element) {\r\n return\r\n }\r\n const { offsetLeft, offsetWidth } = element;\r\n\r\n if (offsetLeft < this.el.scrollLeft) {\r\n this.el.scrollLeft = offsetLeft;\r\n }\r\n\r\n if (offsetLeft + offsetWidth > this.el.scrollLeft + this.el.offsetWidth) {\r\n this.el.scrollLeft = offsetLeft + offsetWidth - this.el.offsetWidth;\r\n }\r\n }\r\n}","import { Directive, inject } from \"@angular/core\";\r\nimport { InsTabsDirective } from \"./tabs.directive\";\r\n\r\n@Directive({\r\n \r\n selector: 'ins-tabs:not([vertical]), nav[insTabs]:not([vertical])',\r\n hostDirectives: [\r\n {\r\n directive: InsTabsDirective,\r\n inputs: ['activeItemIndex', 'size'],\r\n outputs: ['activeItemIndexChange'],\r\n },\r\n ],\r\n host: {\r\n '(keydown.arrowRight.prevent)': 'onKeyDownArrow($event.target, 1)',\r\n '(keydown.arrowLeft.prevent)': 'onKeyDownArrow($event.target, -1)',\r\n },\r\n})\r\nexport class InsTabsHorizontal {\r\n \r\n private readonly tabs = inject(InsTabsDirective)\r\n\r\n // private readonly options = inject(INS_TABS_OPTIONS)\r\n // public underline = input(this.options.underline)\r\n protected onKeyDownArrow(current: HTMLElement, step: number): void {\r\n this.tabs.moveFocus(current, step);\r\n }\r\n}","import { Directive, inject, input } from \"@angular/core\";\r\nimport { InsTabsDirective } from \"./tabs.directive\";\r\nimport { InsHorizontalDirection } from \"../../model/direction\";\r\n\r\n@Directive({\r\n \r\n selector: 'ins-tabs[vertical], nav[insTabs][vertical]',\r\n hostDirectives: [\r\n {\r\n directive: InsTabsDirective,\r\n inputs: ['activeItemIndex', 'size'],\r\n outputs: ['activeItemIndexChange'],\r\n },\r\n ],\r\n host: {\r\n '[attr.data-vertical]': 'vertical()',\r\n '(keydown.arrowRight.prevent)': 'onKeyDownArrow($event.target, 1)',\r\n '(keydown.arrowLeft.prevent)': 'onKeyDownArrow($event.target, -1)',\r\n },\r\n})\r\nexport class InsTabsVertical {\r\n private readonly tabs = inject(InsTabsDirective)\r\n\r\n public vertical=input<InsHorizontalDirection>('left');\r\n\r\n protected onKeyDownArrow(current: HTMLElement, step: number): void {\r\n this.tabs.moveFocus(current, step);\r\n }\r\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, computed, contentChildren, effect, ElementRef, inject, INJECTOR, input, model, OnInit, signal, TemplateRef, ViewChild, viewChild, DOCUMENT } from \"@angular/core\";\r\nimport { InsItem } from \"../../item\";\r\nimport { filter, fromEvent, map, merge, Subject, tap } from \"rxjs\";\r\nimport { MUTATION_OBSERVER_INIT, MutationObserverService, ResizeObserverService } from \"../../../webapi\";\r\nimport { NgTemplateOutlet } from \"@angular/common\";\r\nimport { getClosestFocusable, injectElement, insMoveFocus, isElement, isNativeFocused, PolymorpheusContent, PolymorpheusOutlet } from \"../../../service\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { INS_MORE_WORD } from \"../../../token\";\r\nimport { INS_TABS_OPTIONS } from \"../tabs.options\";\r\nimport { InsDropdown } from \"../../dropdowns\";\r\nimport { InsTab, INS_TAB_ACTIVATE } from \"../tab.directive\";\r\nimport { InsChevron } from \"../../chevron\";\r\n\r\n@Component({\r\n selector: 'ins-tabs-with-more',\r\n templateUrl: './tabs-with-more.template.html',\r\n styleUrls: ['./tabs-with-more.style.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n InsTab,\r\n InsChevron,\r\n NgTemplateOutlet,\r\n PolymorpheusOutlet,\r\n InsDropdown,\r\n ],\r\n providers: [\r\n ResizeObserverService,\r\n MutationObserverService,\r\n {\r\n provide: MUTATION_OBSERVER_INIT,\r\n useValue: { characterData: true, subtree: true, childList: true },\r\n },\r\n ],\r\n host: {\r\n '[attr.data-size]': 'size()'\r\n },\r\n})\r\nexport class InsTabsWithMore implements AfterViewInit, OnInit {\r\n private moreButton = viewChild('moreTab', { read: ElementRef })\r\n private readonly doc = inject(DOCUMENT);\r\n private readonly el = injectElement()\r\n protected readonly moreWord = toSignal(inject(INS_MORE_WORD));\r\n protected readonly options = inject(INS_TABS_OPTIONS);\r\n private readonly injector = inject(INJECTOR)\r\n\r\n @ViewChild('tabsView', { read: ElementRef })\r\n public tabsView!: ElementRef\r\n\r\n protected moreEl = computed(()=>this.moreButton()?.nativeElement)\r\n\r\n protected readonly items = contentChildren(InsItem, { read: TemplateRef, descendants: false })\r\n public activeItemIndex = model(0)\r\n protected size = input<\"s\" | \"m\" | \"l\">('m')\r\n protected readonly moreContent = input<PolymorpheusContent>()\r\n public itemsLimit = input<number>(this.options.itemsLimit)\r\n\r\n private margin = computed(() => this.size() == 'l' ? 24 : 16)\r\n\r\n private refreshIndex$ = new Subject<void>()\r\n protected open = model(false)\r\n\r\n\r\n refresh$ = merge(\r\n inject(ResizeObserverService, { self: true }),\r\n inject(MutationObserverService, { self: true }),\r\n this.refreshIndex$\r\n ).pipe(\r\n filter(() => this.doc.body.contains(this.el)),\r\n takeUntilDestroyed()\r\n )\r\n\r\n constructor() {\r\n \r\n }\r\n ngOnInit(): void {\r\n this.refresh$.pipe(\r\n map(() => this.getMaxIndex()),\r\n filter((maxIndex) => maxIndex !== this.maxIndex())\r\n )\r\n .subscribe((maxIndex) => {\r\n this.maxIndex.set(maxIndex)\r\n })\r\n }\r\n ngAfterViewInit(): void {\r\n \r\n effect(() => {\r\n this.activeItemIndex()\r\n this.refreshIndex$.next()\r\n \r\n }, { injector: this.injector })\r\n effect(() => {\r\n this.tabs().forEach((nativeElement) => {\r\n const active = nativeElement === this.tabs()[this.activeItemIndex()];\r\n nativeElement?.classList.toggle('_active', active);\r\n nativeElement?.setAttribute('tabIndex', active ? '0' : '-1');\r\n });\r\n }, { injector: this.injector })\r\n\r\n \r\n\r\n fromEvent(this.tabsView.nativeElement, INS_TAB_ACTIVATE).subscribe((v: any) => {\r\n this.onActivate(v)\r\n })\r\n }\r\n\r\n private tabsContent = contentChildren(InsTab, { read: ElementRef })\r\n private tabs = computed(()=>this.tabsContent().map((el)=>el.nativeElement))\r\n protected lastVisibleIndex = computed(() => {\r\n if (this.itemsLimit() + 1 > this.items().length) {\r\n return this.maxIndex()\r\n }\r\n const offset = this.itemsLimit() - 1 > this.activeItemIndex() || !this.options.exposeActive ? 1 : 2\r\n return Math.min(this.itemsLimit() - offset, this.maxIndex())\r\n })\r\n private maxIndex = signal(Infinity);\r\n\r\n\r\n private getMaxIndex() {\r\n const tabs = this.tabs();\r\n // 不包含“更多”按钮时,至少有一个tab即可显示\r\n if (tabs.length < 1) {\r\n return 0;\r\n }\r\n\r\n const margin = this.margin();\r\n const activeItemIndex = this.activeItemIndex();\r\n\r\n const { exposeActive, minMoreWidth } = this.options;\r\n const { clientWidth } = this.el;\r\n\r\n const active = tabs[activeItemIndex];\r\n const activeWidth = active?.scrollWidth ?? 0;\r\n\r\n // 正确获取“更多”按钮宽度(不在 .t-tabs 内)\r\n // const moreEl = this.moreButton()?.nativeElement;\r\n const moreWidth = Math.max(this.moreEl()?.scrollWidth ?? 0, minMoreWidth);\r\n\r\n // tabs 数组仅包含真实 tab,不包含“更多”按钮\r\n let maxIndex = tabs.length - 1;\r\n\r\n // 当前总宽度(所有 tab + 间距),不含“更多”按钮\r\n let total = tabs.reduce((acc, { scrollWidth }) => acc + scrollWidth, 0) + maxIndex * margin;\r\n\r\n // 如果总宽度(含更多按钮与一个间距)已可容纳,则无需隐藏\r\n if (Number.isNaN(total) || total + moreWidth + margin <= clientWidth) {\r\n return Infinity;\r\n }\r\n // 逐步减少可见的最后一个 tab,直至满足容器宽度\r\n while (maxIndex >= 0) {\r\n total -= (tabs[maxIndex]?.scrollWidth ?? 0) + margin;\r\n maxIndex--;\r\n\r\n const activeDisplaced = exposeActive && activeItemIndex > maxIndex;\r\n const activeOffset = activeDisplaced ? activeWidth + margin : 0;\r\n const currentWidth = total + activeOffset + moreWidth + margin;\r\n // 针对可见/隐藏元素 scrollWidth 取整差异,做安全偏移\r\n const safetyOffset = this.insToInt(this.maxIndex() === maxIndex - 1);\r\n\r\n if (currentWidth + safetyOffset <= clientWidth) {\r\n return maxIndex;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n insToInt(bool: boolean): 0 | 1 {\r\n return bool ? 1 : 0;\r\n }\r\n\r\n protected isMoreActive = computed(() => {\r\n return this.open() ||\r\n (!this.options.exposeActive && this.lastVisibleIndex() < this.activeItemIndex())\r\n })\r\n protected isMoreAlone = computed(() => {\r\n return this.lastVisibleIndex() < 0 && !this.options.exposeActive\r\n })\r\n protected isMoreVisible = computed(() => {\r\n return this.lastVisibleIndex() < this.items().length - 1\r\n })\r\n\r\n protected get isMoreFocusable(): boolean {\r\n return !!this.moreButton() && isNativeFocused(this.moreButton()?.nativeElement);\r\n }\r\n\r\n\r\n private focusMore(): void {\r\n if (this.moreButton()) {\r\n this.moreButton()?.nativeElement.focus();\r\n }\r\n }\r\n\r\n protected onClick(index: number): void {\r\n this.open.set(false)\r\n this.focusMore();\r\n this.activeItemIndex.set(index)\r\n }\r\n\r\n \r\n\r\n protected onArrowLeft(): void {\r\n const tabs = this.tabs()\r\n let index = tabs.length - 2;\r\n\r\n while (index >= 0) {\r\n tabs[index]?.focus();\r\n\r\n if (isNativeFocused(tabs[index])) {\r\n return;\r\n }\r\n\r\n index--;\r\n }\r\n }\r\n\r\n protected onWrapperArrow(\r\n event: Event,\r\n wrapper: HTMLElement,\r\n previous: boolean,\r\n ): void {\r\n const button: HTMLButtonElement = event.target as HTMLButtonElement;\r\n const target = getClosestFocusable({ initial: button, root: wrapper, previous });\r\n\r\n if (target) {\r\n target.focus();\r\n }\r\n }\r\n// protected onArrowRight(event: Event): void {\r\n// if (isElement(event.target) && isNativeFocused(event.target)) {\r\n// this.focusMore();\r\n// }\r\n// }\r\n\r\n protected onKeyDownArrow(current: any, step: number): void {\r\n\r\n insMoveFocus(this.tabs().indexOf(current.target), this.tabs(), step)\r\n \r\n if (isElement(current.target) && isNativeFocused(current.target)) {\r\n this.focusMore();\r\n }\r\n }\r\n\r\n onActivate(event: Event) {\r\n event.stopPropagation();\r\n\r\n const index = this.tabs().findIndex((tab) => tab === event.target);\r\n if (index === this.activeItemIndex()) {\r\n return;\r\n }\r\n this.activeItemIndex.set(index)\r\n }\r\n}\r\n","<div\r\n insTabs\r\n #tabsView\r\n class=\"t-tabs\"\r\n (keydown.arrowRight.prevent)=\"onKeyDownArrow($event, 1)\"\r\n (keydown.arrowLeft.prevent)=\"onKeyDownArrow($event, -1)\"\r\n [attr.data-size]=\"size()\"\r\n >\r\n @for(item of items(); track item){\r\n @if($index<=lastVisibleIndex()){\r\n <ng-container [ngTemplateOutlet]=\"item\" />\r\n }@else{\r\n <div\r\n class=\"t-flex\"\r\n [class.t-overflown]=\"$index!= activeItemIndex() || !options.exposeActive\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"item\" />\r\n </div>\r\n }\r\n }\r\n</div>\r\n@if(moreContent()){\r\n <button\r\n insTab\r\n type=\"button\"\r\n class=\"t-more\"\r\n [class._active]=\"isMoreActive()\"\r\n [class.t-no-margin]=\"isMoreAlone()\"\r\n [class.t-overflown]=\"!isMoreVisible()\"\r\n [tabIndex]=\"isMoreFocusable ? 0 : -1\"\r\n [insDropdown]=\"dropdown\"\r\n [(insDropdownOpen)]=\"open\"\r\n (keydown.arrowLeft.prevent)=\"onArrowLeft()\"\r\n #moreTab\r\n >\r\n <ng-container *polymorpheusOutlet=\"moreContent() as text\">\r\n {{ text }}\r\n </ng-container>\r\n </button>\r\n} @else {\r\n <button\r\n insChevron\r\n insTab\r\n type=\"button\"\r\n class=\"t-more\"\r\n [class._active]=\"isMoreActive()\"\r\n [class.t-no-margin]=\"isMoreAlone()\"\r\n [class.t-overflown]=\"!isMoreVisible()\"\r\n [tabIndex]=\"isMoreFocusable ? 0 : -1\"\r\n [insDropdown]=\"dropdown\"\r\n [(insDropdownOpen)]=\"open\"\r\n (keydown.arrowLeft.prevent)=\"onArrowLeft()\"\r\n #moreTab\r\n >\r\n {{ moreWord() }}\r\n </button>\r\n}\r\n\r\n<ng-template #dropdown>\r\n <div\r\n #element\r\n class=\"t-dropdown\"\r\n [attr.data-size]=\"size()\"\r\n (keydown.arrowDown.prevent)=\"onWrapperArrow($event, element, false)\"\r\n (keydown.arrowUp.prevent)=\"onWrapperArrow($event, element, true)\"\r\n >\r\n @for (item of items(); track item) {\r\n <div\r\n class=\"t-dropdown-item\"\r\n (ins-tab-activate)=\"onClick($index)\"\r\n >\r\n @if ($index>lastVisibleIndex() && ($index!=activeItemIndex()||!options.exposeActive)) {\r\n <ng-container *polymorpheusOutlet=\"item\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { InsTab } from \"./tab.directive\";\r\nimport { InsTabsHorizontal } from \"./tabs-horizontal.directive\";\r\nimport { InsTabsVertical } from \"./tabs-vertical.directive\";\r\nimport { InsTabsWithMore } from \"./tabs-with-more/tabs-with-more.component\";\r\nimport { InsTabsDirective } from \"./tabs.directive\";\r\n\r\nexport const InsTabs = [\r\n InsTab,\r\n InsTabsDirective,\r\n InsTabsHorizontal,\r\n InsTabsVertical,\r\n InsTabsWithMore\r\n] as const","import {Directive, input} from '@angular/core';\r\nimport { InsHandler } from '../../../model/handler';\r\nimport { EMPTY_ARRAY } from '../../../model/empty';\r\n\r\n@Directive({\r\n \r\n selector: 'ins-tree[childrenHandler]',\r\n})\r\nexport class InsTreeChildren<T> {\r\n public childrenHandler = input<InsHandler<T, readonly T[]>>(InsTreeChildren.defaultHandler)\r\n\r\n public static defaultHandler<G>(item: G): readonly G[] {\r\n return Array.isArray(item) ? item : EMPTY_ARRAY;\r\n }\r\n}\r\n","\r\n\r\n\r\nimport { EMPTY_FUNCTION } from '../../../model/empty';\r\nimport { PolymorpheusComponent } from '../../../service/Polymorpheus/PolymorpheusComponent';\r\nimport type {InsTreeController} from './tree.interfaces';\r\n\r\n// export const INS_TREE_ITEM_CONTENT = new PolymorpheusComponent(InsTreeItemContent);\r\n\r\nexport const INS_DEFAULT_TREE_CONTROLLER: InsTreeController<any> = {\r\n isExpanded: ()=>true,\r\n toggle: EMPTY_FUNCTION as () => void,\r\n};\r\n","import {InjectionToken} from '@angular/core';\r\n\r\nimport {INS_DEFAULT_TREE_CONTROLLER} from './tree.constants';\r\nimport type {InsTreeAccessor, InsTreeItemContext, InsTreeLoader} from './tree.interfaces';\r\nimport { createToken } from '../../../service/create-token';\r\nimport { PolymorpheusContent } from '../../../service/Polymorpheus/content';\r\n\r\n/**\r\n * Controller for tracking value - InsTreeItemComponent pairs\r\n */\r\nexport const INS_TREE_ACCESSOR = new InjectionToken<InsTreeAccessor<unknown>>(\r\n '[INS_TREE_ACCESSOR]',\r\n);\r\n\r\n/**\r\n * Controller for expanding the tree\r\n */\r\nexport const INS_TREE_CONTROLLER = createToken(INS_DEFAULT_TREE_CONTROLLER);\r\n\r\n/**\r\n * A node of a tree view\r\n */\r\nexport const INS_TREE_NODE = new InjectionToken('[INS_TREE_NODE]');\r\n\r\n/**\r\n * A tree node placeholder for loading\r\n */\r\nexport const INS_TREE_LOADING = createToken({});\r\n\r\n/**\r\n * A tree node starting point\r\n */\r\nexport const INS_TREE_START = new InjectionToken('[INS_TREE_START]');\r\n\r\n/**\r\n * A service to load tree progressively\r\n */\r\nexport const INS_TREE_LOADER = new InjectionToken<InsTreeLoader<unknown>>(\r\n '[INS_TREE_LOADER]',\r\n);\r\n\r\n/**\r\n * Content for a tree item\r\n */\r\n// export const INS_TREE_CONTENT =\r\n// createToken<PolymorpheusContent<InsTreeItemContext<any>>>(INS_TREE_ITEM_CONTENT);\r\n\r\n/**\r\n * Nesting level of current TreeView node\r\n */\r\nexport const INS_TREE_LEVEL = createToken(-1);\r\n","import { NgFor, NgIf } from '@angular/common';\r\nimport type { DoCheck, OnDestroy, QueryList, TrackByFunction } from '@angular/core';\r\nimport {\r\n Component,\r\n computed,\r\n contentChildren,\r\n effect,\r\n forwardRef,\r\n inject,\r\n input,\r\n Input,\r\n SkipSelf,\r\n} from '@angular/core';\r\nimport { distinctUntilChanged, map, Subject } from 'rxjs';\r\n\r\nimport { InsTreeChildren } from '../../directives/tree-children.directive';\r\nimport type { InsTreeAccessor, InsTreeContext, InsTreeController } from '../../misc/tree.interfaces';\r\nimport { INS_TREE_ACCESSOR, INS_TREE_CONTROLLER, INS_TREE_LEVEL, INS_TREE_NODE } from '../../misc/tree.tokens';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { InsExpand } from '../../../expand/expand.component';\r\nimport { PolymorpheusOutlet } from '../../../../service/Polymorpheus/PolymorpheusOutlet';\r\nimport { insProvide } from '../../../../service/provide';\r\nimport { PolymorpheusContent } from '../../../../service/Polymorpheus/content';\r\nimport { INS_COMMON_ICONS } from '../../../../token/common-icons';\r\nimport { INS_MORE_WORD } from '../../../../token/i18n';\r\nimport { InsButton } from '../../../button/button.directive';\r\n\r\n@Component({\r\n \r\n selector: 'ins-tree',\r\n imports: [\r\n PolymorpheusOutlet,\r\n InsExpand,\r\n InsButton\r\n ],\r\n templateUrl: './tree.template.html',\r\n styleUrls: ['./tree.style.less'],\r\n providers: [\r\n insProvide(INS_TREE_NODE, InsTreeItem),\r\n {\r\n provide: INS_TREE_LEVEL,\r\n deps: [[new SkipSelf(), INS_TREE_LEVEL]],\r\n useFactory: (level: number): number => ++level,\r\n },\r\n ],\r\n hostDirectives: [\r\n // {\r\n // directive: InsTreeNode,\r\n // inputs: ['insTreeNode: value']\r\n // }\r\n ],\r\n host: {\r\n role: 'tree',\r\n '[class._expandable]': 'isExpandable()',\r\n },\r\n})\r\nexport class InsTreeItem<T> implements DoCheck, OnDestroy {\r\n\r\n protected readonly nested = contentChildren<QueryList<unknown>>(forwardRef(()=>INS_TREE_NODE));\r\n\r\n private readonly change$ = new Subject<void>();\r\n\r\n\r\n protected readonly directive = inject<InsTreeChildren<T>>(InsTreeChildren, {\r\n optional: true,\r\n });\r\n\r\n public value = input<T>('' as T);\r\n\r\n @Input()\r\n public trackBy: TrackByFunction<T> = (_: number, item: T) => item;\r\n\r\n @Input()\r\n public content: PolymorpheusContent<InsTreeContext<T>> = ({ $implicit }: InsTreeContext<T>) => String($implicit);\r\n\r\n\r\n protected handler = computed(() => this.directive?.childrenHandler() || InsTreeChildren.defaultHandler)\r\n\r\n protected readonly children = toSignal(\r\n this.change$.pipe(\r\n map(() => this.handler()(this.value())),\r\n distinctUntilChanged(),\r\n ), {\r\n initialValue: this.handler()(this.value())\r\n }\r\n )\r\n\r\n \r\n\r\n private readonly controller = inject<InsTreeController<T>>(\r\n forwardRef(() => INS_TREE_CONTROLLER),\r\n );\r\n\r\n private readonly accessor = inject<InsTreeAccessor<T>>(INS_TREE_ACCESSOR, {\r\n optional: true,\r\n });\r\n \r\n protected readonly level = inject<number>(forwardRef(() => INS_TREE_LEVEL));\r\n\r\n\r\n\r\n public readonly expanded = toSignal(\r\n this.change$.pipe(\r\n map(() => this.isExpanded),\r\n distinctUntilChanged(),\r\n ),\r\n { initialValue: this.isExpanded },\r\n );\r\n\r\n public isExpandable = computed(() => !!this.children().length || !!this.nested().length)\r\n\r\n\r\n public get isExpanded(): boolean {\r\n return this.controller.isExpanded(this);\r\n }\r\n\r\n\r\n constructor() {\r\n effect(()=>{\r\n this.accessor?.register(this, this.value())\r\n })\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.accessor?.unregister(this);\r\n }\r\n public ngDoCheck(): void {\r\n this.change$.next()\r\n }\r\n\r\n\r\n protected readonly icons = inject(INS_COMMON_ICONS);\r\n protected readonly more = toSignal(inject(INS_MORE_WORD));\r\n\r\n protected onClick(): void {\r\n this.controller.toggle(this);\r\n }\r\n\r\n \r\n\r\n\r\n \r\n}\r\n","\r\n<!-- <ng-template #template>\r\n <ng-content></ng-content>\r\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: this}\">\r\n {{text}}\r\n </ng-container>\r\n</ng-template>\r\n<ng-container *polymorpheusOutlet=\"itemContent; context: {$implicit: this, template: template}\">\r\n</ng-container> -->\r\n<div class=\"t-item\">\r\n @if (isExpandable()) {\r\n <button\r\n appearance=\"flat\"\r\n size=\"s\"\r\n insIconButton\r\n type=\"button\"\r\n class=\"t-button\"\r\n [class.t-button_expanded]=\"expanded()\"\r\n [iconStart]=\"icons.more\"\r\n [style.border-radius.%]=\"100\"\r\n (click)=\"onClick()\"\r\n >{{more()}}</button>\r\n }\r\n <ng-content></ng-content>\r\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value(), node: this}\">\r\n {{text}}\r\n </ng-container>\r\n</div>\r\n\r\n<ins-expand\r\n role=\"group\"\r\n class=\"t-children\"\r\n [expanded]=\"expanded()\"\r\n>\r\n @if (!!nested().length) {<div><ng-content select=\"ins-tree\" /></div>}\r\n @if (!!children().length) {\r\n @for (child of children(); track trackBy($index, child)) {\r\n <ins-tree\r\n [content]=\"content\"\r\n [trackBy]=\"trackBy\"\r\n [value]=\"child\"\r\n />\r\n }\r\n }\r\n</ins-expand>\r\n\r\n","import {Directive, Input} from '@angular/core';\r\n\r\nimport type {InsTreeAccessor, InsTreeController} from '../misc/tree.interfaces';\r\nimport {INS_TREE_ACCESSOR, INS_TREE_CONTROLLER} from '../misc/tree.tokens';\r\nimport { InsTreeItem } from '../components/tree/tree.component';\r\nimport { insProvide } from '../../../service/provide';\r\nimport { isPresent } from '../../../service/is-present';\r\n\r\n@Directive({\r\n \r\n selector: '[insTreeController][map]',\r\n providers: [\r\n insProvide(INS_TREE_ACCESSOR, InsTreeControllerDirective),\r\n insProvide(INS_TREE_CONTROLLER, InsTreeControllerDirective),\r\n ],\r\n exportAs: 'insTreeController',\r\n})\r\nexport class InsTreeControllerDirective<T>\r\n implements InsTreeController<T>, InsTreeAccessor<T>\r\n{\r\n protected readonly items = new Map<InsTreeItem<T>, T>();\r\n\r\n\r\n @Input('insTreeController')\r\n public fallback = true;\r\n\r\n @Input()\r\n public map = new Map<T, boolean>();\r\n\r\n // @Output()\r\n // public readonly toggled = new EventEmitter<T>();\r\n\r\n public register(item: InsTreeItem<T>, value: T): void {\r\n this.items.set(item, value);\r\n }\r\n\r\n public unregister(item: InsTreeItem<T>): void {\r\n this.items.delete(item);\r\n }\r\n\r\n public isExpanded(item: InsTreeItem<T>): boolean {\r\n const value = this.items.get(item);\r\n return (value && this.map.get(value)) ?? this.fallback;\r\n }\r\n\r\n public toggle(item: InsTreeItem<T>): void {\r\n const value = this.items.get(item);\r\n \r\n\r\n if (!isPresent(value)) {\r\n return;\r\n }\r\n const expanded = this.isExpanded(item);\r\n\r\n // this.toggled.emit(value);\r\n this.map.set(value, !expanded);\r\n\r\n // 待完善\r\n // this.treeNode.update()\r\n }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\n\r\n\r\nimport type {InsTreeController} from '../misc/tree.interfaces';\r\nimport {INS_TREE_CONTROLLER} from '../misc/tree.tokens';\r\nimport { InsTreeItem } from '../components/tree/tree.component';\r\nimport { insProvide } from '../../../service/provide';\r\n\r\n@Directive({\r\n \r\n selector: '[insTreeController]:not([map])',\r\n providers: [insProvide(INS_TREE_CONTROLLER, InsTreeItemController)],\r\n exportAs: 'insTreeController',\r\n})\r\nexport class InsTreeItemController<T> implements InsTreeController<T> {\r\n private readonly map = new WeakMap<InsTreeItem<T>, boolean>();\r\n\r\n @Input('insTreeController')\r\n public fallback = true;\r\n\r\n public isExpanded(item: InsTreeItem<T>): boolean {\r\n return this.map.get(item) ?? this.fallback;\r\n }\r\n\r\n public toggle(item: InsTreeItem<T>): void {\r\n this.map.set(item, !this.isExpanded(item));\r\n }\r\n}\r\n","import {inject, Injectable} from '@angular/core';\r\nimport {map, mergeMap, startWith, Subject, tap} from 'rxjs';\r\n\r\nimport type {InsTreeLoader} from './tree.interfaces';\r\nimport {INS_TREE_LOADER, INS_TREE_LOADING, INS_TREE_START} from './tree.tokens';\r\n\r\n@Injectable()\r\nexport class InsTreeService<T> {\r\n private readonly loading = inject<T>(INS_TREE_LOADING);\r\n private readonly start = inject<T>(INS_TREE_START);\r\n private readonly loader = inject<InsTreeLoader<T>>(INS_TREE_LOADER);\r\n private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\r\n private readonly load$ = new Subject<T>();\r\n\r\n public readonly data$ = this.load$.pipe(\r\n mergeMap((item) =>\r\n this.loader.loadChildren(item).pipe(\r\n tap((children) => this.map.set(item, children)),\r\n map((children) =>\r\n children.filter((item) => !this.loader.hasChildren(item)),\r\n ),\r\n tap((children) => children.forEach((child) => this.map.set(child, []))),\r\n ),\r\n ),\r\n startWith(null),\r\n map(() => this.start),\r\n );\r\n\r\n public getChildren(item: T): readonly T[] {\r\n return this.map.get(item) || [this.loading];\r\n }\r\n\r\n public loadChildren(item: T): void {\r\n if (this.map.get(item)) {\r\n return;\r\n }\r\n\r\n this.map.set(item, [this.loading]);\r\n this.load$.next(item);\r\n }\r\n}\r\n","import { InsTreeItem } from './components/tree/tree.component';\r\nimport {InsTreeChildren} from './directives/tree-children.directive';\r\nimport {InsTreeControllerDirective} from './directives/tree-controller.directive';\r\nimport {InsTreeItemController} from './directives/tree-item-controller.directive';\r\n\r\nexport const InsTree = [\r\n InsTreeItem,\r\n InsTreeChildren,\r\n InsTreeItemController,\r\n InsTreeControllerDirective,\r\n] as const;\r\n","import { FactoryProvider } from \"@angular/core\";\r\nimport { InsContext } from \"../../model\";\r\nimport { createToken, PolymorpheusContent, provideOptions } from \"../../service\";\r\n\r\nexport interface InsTextareaOptions {\r\n min: number;\r\n max: number;\r\n content: PolymorpheusContent<InsContext<string>>;\r\n}\r\n\r\nexport const INS_TEXTAREA_DEFAULT_OPTIONS: InsTextareaOptions = {\r\n min: 3,\r\n max: Infinity,\r\n content: ({ $implicit }:{$implicit:any}) => $implicit,\r\n}\r\n\r\nexport const INS_TEXTAREA_OPTIONS=createToken(INS_TEXTAREA_DEFAULT_OPTIONS)\r\n\r\nexport function insTextareaOptionsProvider(\r\n options: Partial<InsTextareaOptions>,\r\n): FactoryProvider {\r\n return provideOptions(INS_TEXTAREA_OPTIONS, options, INS_TEXTAREA_DEFAULT_OPTIONS);\r\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, inject, input, TemplateRef, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { injectElement, PolymorpheusOutlet } from \"../../service\";\r\nimport { INS_TEXTAREA_OPTIONS, InsTextareaOptions } from \"./textarea.options\";\r\nimport { InsTextFieldController } from \"../textfield\";\r\n\r\n@Component({\r\n selector: 'textarea[insTextarea]',\r\n imports: [PolymorpheusOutlet],\r\n templateUrl: './textarea.template.html',\r\n styleUrl: './textarea.style.less',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [\r\n {\r\n directive: InsTextFieldController,\r\n inputs: ['stringify'],\r\n }\r\n ],\r\n host: {\r\n ngSkipHydration: 'true',\r\n }\r\n})\r\nexport class InsTextarea implements AfterViewInit {\r\n @ViewChild(TemplateRef, {static: true})\r\n private readonly template?: TemplateRef<any>;\r\n \r\n private readonly vcr = inject(ViewContainerRef);\r\n protected readonly el = injectElement<HTMLTextAreaElement>()\r\n\r\n private readonly options = inject(INS_TEXTAREA_OPTIONS);\r\n\r\n public min = input(this.options.min);\r\n public max = input(this.options.max);\r\n public content = input<InsTextareaOptions['content']>(this.options.content);\r\n\r\n public ngAfterViewInit(): void {\r\n if (this.template) {\r\n this.vcr.createEmbeddedView(this.template);\r\n }\r\n }\r\n}","<ng-template #template>\r\n <span\r\n #text\r\n aria-hidden=\"true\"\r\n class=\"t-ghost\"\r\n [style.max-height.em]=\"1.25 * max()\"\r\n [style.min-height.em]=\"1.25 * min()\"\r\n >\r\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: el.value}\">{{ text }}</ng-container>\r\n </span>\r\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n type DoCheck,\r\n inject,\r\n input,\r\n signal,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { InsContext } from '../../model';\r\nimport { insProvide, POLYMORPHEUS_CONTEXT, PolymorpheusComponent } from '../../service';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, Validators } from '@angular/forms';\r\nimport { insTextareaOptionsProvider } from './textarea.options';\r\nimport { INS_TEXTFIELD_OPTIONS, InsTextFieldController } from '../textfield';\r\n\r\n@Component({\r\n template: `\r\n <span [textContent]=\"context.$implicit.slice(0, limit())\"></span>\r\n <span\r\n style=\"background: linear-gradient(transparent 0.25rem, var(--ins-status-negative-pale) 0.25rem, var(--ins-status-negative-pale) 100%)\"\r\n [textContent]=\"context.$implicit.slice(limit()) || ''\"\r\n ></span>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InsTextareaLimitComponent {\r\n protected readonly limit = inject(InsTextareaLimit).limit;\r\n protected readonly context = inject<InsContext<string>>(POLYMORPHEUS_CONTEXT);\r\n}\r\n\r\n@Component({\r\n template: '{{ length() }} / {{ limit() }}',\r\n styleUrl: './textarea-limit.style.less',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InsTextareaCounterComponent {\r\n public readonly limit = signal(0);\r\n public readonly length = signal(0);\r\n}\r\n\r\nconst COMPONENT = new PolymorpheusComponent(InsTextareaLimitComponent);\r\n\r\n@Directive({\r\n selector: 'textarea[insLimit]',\r\n providers: [\r\n insProvide(NG_VALIDATORS, InsTextareaLimit, true),\r\n insTextareaOptionsProvider({content: COMPONENT}),\r\n ],\r\n host: {\r\n '[style.border-block-end-width.rem]': 'size === \"l\" ? 1.875 : 1.75',\r\n },\r\n})\r\nexport class InsTextareaLimit implements Validator, DoCheck {\r\n private readonly textfield = inject(InsTextFieldController);\r\n private readonly ref = inject(ViewContainerRef).createComponent(\r\n InsTextareaCounterComponent,\r\n );\r\n\r\n public readonly size = inject(INS_TEXTFIELD_OPTIONS).size;\r\n public readonly limit = input(0, {alias: 'insLimit'});\r\n\r\n public ngDoCheck(): void {\r\n this.ref.instance.length.set(this.textfield.getValue().length);\r\n this.ref.instance.limit.set(this.limit());\r\n }\r\n\r\n public validate(control: AbstractControl): ValidationErrors | null {\r\n return Validators.maxLength(this.limit())(control);\r\n }\r\n}\r\n","import { Injectable, NgZone } from \"@angular/core\";\r\nimport { EventManager, EventManagerPlugin } from \"@angular/platform-browser\";\r\n\r\n@Injectable()\r\nexport class SilentEventPlugin extends EventManagerPlugin {\r\n\r\n public readonly modifier = '.zoneless';\r\n public static ngZone?: NgZone;\r\n\r\n constructor(){\r\n super(null)\r\n }\r\n public supports(event: string): boolean {\r\n return event.includes(this.modifier)\r\n }\r\n public addEventListener(element: HTMLElement, event: string, handler: Function): Function {\r\n SilentEventPlugin.ngZone = this.manager.getZone();\r\n return SilentEventPlugin.ngZone.runOutsideAngular(() =>\r\n this.manager.addEventListener(element, this.unwrap(event), handler)\r\n )\r\n }\r\n\r\n protected unwrap(event: string): string {\r\n return event\r\n .split('.')\r\n .filter((v) => !this.modifier.includes(v))\r\n .join('.');\r\n}\r\n}","import { Injectable, NgZone } from \"@angular/core\";\r\nimport { EventManager, EventManagerPlugin } from \"@angular/platform-browser\";\r\n\r\n@Injectable()\r\nexport class OptionsEventPlugin extends EventManagerPlugin {\r\n\r\n public readonly modifier = 'capture.once.passive';\r\n\r\n constructor(){\r\n super(null)\r\n }\r\n public supports(event: string): boolean {\r\n return event.includes('.') && !this.unwrap(event).includes('.');\r\n }\r\n public addEventListener(\r\n element: HTMLElement,\r\n event: string,\r\n handler: EventListener,\r\n): Function {\r\n const unwrap = this.unwrap(event);\r\n const capture = event.includes('.capture');\r\n\r\n element.addEventListener(unwrap, handler, {\r\n capture,\r\n once: event.includes('.once'),\r\n passive: event.includes('.passive'),\r\n });\r\n\r\n return () => element.removeEventListener(unwrap, handler, {capture});\r\n}\r\n\r\n protected unwrap(event: string): string {\r\n return event\r\n .split('.')\r\n .filter((v) => !this.modifier.includes(v))\r\n .join('.');\r\n}\r\n}","import { Injectable, NgZone } from \"@angular/core\";\r\nimport { EventManager, EventManagerPlugin } from \"@angular/platform-browser\";\r\n\r\n@Injectable()\r\nexport class PreventEventPlugin extends EventManagerPlugin {\r\n\r\n public readonly modifier = '.prevent';\r\n\r\n constructor(){\r\n super(null)\r\n }\r\n public supports(event: string): boolean {\r\n return event.includes(this.modifier)\r\n }\r\n public addEventListener(\r\n element: HTMLElement,\r\n event: string,\r\n handler: Function,\r\n): Function {\r\n return this.manager.addEventListener(\r\n element,\r\n this.unwrap(event),\r\n (event: Event): void => {\r\n event.preventDefault();\r\n handler(event);\r\n },\r\n );\r\n}\r\n\r\n protected unwrap(event: string): string {\r\n return event\r\n .split('.')\r\n .filter((v) => !this.modifier.includes(v))\r\n .join('.');\r\n}\r\n}","import { Injectable, NgZone } from \"@angular/core\";\r\nimport { EventManager, EventManagerPlugin } from \"@angular/platform-browser\";\r\n\r\n@Injectable()\r\nexport class SelfEventPlugin extends EventManagerPlugin {\r\n\r\n public readonly modifier = '.self';\r\n\r\n constructor(){\r\n super(null)\r\n }\r\n public supports(event: string): boolean {\r\n return event.includes(this.modifier)\r\n }\r\n public addEventListener(\r\n element: HTMLElement,\r\n event: string,\r\n handler: Function,\r\n): Function {\r\n return this.manager.addEventListener(\r\n element,\r\n this.unwrap(event),\r\n (event: Event) => {\r\n if (event.target === event.currentTarget) {\r\n handler(event);\r\n }\r\n },\r\n );\r\n}\r\n\r\n protected unwrap(event: string): string {\r\n return event\r\n .split('.')\r\n .filter((v) => !this.modifier.includes(v))\r\n .join('.');\r\n}\r\n}","import { Injectable, NgZone } from \"@angular/core\";\r\nimport { EventManager, EventManagerPlugin } from \"@angular/platform-browser\";\r\n\r\n@Injectable()\r\nexport class StopEventPlugin extends EventManagerPlugin {\r\n\r\n public readonly modifier = '.stop';\r\n\r\n constructor(){\r\n super(null)\r\n }\r\n public supports(event: string): boolean {\r\n return event.includes(this.modifier)\r\n }\r\n public addEventListener(\r\n element: HTMLElement,\r\n event: string,\r\n handler: Function,\r\n): Function {\r\n return this.manager.addEventListener(\r\n element,\r\n this.unwrap(event),\r\n (event: Event): void => {\r\n event.stopPropagation();\r\n handler(event);\r\n },\r\n );\r\n}\r\n\r\n protected unwrap(event: string): string {\r\n return event\r\n .split('.')\r\n .filter((v) => !this.modifier.includes(v))\r\n .join('.');\r\n}\r\n}","import type {Provider} from '@angular/core';\nimport {EVENT_MANAGER_PLUGINS} from '@angular/platform-browser';\n\n\nimport {SilentEventPlugin} from '../plugins/silent.plugin';\nimport { OptionsEventPlugin } from '../plugins/options.plugin';\nimport { PreventEventPlugin } from '../plugins/prevent.plugin';\nimport { SelfEventPlugin } from '../plugins/self.plugin';\nimport { StopEventPlugin } from '../plugins/stop.plugin';\n\nconst PLUGINS = [\n SilentEventPlugin,\n OptionsEventPlugin,\n PreventEventPlugin,\n SelfEventPlugin,\n StopEventPlugin\n];\n\nexport const NG_EVENT_PLUGINS: Provider[] = PLUGINS.map((useClass) => ({\n provide: EVENT_MANAGER_PLUGINS,\n multi: true,\n useClass,\n}));\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styleUrls: ['./card.styles.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-card',\r\n },\r\n})\r\nclass InsCardStyles {}\r\n\r\n\r\n@Directive({\r\n \r\n selector: '[insCardLarge]',\r\n host: {\r\n insCardLarge: '',\r\n '[attr.data-space]': 'space()',\r\n },\r\n})\r\nexport class InsCardLarge {\r\n protected readonly nothing = insWithStyles(InsCardStyles);\r\n\r\n public space = input('normal',{\r\n alias:'insCardLarge',\r\n transform: (value:'' | 'compact' | 'normal'| 'large') => value===''?'normal': value,\r\n });\r\n}","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { insButtonOptionsProvider } from '../../components/button/button.options';\r\nimport { insAvatarOptionsProvider } from '../../components/avatar/avatar.options';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styleUrls: ['./cell.styles.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-cell',\r\n },\r\n})\r\nclass InsCellStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insCell]:not(ng-template)',\r\n providers: [\r\n insAvatarOptionsProvider({size: 'm'}),\r\n insButtonOptionsProvider({size: 's'}),\r\n ],\r\n host: {\r\n insCell: '',\r\n '[attr.data-size]': 'size()',\r\n },\r\n})\r\nexport class InsCell {\r\n protected readonly nothing = insWithStyles(InsCellStyles);\r\n\r\n public size = input('m', {\r\n alias: 'insCell',\r\n transform: (value:'s'|'m'| 'l'|'') => value===''? 'm' : value\r\n })\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { insButtonOptionsProvider } from '../../components/button/button.options';\r\nimport { insAvatarOptionsProvider } from '../../components/avatar/avatar.options';\r\nimport { insWithStyles } from '../../service/with-styles';\r\n\r\n@Component({\r\n \r\n template: '',\r\n styleUrls: ['./header.styles.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-header',\r\n },\r\n})\r\nclass InsHeaderStyles {}\r\n\r\n@Directive({\r\n \r\n selector: '[insHeader]',\r\n providers: [\r\n insAvatarOptionsProvider({size: 's'}),\r\n insButtonOptionsProvider({size: 'm'})\r\n ],\r\n host: {\r\n insHeader: '',\r\n // '[attr.data-size]': 'size()',\r\n },\r\n})\r\nexport class InsHeader {\r\n protected readonly nothing = insWithStyles(InsHeaderStyles);\r\n\r\n // public size = input('s', {\r\n // alias: 'insHeader',\r\n // transform: (value:'xs'|'s'|'m'|'l' |'') => value===''? 's' : value\r\n // })\r\n}\r\n","import {ChangeDetectionStrategy, Component, contentChild} from '@angular/core';\r\nimport { InsTextfieldComponent } from '../../../components';\r\n\r\n@Component({\r\n \r\n selector: 'th[insTd], td[insTd]',\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./td.style.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class._editable]': 'textfield()',\r\n },\r\n})\r\nexport class InsTableTd {\r\n protected readonly textfield = contentChild(InsTextfieldComponent<unknown>);\r\n}\r\n","import {DOCUMENT} from '@angular/common';\r\nimport {Directive, inject} from '@angular/core';\r\nimport {distinctUntilChanged, fromEvent, map, switchMap, takeUntil, tap} from 'rxjs';\r\nimport { injectElement } from '../../service';\r\nimport { EMPTY_CLIENT_RECT } from '../../model';\r\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\r\n\r\n@Directive({\r\n \r\n selector: '[insResized]',\r\n})\r\nexport class InsTableResized {\r\n private readonly doc = inject(DOCUMENT);\r\n private readonly el = injectElement();\r\n\r\n private readonly insResized$ = fromEvent(this.el, 'mousedown').pipe(\r\n tap((event) => event.preventDefault()),\r\n switchMap(() => {\r\n const {width, right} =\r\n this.el.closest('th')?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\r\n\r\n return fromEvent<any>(this.doc, 'mousemove').pipe(\r\n distinctUntilChanged(),\r\n map(({clientX}: MouseEvent) => width + clientX - right),\r\n takeUntil(fromEvent(this.doc, 'mouseup')),\r\n );\r\n }),\r\n );\r\n\r\n public readonly insResized = outputFromObservable(this.insResized$)\r\n}\r\n","import type {Provider} from '@angular/core';\r\nimport { createToken, provideOptions } from '../service';\r\n\r\nexport interface InsTableOptions {\r\n readonly direction: -1 | 1;\r\n readonly requiredSort: boolean;\r\n readonly open: boolean;\r\n readonly resizable: boolean;\r\n readonly size: 's' | 'm' | 'l';\r\n readonly sortIcons: {\r\n readonly asc: string;\r\n readonly desc: string;\r\n readonly off: string;\r\n };\r\n readonly sticky: boolean;\r\n}\r\n\r\nexport const INS_TABLE_DEFAULT_OPTIONS: InsTableOptions = {\r\n sticky: false,\r\n resizable: false,\r\n open: true,\r\n size: 'm',\r\n direction: 1,\r\n requiredSort: false,\r\n sortIcons: {\r\n asc: 'chevron-up',\r\n desc: 'chevron-down',\r\n off: 'chevrons-up-down',\r\n },\r\n};\r\n\r\nexport const INS_TABLE_OPTIONS = createToken(INS_TABLE_DEFAULT_OPTIONS);\r\n\r\nexport function insTableOptionsProvider(options: Partial<InsTableOptions>): Provider {\r\n return provideOptions(INS_TABLE_OPTIONS, options, INS_TABLE_DEFAULT_OPTIONS);\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, input, signal } from \"@angular/core\";\r\nimport { InsTableResized } from \"../../directive/resized.directive\";\r\nimport { INS_TABLE_OPTIONS } from \"../../table.options\";\r\n\r\n@Component({\r\n \r\n selector: 'th[insTh]',\r\n templateUrl: './th.template.html',\r\n styleUrls: ['./th.style.less'],\r\n imports: [InsTableResized],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[style.min-width.px]': 'width() || minWidth()',\r\n '[style.width.px]': 'width() || minWidth()',\r\n '[style.max-width.px]': 'width() || maxWidth()',\r\n '[class._sticky]': 'sticky()',\r\n }\r\n\r\n})\r\nexport class InsTableTh<T extends Partial<Record<keyof T, any>>> {\r\n\r\n private readonly options = inject(INS_TABLE_OPTIONS);\r\n\r\n protected width = signal<number | null>(null);\r\n protected onResized(width: number): void {\r\n this.width.set(Math.min(Math.max(width, this.minWidth()), this.maxWidth()));\r\n }\r\n\r\n public resizable = input<boolean>(this.options.resizable);\r\n public sticky = input<boolean>(this.options.sticky);\r\n\r\n public readonly minWidth = input(-Infinity);\r\n public readonly maxWidth = input(Infinity);\r\n \r\n}","<ng-content />\r\n@if(resizable()){\r\n<div\r\n class=\"t-bar\"\r\n (insResized)=\"onResized($event)\"\r\n></div>\r\n}\r\n","import { ElementRef, inject, InjectionToken } from \"@angular/core\";\r\n\r\nexport const INTERSECTION_ROOT = new InjectionToken<ElementRef<Element>>(\r\n '[INTERSECTION_ROOT]',\r\n);\r\n\r\nexport const INTERSECTION_ROOT_MARGIN_DEFAULT = '0px 0px 0px 0px';\r\n\r\n\r\n\r\nexport const INTERSECTION_ROOT_MARGIN = new InjectionToken<string>(\r\n '[INTERSECTION_ROOT_MARGIN]',\r\n {\r\n providedIn: 'root',\r\n factory: () => INTERSECTION_ROOT_MARGIN_DEFAULT,\r\n },\r\n);\r\n\r\nexport function rootMarginFactory(): string {\r\n return (\r\n inject(ElementRef).nativeElement.getAttribute('intersectionRootMargin') ||\r\n INTERSECTION_ROOT_MARGIN_DEFAULT\r\n );\r\n}\r\n\r\nexport const INTERSECTION_THRESHOLD_DEFAULT = 0;\r\n\r\nexport const INTERSECTION_THRESHOLD = new InjectionToken<number[] | number>(\r\n '[INTERSECTION_THRESHOLD]',\r\n {\r\n providedIn: 'root',\r\n factory: () => INTERSECTION_THRESHOLD_DEFAULT,\r\n },\r\n);\r\n\r\nexport function thresholdFactory(): number[] | number {\r\n return (\r\n inject(ElementRef)\r\n .nativeElement.getAttribute('intersectionThreshold')\r\n ?.split(',')\r\n .map(parseFloat) || INTERSECTION_THRESHOLD_DEFAULT\r\n );\r\n}","export const SafeObserver =\n typeof IntersectionObserver !== 'undefined'\n ? IntersectionObserver\n : class implements IntersectionObserver {\n public readonly root = null;\n public readonly rootMargin = '';\n public readonly thresholds = [];\n public observe(): void {}\n public unobserve(): void {}\n public disconnect(): void {}\n public takeRecords(): IntersectionObserverEntry[] {\n return [];\n }\n };\n","import {ElementRef, inject, Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport { INTERSECTION_ROOT, INTERSECTION_ROOT_MARGIN, INTERSECTION_THRESHOLD } from './intersection-observer.options';\r\nimport { SafeObserver } from './safe-observer';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class InsIntersectionObserverService extends Observable<IntersectionObserverEntry[]> {\r\n private readonly nativeElement: Element = inject(ElementRef).nativeElement;\r\n private readonly rootMargin = inject(INTERSECTION_ROOT_MARGIN);\r\n private readonly threshold = inject(INTERSECTION_THRESHOLD);\r\n private readonly root: Element | null =\r\n inject(INTERSECTION_ROOT, {optional: true})?.nativeElement ?? null;\r\n\r\n constructor() {\r\n super((subscriber) => {\r\n const observer = new SafeObserver(\r\n (entries) => {\r\n subscriber.next(entries);\r\n },\r\n {\r\n root: this.root,\r\n rootMargin: this.rootMargin,\r\n threshold: this.threshold,\r\n },\r\n );\r\n\r\n observer.observe(this.nativeElement);\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n });\r\n }\r\n}\r\n","import {Directive, inject} from '@angular/core';\r\nimport {toSignal} from '@angular/core/rxjs-interop';\r\nimport {catchError, distinctUntilChanged, EMPTY, map} from 'rxjs';\r\nimport { InsIntersectionObserverService } from '../../webapi/intersection-observer/intersection-observer.service';\r\nimport { INTERSECTION_THRESHOLD } from '../../webapi/intersection-observer/intersection-observer.options';\r\n\r\n@Directive({\r\n \r\n selector: 'ins-stuck:never',\r\n providers: [\r\n InsIntersectionObserverService,\r\n {\r\n provide: INTERSECTION_THRESHOLD,\r\n useValue: [0, 1],\r\n },\r\n ],\r\n host: {'[class._stuck]': 'stuck()'},\r\n})\r\nexport class InsStuck {\r\n protected readonly stuck = toSignal(\r\n inject(InsIntersectionObserverService).pipe(\r\n map((entries) => (entries[entries.length - 1]?.intersectionRatio ?? 0) < 1),\r\n distinctUntilChanged(),\r\n catchError(() => EMPTY), // SSR\r\n ),\r\n );\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, inject, Input, input, Output, signal, ViewEncapsulation } from \"@angular/core\";\r\nimport { INS_TABLE_OPTIONS } from \"../table.options\";\r\nimport { InsStuck } from \"./stuck.directive\";\r\nimport { insProvide, insWithStyles } from \"../../service\";\r\nimport { INS_TEXTFIELD_OPTIONS, insButtonOptionsProvider, insChipOptionsProvider, InsTextfieldOptions } from \"../../components\";\r\nimport { INTERSECTION_ROOT_MARGIN } from \"../../webapi/intersection-observer/intersection-observer.options\";\r\n\r\n@Component({\r\n \r\n template: '',\r\n styleUrls: ['./table.style.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'ins-table',\r\n },\r\n})\r\nclass InsTableStyles {}\r\n\r\n@Directive({\r\n \r\n selector: 'table[insTable]',\r\n providers:[\r\n {\r\n provide: INTERSECTION_ROOT_MARGIN,\r\n useValue: '10000px 10000px 10000px 0px',\r\n },\r\n // insProvide(INS_TEXTFIELD_OPTIONS, InsTableDirective),\r\n insChipOptionsProvider({size: 'xs', appearance: 'neutral'}),\r\n insButtonOptionsProvider({size: 's'})\r\n ],\r\n hostDirectives: [InsStuck],\r\n host: {\r\n '[attr.data-size]': 'size()',\r\n},\r\n})\r\nexport class InsTableDirective<T extends Partial<Record<keyof T, any>>> implements AfterViewInit {\r\n\r\n private readonly options = inject(INS_TABLE_OPTIONS)\r\n private readonly cdr = inject(ChangeDetectorRef)\r\n\r\n protected readonly nothing = insWithStyles(InsTableStyles)\r\n\r\n public columns = input<readonly (string | keyof T)[]>([])\r\n \r\n\r\n public readonly appearance = signal('table');\r\n public readonly size = signal(this.options.size);\r\n public readonly cleaner = signal(false);\r\n\r\n @Input('size')\r\n public set sizeSetter(size: 's' | 'm' | 'l'){\r\n this.size.set(size);\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n // this.cdr.detectChanges();\r\n }\r\n}","import {Directive, inject, Input, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n \r\n selector: '[insHead]',\r\n})\r\nexport class InsTableHead<T extends Partial<Record<keyof T, any>>> {\r\n @Input({required: true})\r\n public insHead: string | keyof T = '';\r\n\r\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\r\n}\r\n","import { NgTemplateOutlet } from \"@angular/common\";\r\nimport { AfterContentInit, ChangeDetectionStrategy, Component, computed, contentChildren, effect, forwardRef, inject } from \"@angular/core\";\r\nimport { InsTableTh } from \"../th/th.component\";\r\nimport { InsTableDirective } from \"../../directive/table.directive\";\r\nimport { InsTableHead } from \"../../directive/head.directive\";\r\n\r\n@Component({\r\n \r\n selector: 'tr[insThGroup]',\r\n imports: [NgTemplateOutlet, InsTableTh],\r\n templateUrl: './th-group.template.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n // providers: [TUI_TABLE_PROVIDER],\r\n})\r\nexport class InsTableThGroup<T extends Partial<Record<keyof T, any>>>{\r\n protected readonly th = contentChildren(forwardRef(() => InsTableTh))\r\n protected readonly heads = contentChildren(forwardRef(() => InsTableHead))\r\n protected readonly table = inject(forwardRef(()=>InsTableDirective))\r\n\r\n protected headsSignal = computed(()=>\r\n this.heads().reduce((record, item)=> ({...record, [item.insHead]: item}), {} as Record<keyof T, InsTableHead<T>>)\r\n )\r\n}","<ng-content />\r\n@if(headsSignal()){\r\n @for(key of table.columns(); track key){\r\n <ng-container\r\n [ngTemplateOutlet]=\"(headsSignal()[key] && headsSignal()[key].template) || plain\"\r\n [ngTemplateOutletContext]=\"{$implicit: key}\"\r\n />\r\n }\r\n <ng-template\r\n #plain\r\n let-key\r\n >\r\n @if(!th().length && !heads().length){\r\n <th\r\n insTh\r\n >\r\n {{ key.toString() }}\r\n </th>\r\n }\r\n </ng-template>\r\n}","import {Directive, inject, input, Input, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n \r\n selector: 'ng-template[insCell]',\r\n})\r\nexport class InsTableCell {\r\n public insCell = input('');\r\n\r\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\r\n}\r\n","import {contentChildren, Directive, forwardRef, input} from '@angular/core';\r\nimport { InsTableTr } from '../components/tr/tr.component';\r\n\r\n\r\n// @Component({\r\n// \r\n// template: '',\r\n// styleUrls: ['./tbody.style.less'],\r\n// encapsulation: ViewEncapsulation.None,\r\n// changeDetection: ChangeDetectionStrategy.OnPush,\r\n// host: {\r\n// },\r\n// })\r\n// class Styles {}\r\n\r\n@Directive({\r\n \r\n selector: 'tbody[insTbody]'\r\n})\r\nexport class InsTableTbody <T extends Partial<Record<keyof T, any>>> {\r\n\r\n public readonly rows = contentChildren(forwardRef(()=>InsTableTr))\r\n public data = input<readonly T[]>([]);\r\n\r\n \r\n}\r\n","import { JsonPipe, NgTemplateOutlet } from \"@angular/common\";\r\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, effect, forwardRef, inject} from \"@angular/core\";\r\nimport { InsTableCell } from \"../../directive/cell.directive\";\r\nimport { InsTableDirective } from \"../../directive/table.directive\";\r\nimport { InsTableTd } from \"../td/td.component\";\r\nimport { InsTableTbody } from \"../../directive/tbody.directive\";\r\n\r\n@Component({\r\n \r\n selector: 'tr[insTr]',\r\n imports: [\r\n NgTemplateOutlet,\r\n InsTableTd\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './tr.template.html',\r\n host:{\r\n ngSkipHydration: 'true'\r\n }\r\n})\r\nexport class InsTableTr<T extends Partial<Record<keyof T, any>>>{\r\n\r\n private readonly cells = contentChildren<InsTableCell>(forwardRef(() => InsTableCell))\r\n\r\n protected readonly items = computed(()=>this.cells().reduce((record,item)=>({...record, [item.insCell()]:item}),\r\n {} as Record<string | keyof T, InsTableCell>))\r\n\r\n protected readonly table = inject<InsTableDirective<T>>(forwardRef(() => InsTableDirective))\r\n private readonly body = inject<InsTableTbody<T>>(forwardRef(() => InsTableTbody));\r\n\r\n protected readonly item = computed<any>(()=>\r\n this.body.data()[this.body.rows().findIndex((row) => row === this)] as Record<\r\n string | keyof T,\r\n unknown\r\n >\r\n )\r\n}","@if (items(); as items) {\r\n @for (key of table.columns(); track key) {\r\n <ng-container [ngTemplateOutlet]=\"(items[key] && items[key].template) || plain\">\r\n <ng-template #plain>\r\n <td insTd>\r\n {{ item()[key] }}\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n }\r\n}@else {\r\n <td></td>\r\n}\r\n<ng-content />","import {Directive} from '@angular/core';\r\nimport { InsStuck } from './stuck.directive';\r\nimport { INTERSECTION_ROOT_MARGIN } from '../../webapi/intersection-observer/intersection-observer.options';\r\n\r\n\r\n\r\n@Directive({\r\n \r\n selector: 'thead[insThead]',\r\n providers: [\r\n {\r\n provide: INTERSECTION_ROOT_MARGIN,\r\n useValue: '0px 10000px 10000px 10000px',\r\n },\r\n ],\r\n hostDirectives: [InsStuck],\r\n})\r\nexport class InsTableThead {}\r\n","\r\nimport { InsTableTd } from \"./components/td/td.component\";\r\nimport { InsTableThGroup } from \"./components/th-group/th-group.component\";\r\nimport { InsTableTh } from \"./components/th/th.component\";\r\nimport { InsTableTr } from \"./components/tr/tr.component\";\r\nimport { InsTableCell } from \"./directive/cell.directive\";\r\nimport { InsTableHead } from \"./directive/head.directive\";\r\nimport { InsTableResized } from \"./directive/resized.directive\";\r\nimport { InsTableDirective } from \"./directive/table.directive\";\r\nimport { InsTableTbody } from \"./directive/tbody.directive\";\r\nimport { InsTableThead } from \"./directive/thead.directive\";\r\n\r\n\r\nexport const InsTable = [\r\n InsTableDirective,\r\n // InsTableCaption,\r\n InsTableTbody,\r\n InsTableThGroup,\r\n InsTableTh,\r\n InsTableTd,\r\n InsTableTr,\r\n InsTableCell,\r\n InsTableHead,\r\n InsTableThead,\r\n // InsTableSortBy,\r\n // InsTableSortable,\r\n InsTableResized,\r\n // InsTableSortPipe,\r\n // InsTableDirectionOrder,\r\n] as const;\r\n","import {isPlatformServer} from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n type ElementRef,\r\n inject,\r\n model,\r\n PLATFORM_ID,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {map, of, Subject, switchMap, timer} from 'rxjs';\r\nimport { injectElement, InsPresent } from '../../../service';\r\nimport { INS_TABLE_OPTIONS } from '../../table.options';\r\n\r\n\r\n@Component({\r\n selector: 'ins-table-expand',\r\n templateUrl: './table-expand.template.html',\r\n styleUrl: './table-expand.style.less',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [\r\n {\r\n directive: InsPresent,\r\n outputs: ['insPresent'],\r\n },\r\n ],\r\n host: {\r\n ngSkipHydration: 'true',\r\n '(insPresent)': 'visible$.next($event)',\r\n },\r\n})\r\nexport class InsTableExpand {\r\n private readonly content = viewChild<ElementRef<HTMLElement>>('content');\r\n\r\n private readonly el = injectElement();\r\n private readonly server = isPlatformServer(inject(PLATFORM_ID));\r\n\r\n protected readonly transitioning = signal(false);\r\n protected readonly contentHeight = computed((_ = this.expanded()) =>\r\n this.update(this.content()),\r\n );\r\n\r\n protected readonly visible$ = new Subject<boolean>();\r\n protected readonly sub = this.visible$\r\n .pipe(\r\n switchMap((v) => (v ? timer(500).pipe(map(() => v)) : of(v))),\r\n takeUntilDestroyed(),\r\n )\r\n .subscribe((visible) => this.el.classList.toggle('_visible', visible));\r\n\r\n public readonly expanded = model(inject(INS_TABLE_OPTIONS).open);\r\n protected readonly transitioningEffect = effect((_, __ = this.expanded()) =>\r\n this.transitioning.set(true),\r\n );\r\n\r\n public toggle(): void {\r\n this.expanded.set(!this.expanded());\r\n }\r\n\r\n private update(content: ElementRef<HTMLElement> | undefined): number {\r\n if (!content || this.server) {\r\n return 0;\r\n }\r\n\r\n const el = content.nativeElement;\r\n\r\n el.style.setProperty('display', 'block');\r\n\r\n const height = el.getBoundingClientRect().height;\r\n\r\n el.style.removeProperty('display');\r\n\r\n return height;\r\n }\r\n}\r\n","<div\r\n #content\r\n class=\"t-content\"\r\n [class.t-content_open]=\"expanded() && !transitioning()\"\r\n>\r\n <ng-content />\r\n</div>\r\n\r\n<div\r\n class=\"t-filler\"\r\n [class.t-filler_open]=\"expanded()\"\r\n [style.--t-height.px]=\"contentHeight()\"\r\n (animationcancel)=\"transitioning.set(false)\"\r\n (animationend)=\"transitioning.set(false)\"\r\n (animationstart)=\"transitioning.set(true)\"\r\n></div>\r\n","import {computed, Directive, type Signal, signal} from '@angular/core';\r\n\r\nimport {type InsCheckboxRowDirective} from './checkbox-row.directive';\r\nimport { insFallbackValueProvider } from '../../../token/fallback-value';\r\nimport { InsControl } from '../../../service/control/control';\r\nimport { insArrayToggle } from '../../../service/array-toggle';\r\n\r\n@Directive({\r\n selector: '[insTable][ngModel],[insTable][formControl],[insTable][formControlName]',\r\n providers: [insFallbackValueProvider([])],\r\n})\r\nexport class InsTableControlDirective<T> extends InsControl<readonly T[]> {\r\n private readonly children = signal<readonly InsCheckboxRowDirective<T>[]>([]);\r\n\r\n public readonly checked: Signal<boolean> = computed(\r\n () =>\r\n !!this.children().length &&\r\n this.children().every((i) => this.value().includes(i.insCheckboxRow())),\r\n );\r\n\r\n public readonly indeterminate: Signal<boolean> = computed(\r\n () => !!this.value().length && !this.checked(),\r\n );\r\n\r\n public toggleAll(): void {\r\n this.onChange(\r\n this.checked() ? [] : this.children().map((i) => i.insCheckboxRow()),\r\n );\r\n }\r\n\r\n public process(checkbox: InsCheckboxRowDirective<T>): void {\r\n this.children.update((children) => insArrayToggle(children, checkbox));\r\n }\r\n}\r\n","import {\r\n computed,\r\n Directive,\r\n inject,\r\n input,\r\n type OnDestroy,\r\n type OnInit,\r\n} from '@angular/core';\r\nimport {NgControl, NgModel} from '@angular/forms';\r\nimport { InsTableControlDirective } from './table-control.directive';\r\nimport { insArrayToggle } from '../../../service/array-toggle';\r\n\r\n\r\n@Directive({\r\n selector: '[insCheckbox][insCheckboxRow]',\r\n providers: [{provide: NgControl, useClass: NgModel}],\r\n host: {\r\n '[attr.checked]': 'checked()',\r\n '(change)': 'onChange()',\r\n },\r\n})\r\nexport class InsCheckboxRowDirective<T> implements OnInit, OnDestroy {\r\n private readonly control = inject(NgControl);\r\n private readonly parent: InsTableControlDirective<T> = inject(\r\n InsTableControlDirective,\r\n );\r\n\r\n protected readonly checked = computed((checked = this.parent\r\n .value()\r\n .includes(this.insCheckboxRow())) => {\r\n setTimeout(() => this.control.control?.setValue(checked));\r\n\r\n return checked;\r\n });\r\n\r\n public readonly insCheckboxRow = input.required<T>();\r\n\r\n public ngOnInit(): void {\r\n this.parent.process(this);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.parent.process(this);\r\n this.parent.onChange(\r\n this.parent.value().filter((item) => item !== this.insCheckboxRow()),\r\n );\r\n }\r\n\r\n protected onChange(): void {\r\n this.parent.onChange(insArrayToggle(this.parent.value(), this.insCheckboxRow()));\r\n }\r\n}\r\n","import {Directive, effect, inject} from '@angular/core';\r\nimport {NgControl, NgModel} from '@angular/forms';\r\n\r\nimport {InsTableControlDirective} from './table-control.directive';\r\nimport { injectElement } from '../../../service';\r\n\r\n@Directive({\r\n selector: '[insCheckbox][insCheckboxTable]',\r\n providers: [{provide: NgControl, useClass: NgModel}],\r\n host: {'(change)': 'parent.toggleAll()'},\r\n})\r\nexport class InsCheckboxTableDirective {\r\n private readonly el = injectElement<HTMLInputElement>();\r\n private readonly control = inject(NgControl);\r\n\r\n protected readonly parent = inject(InsTableControlDirective);\r\n protected readonly update = effect(() => {\r\n const indeterminate = this.parent.indeterminate();\r\n const checked = this.parent.checked();\r\n\r\n this.el.indeterminate = indeterminate;\r\n this.el.checked = checked;\r\n this.control.control?.setValue(indeterminate ? null : checked);\r\n });\r\n}\r\n","import { InsCheckboxRowDirective } from \"./checkbox-row.directive\";\r\nimport { InsCheckboxTableDirective } from \"./checkbox-table.directive\";\r\nimport { InsTableControlDirective } from \"./table-control.directive\";\r\n\r\n\r\nexport const InsTableControl = [\r\n InsCheckboxRowDirective,\r\n InsCheckboxTableDirective,\r\n InsTableControlDirective,\r\n] as const;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.InsIcons","i1.InsTransitioned","i1.InsAppearance","i1.InsWithAppearance","i2.InsWithIcons","SafeObserver","MutationObserver","ResizeObserver","i1.InsPortalService","toObservable","InsNotificationStyles","i1.InsDropdownDriverDirective","i2.InsDropdownPosition","i1.InsActiveZone","i2.InsAnimated","i1.InsObscured","i2.InsActiveZone","DOCUMENT","i1.InsDropdownOpen","i1.InsButton","i2.InsChevron","i1.InsGroup","i1.InsWithIcons","i2.InsWithAppearance","i1.InsAnimated","i2.InsNotificationDirective","i1.InsPortalDirective","i2.InsFocusTrap","i1.InsWithDropdownOpen","i2.InsDropdownDirective","i2.InsNativeValidator","i1.InsTextfieldDirective","i1.InsTabsDirective","i1.InsDropdownDirective","i2.InsDropdownOpen","i1.InsTextFieldController","i1.InsStuck"],"mappings":"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"}