{"version":3,"file":"glamtime-glam-ui.mjs","sources":["../../../projects/glam-ui/src/lib/media-match/media-match.module.ts","../../../projects/glam-ui/src/lib/platform/platform.ts","../../../projects/glam-ui/src/lib/platform/platform.module.ts","../../../projects/glam-ui/src/lib/platform/features/input-types.ts","../../../projects/glam-ui/src/lib/platform/features/passive-listeners.ts","../../../projects/glam-ui/src/lib/platform/features/scrolling.ts","../../../projects/glam-ui/src/lib/platform/features/shadow-dom.ts","../../../projects/glam-ui/src/lib/platform/public-api.ts","../../../projects/glam-ui/src/lib/platform/index.ts","../../../projects/glam-ui/src/lib/media-match/media-match.ts","../../../projects/glam-ui/src/lib/media-match/public-api.ts","../../../projects/glam-ui/src/lib/media-match/index.ts","../../../projects/glam-ui/src/lib/screen-size/screen-size.module.ts","../../../projects/glam-ui/src/lib/screen-size/screen-size.ts","../../../projects/glam-ui/src/lib/screen-size/public-api.ts","../../../projects/glam-ui/src/lib/screen-size/index.ts","../../../projects/glam-ui/src/lib/theme/theme.module.ts","../../../projects/glam-ui/src/lib/theme/theme-typography.ts","../../../projects/glam-ui/src/lib/theme/theme-spacing.ts","../../../projects/glam-ui/src/lib/theme/theme-shape.ts","../../../projects/glam-ui/src/lib/theme/theme-transitions.ts","../../../projects/glam-ui/src/lib/theme/theme-z-index.ts","../../../projects/glam-ui/src/lib/theme/theme-shadows.ts","../../../projects/glam-ui/src/lib/theme/colors/amber.ts","../../../projects/glam-ui/src/lib/theme/colors/blue.ts","../../../projects/glam-ui/src/lib/theme/colors/blue-grey.ts","../../../projects/glam-ui/src/lib/theme/colors/brown.ts","../../../projects/glam-ui/src/lib/theme/colors/common.ts","../../../projects/glam-ui/src/lib/theme/colors/cyan.ts","../../../projects/glam-ui/src/lib/theme/colors/deep-orange.ts","../../../projects/glam-ui/src/lib/theme/colors/deep-purple.ts","../../../projects/glam-ui/src/lib/theme/colors/green.ts","../../../projects/glam-ui/src/lib/theme/colors/grey.ts","../../../projects/glam-ui/src/lib/theme/colors/indigo.ts","../../../projects/glam-ui/src/lib/theme/colors/light-blue.ts","../../../projects/glam-ui/src/lib/theme/colors/light-green.ts","../../../projects/glam-ui/src/lib/theme/colors/lime.ts","../../../projects/glam-ui/src/lib/theme/colors/orange.ts","../../../projects/glam-ui/src/lib/theme/colors/pink.ts","../../../projects/glam-ui/src/lib/theme/colors/purple.ts","../../../projects/glam-ui/src/lib/theme/colors/red.ts","../../../projects/glam-ui/src/lib/theme/colors/teal.ts","../../../projects/glam-ui/src/lib/theme/colors/yellow.ts","../../../projects/glam-ui/src/lib/theme/colors/index.ts","../../../projects/glam-ui/src/lib/theme/theme-palette.ts","../../../projects/glam-ui/src/lib/theme/theme.ts","../../../projects/glam-ui/src/lib/theme/public-api.ts","../../../projects/glam-ui/src/lib/theme/index.ts","../../../projects/glam-ui/src/lib/keycodes/keycodes.ts","../../../projects/glam-ui/src/lib/keycodes/modifiers.ts","../../../projects/glam-ui/src/lib/keycodes/public-api.ts","../../../projects/glam-ui/src/lib/keycodes/index.ts","../../../projects/glam-ui/src/lib/coercion/boolean-property.ts","../../../projects/glam-ui/src/lib/coercion/number-property.ts","../../../projects/glam-ui/src/lib/coercion/array.ts","../../../projects/glam-ui/src/lib/coercion/css-pixel-value.ts","../../../projects/glam-ui/src/lib/coercion/element.ts","../../../projects/glam-ui/src/lib/coercion/string-array.ts","../../../projects/glam-ui/src/lib/coercion/public-api.ts","../../../projects/glam-ui/src/lib/coercion/index.ts","../../../projects/glam-ui/src/lib/core/position.ts","../../../projects/glam-ui/src/lib/core/tint.ts","../../../projects/glam-ui/src/lib/core/control-size.ts","../../../projects/glam-ui/src/lib/core/public-api.ts","../../../projects/glam-ui/src/lib/core/index.ts","../../../projects/glam-ui/src/lib/direction/direction-module.ts","../../../projects/glam-ui/src/lib/direction/directionality.ts","../../../projects/glam-ui/src/lib/direction/public-api.ts","../../../projects/glam-ui/src/lib/direction/index.ts","../../../projects/glam-ui/src/lib/observers/observe-content.ts","../../../projects/glam-ui/src/lib/observers/observers.module.ts","../../../projects/glam-ui/src/lib/observers/public-api.ts","../../../projects/glam-ui/src/lib/observers/index.ts","../../../projects/glam-ui/src/lib/clipboard/pending-copy.ts","../../../projects/glam-ui/src/lib/clipboard/clipboard.ts","../../../projects/glam-ui/src/lib/clipboard/copy-to-clipboard.ts","../../../projects/glam-ui/src/lib/clipboard/clipboard.module.ts","../../../projects/glam-ui/src/lib/clipboard/public-api.ts","../../../projects/glam-ui/src/lib/clipboard/index.ts","../../../projects/glam-ui/src/lib/scroll/scroll-dispatcher.ts","../../../projects/glam-ui/src/lib/scroll/scrollable.ts","../../../projects/glam-ui/src/lib/scroll/scroll-module.ts","../../../projects/glam-ui/src/lib/scroll/public-api.ts","../../../projects/glam-ui/src/lib/scroll/index.ts","../../../projects/glam-ui/src/lib/appearance/appearance.module.ts","../../../projects/glam-ui/src/lib/appearance/appearance.ts","../../../projects/glam-ui/src/lib/appearance/public-api.ts","../../../projects/glam-ui/src/lib/appearance/index.ts","../../../projects/glam-ui/src/lib/portal/portal.ts","../../../projects/glam-ui/src/lib/portal/portal-outlet.ts","../../../projects/glam-ui/src/lib/portal/portal.module.ts","../../../projects/glam-ui/src/lib/portal/public-api.ts","../../../projects/glam-ui/src/lib/portal/index.ts","../../../projects/glam-ui/src/lib/overlay/overlay-module.ts","../../../projects/glam-ui/src/lib/overlay/overlay-ref.ts","../../../projects/glam-ui/src/lib/overlay/overlay.ts","../../../projects/glam-ui/src/lib/typography/typography.ts","../../../projects/glam-ui/src/lib/typography/typography.html","../../../projects/glam-ui/src/lib/typography/public-api.ts","../../../projects/glam-ui/src/lib/typography/index.ts","../../../projects/glam-ui/src/lib/box/box.ts","../../../projects/glam-ui/src/lib/box/box.html","../../../projects/glam-ui/src/lib/box/public-api.ts","../../../projects/glam-ui/src/lib/box/index.ts","../../../projects/glam-ui/src/lib/container/container.ts","../../../projects/glam-ui/src/lib/container/container.html","../../../projects/glam-ui/src/lib/container/public-api.ts","../../../projects/glam-ui/src/lib/container/index.ts","../../../projects/glam-ui/src/lib/grid/grid-item.ts","../../../projects/glam-ui/src/lib/grid/grid-item.html","../../../projects/glam-ui/src/lib/grid/grid.ts","../../../projects/glam-ui/src/lib/grid/grid.html","../../../projects/glam-ui/src/lib/grid/public-api.ts","../../../projects/glam-ui/src/lib/grid/index.ts","../../../projects/glam-ui/src/lib/stack/h-stack.ts","../../../projects/glam-ui/src/lib/stack/h-stack.html","../../../projects/glam-ui/src/lib/stack/v-stack.ts","../../../projects/glam-ui/src/lib/stack/v-stack.html","../../../projects/glam-ui/src/lib/stack/spacer.ts","../../../projects/glam-ui/src/lib/stack/spacer.html","../../../projects/glam-ui/src/lib/stack/public-api.ts","../../../projects/glam-ui/src/lib/stack/index.ts","../../../projects/glam-ui/src/lib/divider/divider.ts","../../../projects/glam-ui/src/lib/divider/divider.html","../../../projects/glam-ui/src/lib/divider/public-api.ts","../../../projects/glam-ui/src/lib/divider/index.ts","../../../projects/glam-ui/src/lib/avatar/avatar.ts","../../../projects/glam-ui/src/lib/avatar/avatar.html","../../../projects/glam-ui/src/lib/avatar/public-api.ts","../../../projects/glam-ui/src/lib/avatar/index.ts","../../../projects/glam-ui/src/lib/core/anchor-origin.ts","../../../projects/glam-ui/src/lib/badge/badge.ts","../../../projects/glam-ui/src/lib/badge/badge.html","../../../projects/glam-ui/src/lib/badge/public-api.ts","../../../projects/glam-ui/src/lib/badge/index.ts","../../../projects/glam-ui/src/lib/card/card.ts","../../../projects/glam-ui/src/lib/card/card.html","../../../projects/glam-ui/src/lib/card/card.module.ts","../../../projects/glam-ui/src/lib/card/public-api.ts","../../../projects/glam-ui/src/lib/card/index.ts","../../../projects/glam-ui/src/lib/collapse/collapse-animations.ts","../../../projects/glam-ui/src/lib/collapse/collapse.ts","../../../projects/glam-ui/src/lib/collapse/collapse.html","../../../projects/glam-ui/src/lib/collapse/public-api.ts","../../../projects/glam-ui/src/lib/collapse/index.ts","../../../projects/glam-ui/src/lib/dot/dot.ts","../../../projects/glam-ui/src/lib/dot/dot.html","../../../projects/glam-ui/src/lib/dot/public-api.ts","../../../projects/glam-ui/src/lib/dot/index.ts","../../../projects/glam-ui/src/lib/icon/icon-registry.ts","../../../projects/glam-ui/src/lib/icon/icon.ts","../../../projects/glam-ui/src/lib/icon/icon.html","../../../projects/glam-ui/src/lib/icon/public-api.ts","../../../projects/glam-ui/src/lib/icon/index.ts","../../../projects/glam-ui/src/lib/link/link.ts","../../../projects/glam-ui/src/lib/link/link.html","../../../projects/glam-ui/src/lib/link/public-api.ts","../../../projects/glam-ui/src/lib/link/index.ts","../../../projects/glam-ui/src/lib/toolbar/toolbar.ts","../../../projects/glam-ui/src/lib/toolbar/toolbar.html","../../../projects/glam-ui/src/lib/toolbar/public-api.ts","../../../projects/glam-ui/src/lib/toolbar/index.ts","../../../projects/glam-ui/src/lib/button/button.ts","../../../projects/glam-ui/src/lib/button/button.html","../../../projects/glam-ui/src/lib/button/public-api.ts","../../../projects/glam-ui/src/lib/button/index.ts","../../../projects/glam-ui/src/lib/pagination/pagination.ts","../../../projects/glam-ui/src/lib/pagination/pagination.html","../../../projects/glam-ui/src/lib/checkbox/checkbox.ts","../../../projects/glam-ui/src/lib/checkbox/checkbox.html","../../../projects/glam-ui/src/lib/checkbox/public-api.ts","../../../projects/glam-ui/src/lib/checkbox/index.ts","../../../projects/glam-ui/src/lib/switch/switch.ts","../../../projects/glam-ui/src/lib/switch/switch.html","../../../projects/glam-ui/src/lib/switch/public-api.ts","../../../projects/glam-ui/src/lib/switch/index.ts","../../../projects/glam-ui/src/lib/input/input.ts","../../../projects/glam-ui/src/lib/input/input.html","../../../projects/glam-ui/src/lib/input/public-api.ts","../../../projects/glam-ui/src/lib/input/index.ts","../../../projects/glam-ui/src/lib/upload/upload.ts","../../../projects/glam-ui/src/lib/upload/upload.html","../../../projects/glam-ui/src/lib/upload/public-api.ts","../../../projects/glam-ui/src/lib/upload/index.ts","../../../projects/glam-ui/src/lib/popover/popover.ts","../../../projects/glam-ui/src/lib/popover/popover.html","../../../projects/glam-ui/src/lib/popover/popover.module.ts","../../../projects/glam-ui/src/lib/popover/public-api.ts","../../../projects/glam-ui/src/lib/popover/index.ts","../../../projects/glam-ui/src/lib/select/select-panel.ts","../../../projects/glam-ui/src/lib/collections/data-source.ts","../../../projects/glam-ui/src/lib/collections/array-data-source.ts","../../../projects/glam-ui/src/lib/collections/collection-viewer.ts","../../../projects/glam-ui/src/lib/collections/dispose-view-repeater-strategy.ts","../../../projects/glam-ui/src/lib/collections/recycle-view-repeater-strategy.ts","../../../projects/glam-ui/src/lib/collections/selection-model.ts","../../../projects/glam-ui/src/lib/collections/unique-selection-dispatcher.ts","../../../projects/glam-ui/src/lib/collections/tree-adapter.ts","../../../projects/glam-ui/src/lib/collections/view-repeater.ts","../../../projects/glam-ui/src/lib/collections/public-api.ts","../../../projects/glam-ui/src/lib/collections/index.ts","../../../projects/glam-ui/src/lib/select/option.ts","../../../projects/glam-ui/src/lib/select/option.html","../../../projects/glam-ui/src/lib/select/select.ts","../../../projects/glam-ui/src/lib/select/select.html","../../../projects/glam-ui/src/lib/select/select.module.ts","../../../projects/glam-ui/src/lib/select/public-api.ts","../../../projects/glam-ui/src/lib/select/index.ts","../../../projects/glam-ui/src/lib/slider/slider.ts","../../../projects/glam-ui/src/lib/slider/slider.html","../../../projects/glam-ui/src/lib/slider/slider.module.ts","../../../projects/glam-ui/src/lib/slider/public-api.ts","../../../projects/glam-ui/src/lib/slider/index.ts","../../../projects/glam-ui/src/lib/form/form-control.ts","../../../projects/glam-ui/src/lib/segment/segment-ink-bar.ts","../../../projects/glam-ui/src/lib/segment/segment-ink-bar.html","../../../projects/glam-ui/src/lib/segment/segment.ts","../../../projects/glam-ui/src/lib/segment/segment.html","../../../projects/glam-ui/src/lib/segment/segment-button.ts","../../../projects/glam-ui/src/lib/segment/segment-button.html","../../../projects/glam-ui/src/lib/segment/public-api.ts","../../../projects/glam-ui/src/lib/segment/index.ts","../../../projects/glam-ui/src/lib/form/form.ts","../../../projects/glam-ui/src/lib/form/form.html","../../../projects/glam-ui/src/lib/form/public-api.ts","../../../projects/glam-ui/src/lib/form/index.ts","../../../projects/glam-ui/src/lib/title/title.ts","../../../projects/glam-ui/src/lib/title/title.html","../../../projects/glam-ui/src/lib/title/title.module.ts","../../../projects/glam-ui/src/lib/title/public-api.ts","../../../projects/glam-ui/src/lib/title/index.ts","../../../projects/glam-ui/src/lib/list/list-item.ts","../../../projects/glam-ui/src/lib/list/list-item.html","../../../projects/glam-ui/src/lib/list/list.ts","../../../projects/glam-ui/src/lib/list/list.html","../../../projects/glam-ui/src/lib/list/list-subheader.ts","../../../projects/glam-ui/src/lib/list/list-subheader.html","../../../projects/glam-ui/src/lib/list/list-collapse.ts","../../../projects/glam-ui/src/lib/list/list-collapse.html","../../../projects/glam-ui/src/lib/list/list.module.ts","../../../projects/glam-ui/src/lib/list/public-api.ts","../../../projects/glam-ui/src/lib/list/index.ts","../../../projects/glam-ui/src/lib/data-grid/col-def.ts","../../../projects/glam-ui/src/lib/data-grid/data-grid-col.ts","../../../projects/glam-ui/src/lib/data-grid/data-grid.ts","../../../projects/glam-ui/src/lib/data-grid/data-grid.html","../../../projects/glam-ui/src/lib/data-grid/public-api.ts","../../../projects/glam-ui/src/lib/data-grid/index.ts","../../../projects/glam-ui/src/lib/backdrop/backdrop.ts","../../../projects/glam-ui/src/lib/backdrop/backdrop.html","../../../projects/glam-ui/src/lib/backdrop/backdrop.module.ts","../../../projects/glam-ui/src/lib/backdrop/public-api.ts","../../../projects/glam-ui/src/lib/backdrop/index.ts","../../../projects/glam-ui/src/lib/drawer/drawer.ts","../../../projects/glam-ui/src/lib/drawer/drawer.html","../../../projects/glam-ui/src/lib/drawer/public-api.ts","../../../projects/glam-ui/src/lib/drawer/index.ts","../../../projects/glam-ui/src/lib/dialog/dialog.ts","../../../projects/glam-ui/src/lib/dialog/dialog.html","../../../projects/glam-ui/src/lib/dialog/public-api.ts","../../../projects/glam-ui/src/lib/dialog/index.ts","../../../projects/glam-ui/src/lib/progress/progress.ts","../../../projects/glam-ui/src/lib/progress/progress.html","../../../projects/glam-ui/src/lib/progress/public-api.ts","../../../projects/glam-ui/src/lib/progress/index.ts","../../../projects/glam-ui/src/lib/menu/menu.ts","../../../projects/glam-ui/src/lib/menu/menu.html","../../../projects/glam-ui/src/lib/menu/menu-item.ts","../../../projects/glam-ui/src/lib/menu/menu-item.html","../../../projects/glam-ui/src/lib/menu/public-api.ts","../../../projects/glam-ui/src/lib/menu/index.ts","../../../projects/glam-ui/src/lib/snackbar/snackbar.ts","../../../projects/glam-ui/src/lib/snackbar/snackbar.html","../../../projects/glam-ui/src/lib/snackbar/snackbar.module.ts","../../../projects/glam-ui/src/lib/snackbar/public-api.ts","../../../projects/glam-ui/src/lib/snackbar/index.ts","../../../projects/glam-ui/src/lib/back-to-top/back-to-top.ts","../../../projects/glam-ui/src/lib/back-to-top/back-to-top.html","../../../projects/glam-ui/src/lib/back-to-top/public-api.ts","../../../projects/glam-ui/src/lib/back-to-top/index.ts","../../../projects/glam-ui/src/lib/gui.module.ts","../../../projects/glam-ui/src/public-api.ts","../../../projects/glam-ui/src/glamtime-glam-ui.ts"],"sourcesContent":["/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n\n@NgModule({\n  imports: [\n    CommonModule\n  ]\n})\nexport class GuiMediaMatchModule { }\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n  hasV8BreakIterator = typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator;\n} catch {\n  hasV8BreakIterator = false;\n}\n\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n@Injectable({providedIn: 'root'})\nexport class GuiPlatform {\n  // We want to use the Angular platform check because if the Document is shimmed\n  // without the navigator, the following checks will fail. This is preferred because\n  // sometimes the Document may be shimmed without the user's knowledge or intention\n  /** Whether the Angular application is being rendered in the browser. */\n  isBrowser: boolean = this._platformId\n    ? isPlatformBrowser(this._platformId)\n    : typeof document === 'object' && !!document;\n\n  /** Whether the current browser is Microsoft Edge. */\n  EDGE: boolean = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n\n  /** Whether the current rendering engine is Microsoft Trident. */\n  TRIDENT: boolean = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n  // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n  /** Whether the current rendering engine is Blink. */\n  BLINK: boolean =\n    this.isBrowser &&\n    !!((window as any).chrome || hasV8BreakIterator) &&\n    typeof CSS !== 'undefined' &&\n    !this.EDGE &&\n    !this.TRIDENT;\n\n  // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n  // ensure that Webkit runs standalone and is not used as another engine's base.\n  /** Whether the current rendering engine is WebKit. */\n  WEBKIT: boolean =\n    this.isBrowser &&\n    /AppleWebKit/i.test(navigator.userAgent) &&\n    !this.BLINK &&\n    !this.EDGE &&\n    !this.TRIDENT;\n\n  /** Whether the current platform is Apple iOS. */\n  IOS: boolean =\n    this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n\n  // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n  // them self as Gecko-like browsers and modify the userAgent's according to that.\n  // Since we only cover one explicit Firefox case, we can simply check for Firefox\n  // instead of having an unstable check for Gecko.\n  /** Whether the current browser is Firefox. */\n  FIREFOX: boolean = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n  /** Whether the current platform is Android. */\n  // Trident on mobile adds the android platform to the userAgent to trick detections.\n  ANDROID: boolean = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n  // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n  // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n  // Safari browser should also use Webkit as its layout engine.\n  /** Whether the current browser is Safari. */\n  SAFARI: boolean = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n\n  constructor(@Inject(PLATFORM_ID) private _platformId: Object) {}\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\n\n@NgModule({})\nexport class GuiPlatformModule {}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/** 缓存结果 当前浏览器支持的输入类型集 */\nlet supportedInputTypes: Set<string>;\n\n/** *可能*支持的 `<input>` 类型。 */\nconst candidateInputTypes = [\n  // `color` 必须先出现。 如果我们先将类型更改为“颜色”，然后将其更改为其他内容，Chrome 56 会显示警告\n  'color',\n  'button',\n  'checkbox',\n  'date',\n  'datetime-local',\n  'email',\n  'file',\n  'hidden',\n  'image',\n  'month',\n  'number',\n  'password',\n  'radio',\n  'range',\n  'reset',\n  'search',\n  'submit',\n  'tel',\n  'text',\n  'time',\n  'url',\n  'week',\n];\n\n/** @returns 此浏览器支持的输入类型。 */\nexport function getSupportedInputTypes(): Set<string> {\n  if (supportedInputTypes) {\n    return supportedInputTypes;\n  }\n\n  if (typeof document !== 'object' || !document) {\n    supportedInputTypes = new Set(candidateInputTypes);\n    return supportedInputTypes;\n  }\n\n  let featureTestInput = document.createElement('input');\n  supportedInputTypes = new Set(\n    candidateInputTypes.filter(value => {\n      featureTestInput.setAttribute('type', value);\n      return featureTestInput.type === value;\n    }),\n  );\n\n  return supportedInputTypes;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/**\n * Passive Event Listeners是Chrome提出的一个新的浏览器特性：\n * Web开发者通过一个新的属性passive来告诉浏览器，当前页面内注册的事件监听器内部是否会调用preventDefault函数来阻止事件的默认行为，\n * 以便浏览器根据这个信息更好地做出决策来优化页面性能。当属性passive的值为true的时候，\n * 代表该监听器内部不会调用preventDefault函数来阻止默认滑动行为，Chrome浏览器称这类型的监听器为被动（passive）监听器。\n * 目前Chrome主要利用该特性来优化页面的滑动性能，所以Passive Event Listeners特性当前仅支持mousewheel/touch相关事件。\n */\n\n/** 用户浏览器是否支持被动事件监听器的缓存结果 */\nlet supportsPassiveEvents: boolean;\n\n/**\n * 检查用户的浏览器是否支持被动事件监听器\n */\nexport function supportsPassiveEventListeners(): boolean {\n  if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n    try {\n      window.addEventListener(\n        'test',\n        null!,\n        Object.defineProperty({}, 'passive', {\n          get: () => (supportsPassiveEvents = true),\n        }),\n      );\n    } finally {\n      supportsPassiveEvents = supportsPassiveEvents || false;\n    }\n  }\n\n  return supportsPassiveEvents;\n}\n\n/**\n * 将 `AddEventListener` 对象规范化为可以在任何浏览器上传递给 `addEventListener` 的东西，无论它是否支持 `options` 参数。\n * @param options 要标准化的对象。\n */\nexport function normalizePassiveListenerOptions(\n  options: AddEventListenerOptions,\n): AddEventListenerOptions | boolean {\n  return supportsPassiveEventListeners() ? options : !!options.capture;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/** 浏览器在 RTL 语言中处理水平滚动轴的可能方式 */\nexport const enum RtlScrollAxisType {\n  /**\n   * scrollLeft 在一直向左滚动时为 0，在一直向右滚动时为 (scrollWidth - clientWidth)\n   */\n  NORMAL,\n  /**\n   * scrollLeft 在一直向左滚动时为 -(scrollWidth - clientWidth)，在一直向右滚动时为 0\n   */\n  NEGATED,\n  /**\n   * scrollLeft 是 (scrollWidth - clientWidth) 时一直向左滚动和 0 时滚动一直向右\n   */\n  INVERTED,\n}\n\n/** 浏览器在 RTL 模式下处理水平滚动轴的方式的缓存结果 */\nlet rtlScrollAxisType: RtlScrollAxisType | undefined;\n\n/** 表示浏览器是否支持滚动行为的检查的缓存结果 */\nlet scrollBehaviorSupported: boolean | undefined;\n\n/** 检查浏览器是否支持滚动行为 */\nexport function supportsScrollBehavior(): boolean {\n  if (scrollBehaviorSupported == null) {\n    // 如果我们不在浏览器中，则无法支持\n    // 还要检查 `Element`，因为有些项目会在 SSR 期间将全局 `document` 存根，这可能会让我们失望。\n    if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n      scrollBehaviorSupported = false;\n      return scrollBehaviorSupported;\n    }\n\n    // 如果元素可以有 `scrollBehavior` 样式，我们可以确定它是受支持的。\n    if ('scrollBehavior' in document.documentElement!.style) {\n      scrollBehaviorSupported = true;\n    } else {\n      // 此时我们有 3 种可能性：完全不支持 `scrollTo`，支持但不处理滚动行为，或者它已被填充。\n      const scrollToFunction: Function | undefined = Element.prototype.scrollTo;\n\n      if (scrollToFunction) {\n        // 我们可以通过调用 `toString` 来检测函数是否已经被 polyfill。\n        // 原生函数使用 `[native code]` 进行模糊处理，而如果它被覆盖，我们将获得实际的函数源。\n        // 通过 https://davidwalsh.name/detect-native-function。 将 polyfill 函数视为支持滚动行为。\n        scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n      } else {\n        scrollBehaviorSupported = false;\n      }\n    }\n  }\n\n  return scrollBehaviorSupported;\n}\n\n/**\n * 检查此浏览器使用的 RTL 滚动轴的类型\n * 在撰写本文时，Chrome 是 NORMAL，Firefox 和 Safari 是 NEGATED，IE 和 Edge 是 INVERTED。\n */\nexport function getRtlScrollAxisType(): RtlScrollAxisType {\n  // 除非我们在浏览器上，否则我们无法检查。 如果我们不是，就假设“正常”。\n  if (typeof document !== 'object' || !document) {\n    return RtlScrollAxisType.NORMAL;\n  }\n\n  if (rtlScrollAxisType == null) {\n    // 创建一个 1px 宽的滚动容器和一个 2px 宽的内容元素。\n    const scrollContainer = document.createElement('div');\n    const containerStyle = scrollContainer.style;\n    scrollContainer.dir = 'rtl';\n    containerStyle.width = '1px';\n    containerStyle.overflow = 'auto';\n    containerStyle.visibility = 'hidden';\n    containerStyle.pointerEvents = 'none';\n    containerStyle.position = 'absolute';\n\n    const content = document.createElement('div');\n    const contentStyle = content.style;\n    contentStyle.width = '2px';\n    contentStyle.height = '1px';\n\n    scrollContainer.appendChild(content);\n    document.body.appendChild(scrollContainer);\n\n    rtlScrollAxisType = RtlScrollAxisType.NORMAL;\n\n    // 在 RTL 模式下，视口开始一直滚动到右侧。\n    // 如果我们在 NORMAL 浏览器中，这意味着 scrollLeft 应该是 1。如果它是零，我们知道我们正在处理其他两种类型的浏览器中的一种。\n    if (scrollContainer.scrollLeft === 0) {\n      // 在 NEGATED 浏览器中，scrollLeft 总是在 [-maxScrollAmount, 0] 的某个位置。\n      // 对于 INVERTED 浏览器，它总是在 [0, maxScrollAmount] 的某个位置。\n      // 我们可以通过将 scrollLeft 设置为 1 来确定是哪个。\n      // 这已经超过了 NEGATED 浏览器的最大值，所以当我们再次读取它时它将返回 0。\n      scrollContainer.scrollLeft = 1;\n      rtlScrollAxisType =\n        scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;\n    }\n\n    scrollContainer.remove();\n  }\n  return rtlScrollAxisType;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nlet shadowDomIsSupported: boolean;\n\n/** 检查用户的浏览器是否支持 Shadow DOM */\nexport function _supportsShadowDom(): boolean {\n  if (shadowDomIsSupported == null) {\n    const head = typeof document !== 'undefined' ? document.head : null;\n    shadowDomIsSupported = !!(head && ((head as any).createShadowRoot || head.attachShadow));\n  }\n\n  return shadowDomIsSupported;\n}\n\n/** 如果支持并且该元素位于 Shadow DOM 内，则获取元素的影子根 */\nexport function _getShadowRoot(element: HTMLElement): ShadowRoot | null {\n  if (_supportsShadowDom()) {\n    const rootNode = element.getRootNode ? element.getRootNode() : null;\n\n    // 请注意，这应该被 `_supportsShadowDom` 捕获，但有些团队已经能够在不受支持的浏览器上点击此代码路径。\n    if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n      return rootNode;\n    }\n  }\n\n  return null;\n}\n\n/**\n * 获取页面上当前聚焦的元素，同时穿透 Shadow DOM 边界\n */\nexport function _getFocusedElementPierceShadowDom(): HTMLElement | null {\n  let activeElement =\n    typeof document !== 'undefined' && document\n      ? (document.activeElement as HTMLElement | null)\n      : null;\n\n  while (activeElement && activeElement.shadowRoot) {\n    const newActiveElement = activeElement.shadowRoot.activeElement as HTMLElement | null;\n    if (newActiveElement === activeElement) {\n      break;\n    } else {\n      activeElement = newActiveElement;\n    }\n  }\n\n  return activeElement;\n}\n\n/** 在考虑 Shadow DOM 时获取事件的目标 */\nexport function _getEventTarget<T extends EventTarget>(event: Event): T | null {\n  // If an event is bound outside the Shadow DOM, the `event.target` will\n  // point to the shadow root so we have to use `composedPath` instead.\n  return (event.composedPath ? event.composedPath()[0] : event.target) as T | null;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './platform';\nexport * from './platform.module';\nexport * from './features/input-types';\nexport * from './features/passive-listeners';\nexport * from './features/scrolling';\nexport * from './features/shadow-dom';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {Injectable} from '@angular/core';\nimport {GuiPlatform} from '../platform';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GuiMediaMatch {\n\n  // 所有动态创建的注入媒体查询的全局注册表\n  private mediaQueriesForWebkitCompatibility: Set<string> = new Set<string>();\n\n  // 包含所有动态创建的媒体查询的样式标签\n  private mediaQueryStyleNode: HTMLStyleElement | undefined;\n\n  // 内部 matchMedia 方法返回一个 MediaQueryList 之类的对象\n  private readonly _matchMedia: (query: string) => MediaQueryList;\n\n  constructor(private _platform: GuiPlatform) {\n    this._matchMedia = this._platform.isBrowser && window.matchMedia ?\n      window.matchMedia.bind(window) :\n      this._noopMatchMedia;\n  }\n\n  // 评估给定的媒体查询并返回可以从中检索结果的本机 MediaQueryList\n  // 确认布局引擎将为提供的选择器查询触发，并为提供的查询返回 MediaQueryList\n  matchMedia(query: string): MediaQueryList {\n    if (this._platform.WEBKIT || this._platform.BLINK) {\n      this._createEmptyStyleRule(query);\n    }\n    return this._matchMedia(query);\n  }\n\n\n  // 创建一个空的样式表，用于解决与 `matchMedia` 相关的浏览器不一致问题\n  // 在撰写本文时，它处理以下情况：\n  // 1. 在 WebKit 浏览器上，媒体查询必须至少有一个规则才能触发 `matchMedia`。 我们通过声明一个带有 `@media` 声明的虚拟样式表来解决它\n  // 2. 在某些情况下，如果 `@media` 中的任何规则都不匹配页面上的现有元素，则 Blink 浏览器将停止触发 `matchMedia` 侦听器\n  //    我们通过制定一个针对“body”的规则来解决这个问题\n  private _createEmptyStyleRule(query: string) {\n    if (this.mediaQueriesForWebkitCompatibility.has(query)) {\n      return;\n    }\n\n    try {\n      if (!this.mediaQueryStyleNode) {\n        this.mediaQueryStyleNode = document.createElement('style');\n        this.mediaQueryStyleNode.setAttribute('type', 'text/css');\n        document.head.appendChild(this.mediaQueryStyleNode);\n      }\n\n      if (this.mediaQueryStyleNode.sheet) {\n        this.mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n        this.mediaQueriesForWebkitCompatibility.add(query);\n      }\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  // 非浏览器平台的无操作 matchMedia 替换\n  private _noopMatchMedia(query: string): MediaQueryList {\n    // 在此处使用 `as any` 以避免为 noop 匹配器添加额外的必要属性\n    return {\n      matches: query === 'all' || query === '',\n      media: query,\n      addListener: () => {\n      },\n      removeListener: () => {\n      }\n    } as any;\n  }\n\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './media-match.module';\nexport * from './media-match';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiMediaMatchModule} from '../media-match';\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule,\n    GuiMediaMatchModule\n  ]\n})\nexport class GuiScreenSizeModule {\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {EventEmitter, Injectable, NgZone, Output} from '@angular/core';\nimport {Observable, Observer, Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {GuiMediaMatch} from '../media-match';\n\nexport type GuiScreenSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GuiScreenSize {\n\n  private _screenBreakpoints = {\n    'xs': '(max-width: 599.98px)',\n    'sm': '(min-width: 600px) and (max-width: 959.98px)',\n    'md': '(min-width: 960px) and (max-width: 1279.98px)',\n    'lg': '(min-width: 1280px) and (max-width: 1919.98px)',\n    'xl': '(min-width: 1920px)'\n  };\n\n  private readonly _destroySubject = new Subject<void>();\n  @Output() readonly valueChange: EventEmitter<string | null> = new EventEmitter<string | null>();\n\n  constructor(private mediaMatch: GuiMediaMatch,\n              private _zone: NgZone) {\n    for (let key in this._screenBreakpoints) {\n      // @ts-ignore\n      const mql = this.mediaMatch.matchMedia(this._screenBreakpoints[key]);\n\n      const queryObservable = new Observable((observer: Observer<MediaQueryList>) => {\n        const handler = (e: any) => this._zone.run(() => observer.next(e));\n        mql.addEventListener('change', handler);\n\n        return () => {\n          mql.removeEventListener('change', handler);\n        };\n      }).pipe(\n        startWith(mql),\n        takeUntil(this._destroySubject)\n      );\n\n      queryObservable.subscribe(event => {\n        if (event.matches) {\n          this._size = key;\n          this.valueChange.emit(key);\n        }\n      });\n    }\n  }\n\n  ngOnDestroy() {\n    this._destroySubject.next();\n    this._destroySubject.complete();\n  }\n\n  /** 屏幕尺寸 */\n  get size() {\n    return this._size\n  }\n  private _size: string | null;\n\n  /** 指定尺寸是否小于等于屏幕尺寸 */\n  public lessEqualSize(value: GuiScreenSizeType): boolean {\n    if (value === 'xl') {\n      return true;\n    } else if (value == 'lg') {\n      return this.size === 'xs' || this.size === 'sm' || this.size === 'md' || this.size === 'lg';\n    } else if (value == 'md') {\n      return this.size === 'xs' || this.size === 'sm' || this.size === 'md';\n    } else if (value == 'sm') {\n      return this.size === 'xs' || this.size === 'sm';\n    } else if (value == 'xs') {\n      return this.size === 'xs';\n    }\n    return false;\n  }\n\n  /** 获取跟屏幕尺寸匹配的列数 */\n  public matchScreenColumns(size: number,\n                            sizeXs: number | null,\n                            sizeSm: number | null,\n                            sizeMd: number | null,\n                            sizeLg: number | null,\n                            sizeXl: number | null): number {\n    if (this.size === 'xl') {\n      return sizeXl || size;\n    } else if (this.size == 'lg') {\n      return sizeLg || sizeXl || size;\n    } else if (this.size == 'md') {\n      return sizeMd || sizeLg || sizeXl || size;\n    } else if (this.size == 'sm') {\n      return sizeSm || sizeMd || sizeLg || sizeXl || size;\n    } else if (this.size == 'xs') {\n      return sizeXs || sizeSm || sizeMd || sizeLg || sizeXl || size;\n    }\n    return size;\n  }\n\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './screen-size.module';\nexport * from './screen-size';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiScreenSizeModule} from '../screen-size';\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule,\n    GuiScreenSizeModule\n  ]\n})\nexport class GuiThemeModule {\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/** Font Weights */\nexport enum GuiThemeTypographyFontWeight {\n  ultraLight = 100,\n  thin = 200,\n  light = 300,\n  regular = 400,\n  medium = 500,\n  semibold = 600,\n  bold = 700,\n  heavy = 800,\n  black = 900\n}\n\nexport class GuiThemeTypographyTextStyle {\n  fontWeight: number;\n  fontSize: string;\n  lineHeight: number;\n\n  constructor(fontWeight: number, fontSize: number, lineHeight: number) {\n    this.fontWeight = fontWeight;\n    this.fontSize = fontSize + 'px';\n    this.lineHeight = lineHeight / fontSize;\n  }\n}\n\nexport class GuiThemeTypographySpecification {\n  largeTitle: GuiThemeTypographyTextStyle;\n  title: GuiThemeTypographyTextStyle;\n  title2: GuiThemeTypographyTextStyle;\n  title3: GuiThemeTypographyTextStyle;\n  headline: GuiThemeTypographyTextStyle;\n  body: GuiThemeTypographyTextStyle;\n  callout: GuiThemeTypographyTextStyle;\n  subHeadline: GuiThemeTypographyTextStyle;\n  footnote: GuiThemeTypographyTextStyle;\n  caption: GuiThemeTypographyTextStyle;\n  caption2: GuiThemeTypographyTextStyle;\n\n  constructor(largeTitle: GuiThemeTypographyTextStyle,\n              title: GuiThemeTypographyTextStyle,\n              title2: GuiThemeTypographyTextStyle,\n              title3: GuiThemeTypographyTextStyle,\n              headline: GuiThemeTypographyTextStyle,\n              body: GuiThemeTypographyTextStyle,\n              callout: GuiThemeTypographyTextStyle,\n              subHeadline: GuiThemeTypographyTextStyle,\n              footnote: GuiThemeTypographyTextStyle,\n              caption: GuiThemeTypographyTextStyle,\n              caption2: GuiThemeTypographyTextStyle) {\n    this.largeTitle = largeTitle;\n    this.title = title;\n    this.title2 = title2;\n    this.title3 = title3;\n    this.headline = headline;\n    this.body = body;\n    this.callout = callout;\n    this.subHeadline = subHeadline;\n    this.footnote = footnote;\n    this.caption = caption;\n    this.caption2 = caption2;\n  }\n}\n\nexport class GuiThemeTypography {\n  fontFamily: string = '\"SF Pro SC\",\"SF Pro Text\",\"SF Pro Icons\",\"PingFang SC\",\"Helvetica Neue\",\"Helvetica\",\"Arial\",sans-serif';\n\n  xs: GuiThemeTypographySpecification;\n  sm: GuiThemeTypographySpecification;\n  md: GuiThemeTypographySpecification;\n  lg: GuiThemeTypographySpecification;\n  xl: GuiThemeTypographySpecification;\n  xxl: GuiThemeTypographySpecification;\n  xxxl: GuiThemeTypographySpecification;\n  default: GuiThemeTypographySpecification;\n\n  constructor() {\n    this.xs = new GuiThemeTypographySpecification(\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 31, 38),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 25, 31),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 19, 24),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 17, 22),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.semibold, 14, 19),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 14, 19),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 13, 18),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 12, 16),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 12, 16),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 11, 13),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 11, 13)\n    );\n    this.sm = new GuiThemeTypographySpecification(\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 32, 39),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 26, 32),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 20, 25),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 18, 23),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.semibold, 15, 20),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 15, 20),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 14, 19),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 13, 18),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 12, 16),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 11, 13),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 11, 13)\n    );\n    this.md = new GuiThemeTypographySpecification(\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 33, 40),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 27, 33),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 21, 26),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 19, 24),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.semibold, 16, 21),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 16, 21),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 15, 20),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 14, 19),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 12, 16),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 11, 13),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 11, 13)\n    );\n    this.lg = new GuiThemeTypographySpecification(\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 34, 41),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 28, 34),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 22, 28),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 20, 25),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.semibold, 17, 22),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 17, 22),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 16, 21),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 15, 20),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 13, 18),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 12, 16),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 11, 13)\n    );\n    this.xl = new GuiThemeTypographySpecification(\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 36, 43),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 30, 37),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 24, 30),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 22, 28),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.semibold, 19, 24),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 19, 24),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 18, 23),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 17, 22),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 15, 20),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 14, 19),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 13, 18)\n    );\n    this.xxl = new GuiThemeTypographySpecification(\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 38, 46),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 32, 39),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 26, 32),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 24, 30),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.semibold, 21, 26),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 21, 26),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 20, 25),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 19, 24),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 17, 22),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 16, 21),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 15, 20)\n    );\n    this.xxxl = new GuiThemeTypographySpecification(\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 40, 48),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 34, 41),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 28, 34),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 26, 32),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.semibold, 23, 29),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 23, 29),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 22, 28),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 21, 28),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 19, 24),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 18, 23),\n      new GuiThemeTypographyTextStyle(GuiThemeTypographyFontWeight.regular, 17, 22)\n    );\n    this.default = this.sm;\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport class GuiThemeSpacing {\n  // 缩放系数 (8像素)\n  baseline: number = 8;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport class GuiThemeShape {\n  borderRadius: string = '4px';\n  small = '28px';\n  base = '32px';\n  large = '38px';\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport const GuiThemeTransitionDuration = {\n  shortest: '150ms',\n  shorter: '200ms',\n  short: '250ms',\n  // 标准时长\n  standard: '300ms',\n  // 这将用于复杂的动画\n  complex: '375ms',\n  // 当物体进入屏幕时推荐\n  enteringScreen: '225ms',\n  // 当物体离开屏幕时推荐\n  leavingScreen: '195ms'\n};\n\nexport const GuiThemeTransitionTimingFunction = {\n  // 这是最常见的缓动曲线\n  easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n  // 物体从屏幕外全速进入屏幕并缓慢减速到静止点\n  easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n  // 物体全速离开屏幕,离屏时它们不会减速\n  easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n  // 锐利的曲线供随时可能返回屏幕的物体使用\n  sharp: 'cubic-bezier(0.4, 0, 0.6, 1)',\n};\n\n\nexport class GuiThemeTransitions {\n  duration = GuiThemeTransitionDuration;\n  timing = GuiThemeTransitionTimingFunction;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport class GuiThemeZIndex {\n  mobileStepper: number = 1000;\n  fab: number = 1050;\n  speedDial: number = 1050;\n  appBar: number = 1100;\n  drawer: number = 1200;\n  dialog: number = 1300;\n  snackbar: number = 1400;\n  tooltip: number = 1500;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nconst shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowKeyAmbientShadowOpacity = 0.12;\n\nexport function _createShadow(...px: number[]) {\n  return [\n    `${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,\n    `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,\n    `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowKeyAmbientShadowOpacity})`,\n  ].join(',');\n}\n\nexport const GuiThemeShadows: string[] = ['none',\n  _createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0),\n  _createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0),\n  _createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0),\n  _createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0),\n  _createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0),\n  _createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0),\n  _createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1),\n  _createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2),\n  _createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2),\n  _createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3),\n  _createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3),\n  _createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4),\n  _createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4),\n  _createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4),\n  _createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5),\n  _createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5),\n  _createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5),\n  _createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6),\n  _createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6),\n  _createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7),\n  _createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7),\n  _createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7),\n  _createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8),\n  _createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8),\n];\n","export const GuiColorAmber = {\n  50: '#fff8e1',\n  100: '#ffecb3',\n  200: '#ffe082',\n  300: '#ffd54f',\n  400: '#ffca28',\n  500: '#ffc107',\n  600: '#ffb300',\n  700: '#ffa000',\n  800: '#ff8f00',\n  900: '#ff6f00',\n  A100: '#ffe57f',\n  A200: '#ffd740',\n  A400: '#ffc400',\n  A700: '#ffab00',\n};\n","export const GuiColorBlue = {\n  50: '#e3f2fd',\n  100: '#bbdefb',\n  200: '#90caf9',\n  300: '#64b5f6',\n  400: '#42a5f5',\n  500: '#2196f3',\n  600: '#1e88e5',\n  700: '#1976d2',\n  800: '#1565c0',\n  900: '#0d47a1',\n  A100: '#82b1ff',\n  A200: '#448aff',\n  A400: '#2979ff',\n  A700: '#2962ff',\n};\n","export const GuiColorBlueGrey = {\n  50: '#eceff1',\n  100: '#cfd8dc',\n  200: '#b0bec5',\n  300: '#90a4ae',\n  400: '#78909c',\n  500: '#607d8b',\n  600: '#546e7a',\n  700: '#455a64',\n  800: '#37474f',\n  900: '#263238',\n  A100: '#cfd8dc',\n  A200: '#b0bec5',\n  A400: '#78909c',\n  A700: '#455a64',\n};\n","export const GuiColorBrown = {\n  50: '#efebe9',\n  100: '#d7ccc8',\n  200: '#bcaaa4',\n  300: '#a1887f',\n  400: '#8d6e63',\n  500: '#795548',\n  600: '#6d4c41',\n  700: '#5d4037',\n  800: '#4e342e',\n  900: '#3e2723',\n  A100: '#d7ccc8',\n  A200: '#bcaaa4',\n  A400: '#8d6e63',\n  A700: '#5d4037',\n};\n","export const GuiColorCommon = {\n  black: '#000',\n  white: '#fff',\n};\n","export const GuiColorCyan = {\n  50: '#e0f7fa',\n  100: '#b2ebf2',\n  200: '#80deea',\n  300: '#4dd0e1',\n  400: '#26c6da',\n  500: '#00bcd4',\n  600: '#00acc1',\n  700: '#0097a7',\n  800: '#00838f',\n  900: '#006064',\n  A100: '#84ffff',\n  A200: '#18ffff',\n  A400: '#00e5ff',\n  A700: '#00b8d4',\n};\n","export const GuiColorDeepOrange = {\n  50: '#fbe9e7',\n  100: '#ffccbc',\n  200: '#ffab91',\n  300: '#ff8a65',\n  400: '#ff7043',\n  500: '#ff5722',\n  600: '#f4511e',\n  700: '#e64a19',\n  800: '#d84315',\n  900: '#bf360c',\n  A100: '#ff9e80',\n  A200: '#ff6e40',\n  A400: '#ff3d00',\n  A700: '#dd2c00',\n};\n","export const GuiColorDeepPurple = {\n  50: '#ede7f6',\n  100: '#d1c4e9',\n  200: '#b39ddb',\n  300: '#9575cd',\n  400: '#7e57c2',\n  500: '#673ab7',\n  600: '#5e35b1',\n  700: '#512da8',\n  800: '#4527a0',\n  900: '#311b92',\n  A100: '#b388ff',\n  A200: '#7c4dff',\n  A400: '#651fff',\n  A700: '#6200ea',\n};\n","export const GuiColorGreen = {\n  50: '#e8f5e9',\n  100: '#c8e6c9',\n  200: '#a5d6a7',\n  300: '#81c784',\n  400: '#66bb6a',\n  500: '#4caf50',\n  600: '#43a047',\n  700: '#388e3c',\n  800: '#2e7d32',\n  900: '#1b5e20',\n  A100: '#b9f6ca',\n  A200: '#69f0ae',\n  A400: '#00e676',\n  A700: '#00c853',\n};\n","export const GuiColorGrey = {\n  50: '#fafafa',\n  100: '#f5f5f5',\n  200: '#eeeeee',\n  300: '#e0e0e0',\n  400: '#bdbdbd',\n  500: '#9e9e9e',\n  600: '#757575',\n  700: '#616161',\n  800: '#424242',\n  900: '#212121',\n  A100: '#f5f5f5',\n  A200: '#eeeeee',\n  A400: '#bdbdbd',\n  A700: '#616161',\n};\n","export const GuiColorIndigo = {\n  50: '#e8eaf6',\n  100: '#c5cae9',\n  200: '#9fa8da',\n  300: '#7986cb',\n  400: '#5c6bc0',\n  500: '#3f51b5',\n  600: '#3949ab',\n  700: '#303f9f',\n  800: '#283593',\n  900: '#1a237e',\n  A100: '#8c9eff',\n  A200: '#536dfe',\n  A400: '#3d5afe',\n  A700: '#304ffe',\n};\n","export const GuiColorLightBlue = {\n  50: '#e1f5fe',\n  100: '#b3e5fc',\n  200: '#81d4fa',\n  300: '#4fc3f7',\n  400: '#29b6f6',\n  500: '#03a9f4',\n  600: '#039be5',\n  700: '#0288d1',\n  800: '#0277bd',\n  900: '#01579b',\n  A100: '#80d8ff',\n  A200: '#40c4ff',\n  A400: '#00b0ff',\n  A700: '#0091ea',\n};\n","export const GuiColorLightGreen = {\n  50: '#f1f8e9',\n  100: '#dcedc8',\n  200: '#c5e1a5',\n  300: '#aed581',\n  400: '#9ccc65',\n  500: '#8bc34a',\n  600: '#7cb342',\n  700: '#689f38',\n  800: '#558b2f',\n  900: '#33691e',\n  A100: '#ccff90',\n  A200: '#b2ff59',\n  A400: '#76ff03',\n  A700: '#64dd17',\n};\n","export const GuiColorLime = {\n  50: '#f9fbe7',\n  100: '#f0f4c3',\n  200: '#e6ee9c',\n  300: '#dce775',\n  400: '#d4e157',\n  500: '#cddc39',\n  600: '#c0ca33',\n  700: '#afb42b',\n  800: '#9e9d24',\n  900: '#827717',\n  A100: '#f4ff81',\n  A200: '#eeff41',\n  A400: '#c6ff00',\n  A700: '#aeea00',\n};\n","export const GuiColorOrange = {\n  50: '#fff3e0',\n  100: '#ffe0b2',\n  200: '#ffcc80',\n  300: '#ffb74d',\n  400: '#ffa726',\n  500: '#ff9800',\n  600: '#fb8c00',\n  700: '#f57c00',\n  800: '#ef6c00',\n  900: '#e65100',\n  A100: '#ffd180',\n  A200: '#ffab40',\n  A400: '#ff9100',\n  A700: '#ff6d00',\n};\n","export const GuiColorPink = {\n  50: '#fce4ec',\n  100: '#f8bbd0',\n  200: '#f48fb1',\n  300: '#f06292',\n  400: '#ec407a',\n  500: '#e91e63',\n  600: '#d81b60',\n  700: '#c2185b',\n  800: '#ad1457',\n  900: '#880e4f',\n  A100: '#ff80ab',\n  A200: '#ff4081',\n  A400: '#f50057',\n  A700: '#c51162',\n};\n","export const GuiColorPurple = {\n  50: '#f3e5f5',\n  100: '#e1bee7',\n  200: '#ce93d8',\n  300: '#ba68c8',\n  400: '#ab47bc',\n  500: '#9c27b0',\n  600: '#8e24aa',\n  700: '#7b1fa2',\n  800: '#6a1b9a',\n  900: '#4a148c',\n  A100: '#ea80fc',\n  A200: '#e040fb',\n  A400: '#d500f9',\n  A700: '#aa00ff',\n};\n","export const GuiColorRed = {\n  50: '#ffebee',\n  100: '#ffcdd2',\n  200: '#ef9a9a',\n  300: '#e57373',\n  400: '#ef5350',\n  500: '#f44336',\n  600: '#e53935',\n  700: '#d32f2f',\n  800: '#c62828',\n  900: '#b71c1c',\n  A100: '#ff8a80',\n  A200: '#ff5252',\n  A400: '#ff1744',\n  A700: '#d50000',\n};\n","export const GuiColorTeal = {\n  50: '#e0f2f1',\n  100: '#b2dfdb',\n  200: '#80cbc4',\n  300: '#4db6ac',\n  400: '#26a69a',\n  500: '#009688',\n  600: '#00897b',\n  700: '#00796b',\n  800: '#00695c',\n  900: '#004d40',\n  A100: '#a7ffeb',\n  A200: '#64ffda',\n  A400: '#1de9b6',\n  A700: '#00bfa5'\n}\n","export const GuiColorYellow = {\n  50: '#fffde7',\n  100: '#fff9c4',\n  200: '#fff59d',\n  300: '#fff176',\n  400: '#ffee58',\n  500: '#ffeb3b',\n  600: '#fdd835',\n  700: '#fbc02d',\n  800: '#f9a825',\n  900: '#f57f17',\n  A100: '#ffff8d',\n  A200: '#ffff00',\n  A400: '#ffea00',\n  A700: '#ffd600',\n};\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './amber';\nexport * from './blue';\nexport * from './blue-grey';\nexport * from './brown';\nexport * from './common';\nexport * from './cyan';\nexport * from './deep-orange';\nexport * from './deep-purple';\nexport * from './green';\nexport * from './grey';\nexport * from './indigo';\nexport * from './light-blue';\nexport * from './light-green';\nexport * from './lime';\nexport * from './orange';\nexport * from './pink';\nexport * from './purple';\nexport * from './red';\nexport * from './teal';\nexport * from './yellow';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {GuiColorCommon} from './colors';\n\nexport class GuiThemePaletteCommonColor {\n  black: string = GuiColorCommon.black;\n  white: string = GuiColorCommon.white;\n}\n\nexport class GuiThemePaletteSystemColor {\n  default: string;\n  vibrant: string;\n  accessible: string;\n}\n\nexport class GuiThemePaletteSystem {\n  teal: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  mint: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  cyan: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  purple: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  blue: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  indigo: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  green: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  yellow: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  orange: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  brown: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  red: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  pink: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n\n  gray: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  gray2: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  gray3: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  gray4: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  gray5: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n  gray6: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n\n  disabled: GuiThemePaletteSystemColor = new GuiThemePaletteSystemColor();\n}\n\nexport class GuiThemePaletteMaterialBackgroundColor {\n  thick: string;\n  regular: string;\n  thin: string;\n  ultrathin: string;\n}\n\nexport class GuiThemePaletteColor {\n  primary: string;\n  secondary: string;\n  tertiary: string;\n  quaternary: string;\n}\n\nexport class GuiThemePaletteAction {\n  active: string;\n  hover: string;\n  hoverOpacity: number;\n  selected: string;\n  selectedOpacity: number;\n  disabled: string;\n  disabledOpacity: number;\n  disabledBackground: string;\n  focus: string;\n  focusOpacity: number;\n  activatedOpacity: number;\n}\n\nexport class GuiThemeAppearancePalette {\n  system: GuiThemePaletteSystem = new GuiThemePaletteSystem();\n\n  background: GuiThemePaletteColor = new GuiThemePaletteColor();\n  full: GuiThemePaletteColor = new GuiThemePaletteColor();\n  label: GuiThemePaletteColor = new GuiThemePaletteColor();\n  separator: string;\n  materialBackground: GuiThemePaletteMaterialBackgroundColor = new GuiThemePaletteMaterialBackgroundColor();\n  materialFull: GuiThemePaletteColor = new GuiThemePaletteColor();\n  materialLabel: GuiThemePaletteColor = new GuiThemePaletteColor();\n  materialSeparator: string;\n  action: GuiThemePaletteAction = new GuiThemePaletteAction();\n}\n\nexport class GuiThemePalette {\n  common: GuiThemePaletteCommonColor = new GuiThemePaletteCommonColor();\n  light: GuiThemeAppearancePalette = new GuiThemeAppearancePalette();\n  dark: GuiThemeAppearancePalette = new GuiThemeAppearancePalette();\n\n  constructor() {\n\n    // Light\n    this.light.system.teal.default = '#30b0c7';\n    this.light.system.teal.vibrant = '#2ea7bd';\n    this.light.system.teal.accessible = '#008299';\n    this.light.system.mint.default = '#00c7be';\n    this.light.system.mint.vibrant = '#00bdb4';\n    this.light.system.mint.accessible = '#0c817b';\n    this.light.system.cyan.default = '#32ade6';\n    this.light.system.cyan.vibrant = '#41afdc';\n    this.light.system.cyan.accessible = '#0071a4';\n    this.light.system.purple.default = '#af52de';\n    this.light.system.purple.vibrant = '#9f4bc9';\n    this.light.system.purple.accessible = '#8944ab';\n    this.light.system.blue.default = '#007aff';\n    this.light.system.blue.vibrant = '#0070f5';\n    this.light.system.blue.accessible = '#0040dd';\n    this.light.system.indigo.default = '#5856d6';\n    this.light.system.indigo.vibrant = '#5452cc';\n    this.light.system.indigo.accessible = '#3634a3';\n    this.light.system.green.default = '#34c759';\n    this.light.system.green.vibrant = '#1ec337';\n    this.light.system.green.accessible = '#248a3d';\n    this.light.system.yellow.default = '#ffcc00';\n    this.light.system.yellow.vibrant = '#f5c200';\n    this.light.system.yellow.accessible = '#b25000';\n    this.light.system.orange.default = '#ff9500';\n    this.light.system.orange.vibrant = '#f58b00';\n    this.light.system.orange.accessible = '#c93400';\n    this.light.system.brown.default = '#a2845e';\n    this.light.system.brown.vibrant = '#987a54';\n    this.light.system.brown.accessible = '#7f6545';\n    this.light.system.red.default = '#ff3b30';\n    this.light.system.red.vibrant = '#ff3126';\n    this.light.system.red.accessible = '#d70015';\n    this.light.system.pink.default = '#ff2d55';\n    this.light.system.pink.vibrant = '#f5234b';\n    this.light.system.pink.accessible = '#d30f45';\n    this.light.system.gray.default = 'rgb(142, 142, 147)';\n    this.light.system.gray.accessible = 'rgb(108, 108, 112)';\n    this.light.system.gray2.default = 'rgb(174, 174, 178)';\n    this.light.system.gray2.accessible = 'rgb(142, 142, 147)';\n    this.light.system.gray3.default = 'rgb(174, 174, 178)';\n    this.light.system.gray3.accessible = 'rgb(174, 174, 178)';\n    this.light.system.gray4.default = 'rgb(209, 209, 214)';\n    this.light.system.gray4.accessible = 'rgb(188, 188, 192)';\n    this.light.system.gray5.default = 'rgb(229, 229, 234)';\n    this.light.system.gray5.accessible = 'rgb(216, 216, 220)';\n    this.light.system.gray6.default = 'rgb(242, 242, 247)';\n    this.light.system.gray6.accessible = 'rgb(235, 235, 240)';\n    this.light.system.disabled.default = '#999999';\n\n    this.light.background.primary = '#ffffff';\n    this.light.background.secondary = '#f2f2f7';\n    this.light.background.tertiary = '#ffffff';\n    this.light.full.primary = 'rgba(120, 120, 128, 0.2)';\n    this.light.full.secondary = 'rgba(120, 120, 128, 0.16)';\n    this.light.full.tertiary = 'rgba(118, 118, 128, 0.12)';\n    this.light.full.quaternary = 'rgba(118, 118, 128, 0.08)';\n    this.light.label.primary = '#000000';\n    this.light.label.secondary = 'rgba(60, 60, 67, 0.6)';\n    this.light.label.tertiary = 'rgba(60, 60, 67, 0.3)';\n    this.light.label.quaternary = 'rgba(60, 60, 67, 0.18)';\n    this.light.separator = 'rgba(60, 60, 67, 0.36)';\n\n    this.light.materialBackground.thick = 'rgba(255, 255, 255, 0.86)';\n    this.light.materialBackground.regular = 'rgba(255, 255, 255, 0.72)';\n    this.light.materialBackground.thin = 'rgba(255, 255, 255, 0.58)';\n    this.light.materialBackground.ultrathin = 'rgba(255, 255, 255, 0.44)';\n    this.light.materialFull.primary = '#636363';\n    this.light.materialFull.secondary = '#cfcfcf';\n    this.light.materialFull.tertiary = '#e6e6e6';\n    this.light.materialLabel.primary = '#000000';\n    this.light.materialLabel.secondary = '#919191';\n    this.light.materialLabel.tertiary = '#c7c7c7';\n    this.light.materialLabel.quaternary = '#dedede';\n    this.light.materialSeparator = 'rgba(0, 0, 0, 0.16)';\n\n    this.light.action.active = 'rgba(0, 0, 0, 0.54)';\n    this.light.action.hover = 'rgba(0, 0, 0, 0.04)';\n    this.light.action.hoverOpacity = 0.04;\n    this.light.action.selected = 'rgba(0, 0, 0, 0.08)';\n    this.light.action.selectedOpacity = 0.08;\n    this.light.action.disabled = 'rgba(0, 0, 0, 0.26)';\n    this.light.action.disabledBackground = 'rgba(0, 0, 0, 0.12)';\n    this.light.action.disabledOpacity = 0.38;\n    this.light.action.focus = 'rgba(0, 0, 0, 0.12)';\n    this.light.action.focusOpacity = 0.12;\n    this.light.action.activatedOpacity = 0.12;\n\n\n    // Dark\n    this.dark.system.teal.default = '#40cbe0';\n    this.dark.system.teal.vibrant = '#44d4ed';\n    this.dark.system.teal.accessible = '#5de6ff';\n    this.dark.system.mint.default = '#63e6e2';\n    this.dark.system.mint.vibrant = '#6ce0db';\n    this.dark.system.mint.accessible = '#66d4cf';\n    this.dark.system.cyan.default = '#64d2ff';\n    this.dark.system.cyan.vibrant = '#5acdfa';\n    this.dark.system.cyan.accessible = '#70d7ff';\n    this.dark.system.purple.default = '#bf5af2';\n    this.dark.system.purple.vibrant = '#cc65ff';\n    this.dark.system.purple.accessible = '#da8fff';\n    this.dark.system.blue.default = '#0a84ff';\n    this.dark.system.blue.vibrant = '#148eff';\n    this.dark.system.blue.accessible = '#409cff';\n    this.dark.system.indigo.default = '#5e5ce6';\n    this.dark.system.indigo.vibrant = '#6361f2';\n    this.dark.system.indigo.accessible = '#7d7aff';\n    this.dark.system.green.default = '#32d74b';\n    this.dark.system.green.vibrant = '#3ce155';\n    this.dark.system.green.accessible = '#30db5b';\n    this.dark.system.yellow.default = '#ffd60a';\n    this.dark.system.yellow.vibrant = '#ffe014';\n    this.dark.system.yellow.accessible = '#ffd426';\n    this.dark.system.orange.default = '#ff9f0a';\n    this.dark.system.orange.vibrant = '#ffa914';\n    this.dark.system.orange.accessible = '#ffb340';\n    this.dark.system.brown.default = '#ac8e68';\n    this.dark.system.brown.vibrant = '#b69872';\n    this.dark.system.brown.accessible = '#b59469';\n    this.dark.system.red.default = '#ff453a';\n    this.dark.system.red.vibrant = '#ff4f44';\n    this.dark.system.red.accessible = '#ff6961';\n    this.dark.system.pink.default = '#ff375f';\n    this.dark.system.pink.vibrant = '#ff4169';\n    this.dark.system.pink.accessible = '#ff6482';\n    this.dark.system.gray.default = 'rgb(142, 142, 147)';\n    this.dark.system.gray.accessible = 'rgb(174, 174, 178)';\n    this.dark.system.gray2.default = 'rgb(99, 99, 102)';\n    this.dark.system.gray2.accessible = 'rgb(124, 124, 128)';\n    this.dark.system.gray3.default = 'rgb(72, 72, 74)';\n    this.dark.system.gray3.accessible = 'rgb(84, 84, 86)';\n    this.dark.system.gray4.default = 'rgb(58, 58, 60)';\n    this.dark.system.gray4.accessible = 'rgb(68, 68, 70)';\n    this.dark.system.gray5.default = 'rgb(44, 44, 46)';\n    this.dark.system.gray5.accessible = 'rgb(54, 54, 56)';\n    this.dark.system.gray6.default = 'rgb(28, 28, 30)';\n    this.dark.system.gray6.accessible = 'rgb(36, 36, 38)';\n    this.dark.system.disabled.default = '#757575';\n\n    this.dark.background.primary = '#000000';\n    this.dark.background.secondary = '#1c1c1e';\n    this.dark.background.tertiary = '#2c2c2e';\n    this.dark.full.primary = 'rgba(120, 120, 128, 0.36)';\n    this.dark.full.secondary = 'rgba(120, 120, 128, 0.32)';\n    this.dark.full.tertiary = 'rgba(118, 118, 128, 0.24)';\n    this.dark.full.quaternary = 'rgba(118, 118, 128, 0.18)';\n    this.dark.label.primary = '#ffffff';\n    this.dark.label.secondary = 'rgba(235, 235, 245, 0.6)';\n    this.dark.label.tertiary = 'rgba(235, 235, 245, 0.3)';\n    this.dark.label.quaternary = 'rgba(235, 235, 245, 0.18)';\n    this.dark.separator = 'rgba(84, 84, 88, 0.65)';\n\n    this.dark.materialBackground.thick = 'rgba(29, 29, 31, 0.86)';\n    this.dark.materialBackground.regular = 'rgba(29, 29, 31, 0.72)';\n    this.dark.materialBackground.thin = 'rgba(29, 29, 31, 0.58)';\n    this.dark.materialBackground.ultrathin = 'rgba(29, 29, 31, 0.44)';\n    this.dark.materialFull.primary = '#616161';\n    this.dark.materialFull.secondary = '#262626';\n    this.dark.materialFull.tertiary = '#1a1a1a';\n    this.dark.materialLabel.primary = '#f5f5f5';\n    this.dark.materialLabel.secondary = '#707070';\n    this.dark.materialLabel.tertiary = '#4d4d4d';\n    this.dark.materialLabel.quaternary = '#292929';\n    this.dark.materialSeparator = 'rgba(255, 255, 255, 0.24)';\n\n    this.dark.action.active = GuiColorCommon.white;\n    this.dark.action.hover = 'rgba(255, 255, 255, 0.08)';\n    this.dark.action.hoverOpacity = 0.08;\n    this.dark.action.selected = 'rgba(255, 255, 255, 0.16)';\n    this.dark.action.selectedOpacity = 0.16;\n    this.dark.action.disabled = 'rgba(255, 255, 255, 0.3)';\n    this.dark.action.disabledBackground = 'rgba(255, 255, 255, 0.12)';\n    this.dark.action.disabledOpacity = 0.38;\n    this.dark.action.focus = 'rgba(255, 255, 255, 0.12)';\n    this.dark.action.focusOpacity = 0.12;\n    this.dark.action.activatedOpacity = 0.24;\n  }\n}\n","import {Inject, Injectable, InjectionToken} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {GuiThemeSpacing} from './theme-spacing';\nimport {GuiThemeTypography} from './theme-typography';\nimport {GuiThemeZIndex} from './theme-z-index';\nimport {GuiThemeTransitions} from './theme-transitions';\nimport {GuiThemeShadows} from './theme-shadows';\nimport {GuiThemeShape} from './theme-shape';\nimport {GuiThemePalette} from './theme-palette';\nimport {GuiScreenSize} from '../screen-size';\n\n\nexport interface GuiThemeDefaultOptions {\n  palette: GuiThemePalette,\n  shape: GuiThemeShape,\n  typography: GuiThemeTypography,\n  spacing: GuiThemeSpacing;\n  transitions: GuiThemeTransitions;\n  shadows: string[],\n  zIndex: GuiThemeZIndex;\n  accentColor: string;\n  responsiveTypography: boolean;\n}\n\nexport const GUI_THEME_DEFAULT_OPTIONS =\n  new InjectionToken<GuiThemeDefaultOptions>('GUI_THEME_DEFAULT_OPTIONS', {\n    providedIn: 'root',\n    factory: GUI_THEME_DEFAULT_OPTIONS_FACTORY\n  });\n\nexport function GUI_THEME_DEFAULT_OPTIONS_FACTORY(): GuiThemeDefaultOptions {\n  return {\n    palette: new GuiThemePalette(),\n    shape: new GuiThemeShape(),\n    typography: new GuiThemeTypography(),\n    spacing: new GuiThemeSpacing(),\n    transitions: new GuiThemeTransitions(),\n    shadows: GuiThemeShadows,\n    zIndex: new GuiThemeZIndex(),\n    accentColor: 'blue',\n    responsiveTypography: false\n  };\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GuiTheme {\n\n  private _themeStyleElement: HTMLStyleElement;\n  private readonly _options: GuiThemeDefaultOptions;\n\n  constructor(private _screenSize: GuiScreenSize,\n              @Inject(GUI_THEME_DEFAULT_OPTIONS) private _defaultOptions: GuiThemeDefaultOptions,\n              @Inject(DOCUMENT) private _document: Document) {\n\n    // 更新选项\n    this._options = {..._defaultOptions};\n\n    // 创建样式表\n    this._createStyleSheet();\n\n    // 应用响应式排版\n    this._applyResponsiveTypography();\n\n    // 将主题变量更新到样式表\n    this.applyStyleSheetRule();\n\n    // 根据屏幕尺寸更新排版尺寸\n    _screenSize.valueChange.subscribe(size => {\n      // 应用响应式排版\n      this._applyResponsiveTypography();\n\n      // 将主题变量更新到样式表\n      this.applyStyleSheetRule();\n    });\n  }\n\n  get options(): GuiThemeDefaultOptions {\n    return this._options;\n  }\n\n  public spacing(factor: number): number {\n    return this._options.spacing.baseline * factor;\n  }\n\n  // 将主题变量更新到样式表\n  public applyStyleSheetRule() {\n    const ruleItems: string[] = [];\n\n    this._extractRule(ruleItems, '--gui-theme-shape-', this._options.shape);\n    this._extractRule(ruleItems, '--gui-theme-typography-', this._options.typography);\n    this._extractRule(ruleItems, '--gui-theme-spacing-', this._options.spacing);\n    this._extractRule(ruleItems, '--gui-theme-transitions-', this._options.transitions);\n    this._extractRule(ruleItems, '--gui-theme-shadow-', this._options.shadows);\n    this._extractRule(ruleItems, '--gui-theme-z-index-', this._options.zIndex);\n\n    const lightRuleItems: string[] = [];\n    this._extractRule(lightRuleItems, '--gui-theme-palette-', this._options.palette.light);\n\n    const darkRuleItems: string[] = [];\n    this._extractRule(darkRuleItems, '--gui-theme-palette-', this._options.palette.dark);\n\n    if (this._themeStyleElement.sheet) {\n      while (this._themeStyleElement.sheet.cssRules.length > 0) {\n        this._themeStyleElement.sheet.deleteRule(0);\n      }\n      this._themeStyleElement.sheet.insertRule(':root{ ' + ruleItems.join(';') + ' }');\n      this._themeStyleElement.sheet.insertRule(':root{ ' + lightRuleItems.join(';') + ' }');\n      this._themeStyleElement.sheet.insertRule(':root[appearance=\\'light\\'] { ' + lightRuleItems.join(';') + ' }');\n      this._themeStyleElement.sheet.insertRule(':root[appearance=\\'dark\\'] { ' + darkRuleItems.join(';') + ' }');\n    }\n  }\n\n  // 应用响应式排版\n  private _applyResponsiveTypography() {\n    if (this._options.responsiveTypography) {\n      // @ts-ignore\n      this._options.typography.default = this._options.typography[this._screenSize.size!];\n    }\n  }\n\n  // 创建样式表\n  private _createStyleSheet() {\n    this._themeStyleElement = document.createElement('style');\n    document.head.appendChild(this._themeStyleElement);\n  }\n\n  // 提取规则\n  private _extractRule(ruleItems: string[], prefix: string, object: any) {\n    if (object instanceof Array) {\n\n      object.forEach((value, index) => {\n        ruleItems.push(prefix + index + ': ' + value);\n      })\n\n    } else if (object instanceof Object) {\n\n      Object.keys(object).forEach((key) => {\n        let item = object[key];\n        if (item) {\n          key = GuiTheme._convertToDashCase(key);\n          if (item instanceof Object) {\n            this._extractRule(ruleItems, prefix + key + '-', item);\n          } else {\n            ruleItems.push(prefix + key + ': ' + item);\n          }\n        }\n      });\n\n    }\n  }\n\n  // 转换成 dash case\n  private static _convertToDashCase(value: string): string {\n    return value.replace(/[A-Z]/g, function (match) {\n      return \"-\" + match.toLowerCase();\n    });\n  }\n\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './theme.module';\nexport * from './theme-typography';\nexport * from './theme-spacing';\nexport * from './theme-shape';\nexport * from './theme-transitions';\nexport * from './theme-z-index';\nexport * from './theme-shadows';\nexport * from './theme-palette';\nexport * from './theme';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport const MAC_ENTER = 3;\nexport const BACKSPACE = 8;\nexport const TAB = 9;\nexport const NUM_CENTER = 12;\nexport const ENTER = 13;\nexport const SHIFT = 16;\nexport const CONTROL = 17;\nexport const ALT = 18;\nexport const PAUSE = 19;\nexport const CAPS_LOCK = 20;\nexport const ESCAPE = 27;\nexport const SPACE = 32;\nexport const PAGE_UP = 33;\nexport const PAGE_DOWN = 34;\nexport const END = 35;\nexport const HOME = 36;\nexport const LEFT_ARROW = 37;\nexport const UP_ARROW = 38;\nexport const RIGHT_ARROW = 39;\nexport const DOWN_ARROW = 40;\nexport const PLUS_SIGN = 43;\nexport const PRINT_SCREEN = 44;\nexport const INSERT = 45;\nexport const DELETE = 46;\nexport const ZERO = 48;\nexport const ONE = 49;\nexport const TWO = 50;\nexport const THREE = 51;\nexport const FOUR = 52;\nexport const FIVE = 53;\nexport const SIX = 54;\nexport const SEVEN = 55;\nexport const EIGHT = 56;\nexport const NINE = 57;\nexport const FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186\nexport const FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187\nexport const QUESTION_MARK = 63;\nexport const AT_SIGN = 64;\nexport const A = 65;\nexport const B = 66;\nexport const C = 67;\nexport const D = 68;\nexport const E = 69;\nexport const F = 70;\nexport const G = 71;\nexport const H = 72;\nexport const I = 73;\nexport const J = 74;\nexport const K = 75;\nexport const L = 76;\nexport const M = 77;\nexport const N = 78;\nexport const O = 79;\nexport const P = 80;\nexport const Q = 81;\nexport const R = 82;\nexport const S = 83;\nexport const T = 84;\nexport const U = 85;\nexport const V = 86;\nexport const W = 87;\nexport const X = 88;\nexport const Y = 89;\nexport const Z = 90;\nexport const META = 91; // WIN_KEY_LEFT\nexport const MAC_WK_CMD_LEFT = 91;\nexport const MAC_WK_CMD_RIGHT = 93;\nexport const CONTEXT_MENU = 93;\nexport const NUMPAD_ZERO = 96;\nexport const NUMPAD_ONE = 97;\nexport const NUMPAD_TWO = 98;\nexport const NUMPAD_THREE = 99;\nexport const NUMPAD_FOUR = 100;\nexport const NUMPAD_FIVE = 101;\nexport const NUMPAD_SIX = 102;\nexport const NUMPAD_SEVEN = 103;\nexport const NUMPAD_EIGHT = 104;\nexport const NUMPAD_NINE = 105;\nexport const NUMPAD_MULTIPLY = 106;\nexport const NUMPAD_PLUS = 107;\nexport const NUMPAD_MINUS = 109;\nexport const NUMPAD_PERIOD = 110;\nexport const NUMPAD_DIVIDE = 111;\nexport const F1 = 112;\nexport const F2 = 113;\nexport const F3 = 114;\nexport const F4 = 115;\nexport const F5 = 116;\nexport const F6 = 117;\nexport const F7 = 118;\nexport const F8 = 119;\nexport const F9 = 120;\nexport const F10 = 121;\nexport const F11 = 122;\nexport const F12 = 123;\nexport const NUM_LOCK = 144;\nexport const SCROLL_LOCK = 145;\nexport const FIRST_MEDIA = 166;\nexport const FF_MINUS = 173;\nexport const MUTE = 173; // Firefox (Gecko) fires 181 for MUTE\nexport const VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN\nexport const VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP\nexport const FF_MUTE = 181;\nexport const FF_VOLUME_DOWN = 182;\nexport const LAST_MEDIA = 183;\nexport const FF_VOLUME_UP = 183;\nexport const SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON\nexport const EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS\nexport const COMMA = 188;\nexport const DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS\nexport const PERIOD = 190;\nexport const SLASH = 191;\nexport const APOSTROPHE = 192;\nexport const TILDE = 192;\nexport const OPEN_SQUARE_BRACKET = 219;\nexport const BACKSLASH = 220;\nexport const CLOSE_SQUARE_BRACKET = 221;\nexport const SINGLE_QUOTE = 222;\nexport const MAC_META = 224;\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\ntype ModifierKey = 'altKey' | 'shiftKey' | 'ctrlKey' | 'metaKey';\n\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nexport function hasModifierKey(event: KeyboardEvent, ...modifiers: ModifierKey[]): boolean {\n  if (modifiers.length) {\n    return modifiers.some(modifier => event[modifier]);\n  }\n\n  return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './keycodes';\nexport * from './modifiers';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport type BooleanInput = string | boolean | null | undefined;\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nexport function coerceBooleanProperty(value: any): boolean {\n  return value != null && `${value}` !== 'false';\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/**\n * Type describing the allowed values for a number input\n * @docs-private\n */\nexport type NumberInput = string | number | null | undefined;\n\n/** Coerces a data-bound value (typically a string) to a number. */\nexport function coerceNumberProperty(value: any): number;\nexport function coerceNumberProperty<D>(value: any, fallback: D): number | D;\nexport function coerceNumberProperty(value: any, fallbackValue = 0) {\n  return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nexport function _isNumberValue(value: any): boolean {\n  // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n  // and other non-number values as NaN, where Number just uses 0) but it considers the string\n  // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n  return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/** Wraps the provided value in an array, unless the provided value is an array. */\nexport function coerceArray<T>(value: T | T[]): T[];\nexport function coerceArray<T>(value: T | readonly T[]): readonly T[];\nexport function coerceArray<T>(value: T | T[]): T[] {\n  return Array.isArray(value) ? value : [value];\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/** Coerces a value to a CSS pixel value. */\nexport function coerceCssPixelValue(value: any): string {\n  if (value == null) {\n    return '';\n  }\n\n  return typeof value === 'string' ? value : `${value}px`;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ElementRef} from '@angular/core';\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nexport function coerceElement<T>(elementOrRef: ElementRef<T> | T): T {\n  return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/**\n * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -&gt; `[]`\n * - `[null]` -&gt; `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -&gt; `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -&gt; `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -&gt; `[\"[object Object]\"]`\n * - `{ a: 0 }` -&gt; `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nexport function coerceStringArray(value: any, separator: string | RegExp = /\\s+/): string[] {\n  const result = [];\n\n  if (value != null) {\n    const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n    for (const sourceValue of sourceValues) {\n      const trimmedString = `${sourceValue}`.trim();\n      if (trimmedString) {\n        result.push(trimmedString);\n      }\n    }\n  }\n\n  return result;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './boolean-property';\nexport * from './number-property';\nexport * from './array';\nexport * from './css-pixel-value';\nexport * from './element';\nexport * from './string-array';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport type GuiPosition =\n  'absolute'\n  | 'fixed'\n  | 'relative'\n  | 'static'\n  | 'sticky'\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport type GuiTint =\n  | 'teal'\n  | 'mint'\n  | 'purple'\n  | 'blue'\n  | 'cyan'\n  | 'indigo'\n  | 'green'\n  | 'yellow'\n  | 'orange'\n  | 'brown'\n  | 'red'\n  | 'pink'\n  | 'default'\n  | 'inherit';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport type GuiControlSize = 'base' | 'small' | 'large';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './position';\nexport * from './tint';\nexport * from './control-size';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n  exports: [],\n  declarations: [],\n})\nexport class GuiDirectionModule {}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {EventEmitter, Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n/** 文本方向 */\nexport type GuiDirection = 'ltr' | 'rtl';\n\n/**\n * 文本的方向性（LTR / RTL）\n * 获取当前文本方向和方向变化流\n */\n@Injectable({providedIn: 'root'})\nexport class GuiDirectionality implements OnDestroy {\n\n  /** 当前文本方向值 */\n  readonly value: GuiDirection = 'ltr';\n\n  /** 当 'ltr' / 'rtl' 状态改变时发出的流 */\n  readonly change = new EventEmitter<GuiDirection>();\n\n  constructor(@Optional() @Inject(DOCUMENT) _document?: any) {\n    if (_document) {\n      const bodyDir = _document.body ? _document.body.dir : null;\n      const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n      this.value = GuiDirectionality._resolveDirectionality(bodyDir || htmlDir || 'ltr');\n    }\n  }\n\n  ngOnDestroy() {\n    this.change.complete();\n  }\n\n  /** Resolves a string value to a specific direction. */\n  private static _resolveDirectionality(rawValue: string): GuiDirection {\n\n    /** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\n    const RTL_LOCALE_PATTERN =\n      /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n\n    const value = rawValue?.toLowerCase() || '';\n\n    if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n      return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n    }\n\n    return value === 'rtl' ? 'rtl' : 'ltr';\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './direction-module';\nexport * from './directionality';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {BooleanInput, coerceBooleanProperty, coerceElement, coerceNumberProperty, NumberInput,} from '../coercion';\nimport {\n    AfterContentInit,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    Injectable,\n    Input,\n    NgModule,\n    NgZone,\n    OnDestroy,\n    Output,\n} from '@angular/core';\nimport {Observable, Observer, Subject, Subscription} from 'rxjs';\nimport {debounceTime} from 'rxjs/operators';\n\n/**\n * 创建一个新的 MutationObserver\n * @docs-private\n */\n@Injectable({providedIn: 'root'})\nexport class GuiMutationObserverFactory {\n  create(callback: MutationCallback): MutationObserver | null {\n    return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n  }\n}\n\n/** 允许监视元素以更改其内容的可注入服务 */\n@Injectable({providedIn: 'root'})\nexport class GuiMutationObserver implements OnDestroy {\n\n  /** 跟踪现有的 MutationObservers，以便它们可以被重用。 */\n  private _observedElements = new Map<\n    Element,\n    {\n      observer: MutationObserver | null;\n      readonly stream: Subject<MutationRecord[]>;\n      count: number;\n    }\n  >();\n\n  constructor(private _mutationObserverFactory: GuiMutationObserverFactory) {}\n\n  ngOnDestroy() {\n    this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n  }\n\n  /**\n   * 观察元素的内容变化\n   * @param element 需要观察内容变化的元素\n   */\n  observe(element: Element): Observable<MutationRecord[]>;\n\n  /**\n   * 观察元素的内容变化\n   * @param element 需要观察内容变化的元素\n   */\n  observe(element: ElementRef<Element>): Observable<MutationRecord[]>;\n\n  observe(elementOrRef: Element | ElementRef<Element>): Observable<MutationRecord[]> {\n    const element = coerceElement(elementOrRef);\n\n    return new Observable((observer: Observer<MutationRecord[]>) => {\n      const stream = this._observeElement(element);\n      const subscription = stream.subscribe(observer);\n\n      return () => {\n        subscription.unsubscribe();\n        this._unobserveElement(element);\n      };\n    });\n  }\n\n  /**\n   * 如果可用，则使用现有的 MutationObserver 观察给定元素，如果没有，则创建一个新元素。\n   */\n  private _observeElement(element: Element): Subject<MutationRecord[]> {\n    if (!this._observedElements.has(element)) {\n      const stream = new Subject<MutationRecord[]>();\n      const observer = this._mutationObserverFactory.create(mutations => stream.next(mutations));\n      if (observer) {\n        observer.observe(element, {\n          characterData: true,\n          childList: true,\n          subtree: true,\n        });\n      }\n      this._observedElements.set(element, {observer, stream, count: 1});\n    } else {\n      this._observedElements.get(element)!.count++;\n    }\n    return this._observedElements.get(element)!.stream;\n  }\n\n  /**\n   * 如果没有观察这个元素，则取消观察给定元素并清理底层的 MutationObserver\n   */\n  private _unobserveElement(element: Element) {\n    if (this._observedElements.has(element)) {\n      this._observedElements.get(element)!.count--;\n      if (!this._observedElements.get(element)!.count) {\n        this._cleanupObserver(element);\n      }\n    }\n  }\n\n  /** 清理指定元素的底层 MutationObserver */\n  private _cleanupObserver(element: Element) {\n    if (this._observedElements.has(element)) {\n      const {observer, stream} = this._observedElements.get(element)!;\n      if (observer) {\n        observer.disconnect();\n      }\n      stream.complete();\n      this._observedElements.delete(element);\n    }\n  }\n}\n\n/**\n * 每当其关联元素的内容发生更改时触发回调的指令\n */\n@Directive({\n  selector: '[guiObserveContent]'\n})\nexport class GuiObserveContent implements AfterContentInit, OnDestroy {\n\n  /** 元素每次更改时发出的事件 */\n  @Output('guiObserveContent') readonly event = new EventEmitter<MutationRecord[]>();\n\n  /**\n   * 是否禁用观察内容\n   * 此选项可用于断开底层 MutationObserver 直到需要它为止。\n   */\n  @Input('guiObserveContentDisabled')\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n    this._disabled ? this._unsubscribe() : this._subscribe();\n  }\n  private _disabled = false;\n\n  /** 发出更改的去抖动时间间隔 */\n  @Input()\n  get debounce(): number {\n    return this._debounce;\n  }\n  set debounce(value: NumberInput) {\n    this._debounce = coerceNumberProperty(value);\n    this._subscribe();\n  }\n  private _debounce: number = 0;\n\n  private _currentSubscription: Subscription | null = null;\n\n  constructor(\n    private _contentObserver: GuiMutationObserver,\n    private _elementRef: ElementRef<HTMLElement>,\n    private _ngZone: NgZone,\n  ) {}\n\n  ngAfterContentInit() {\n    if (!this._currentSubscription && !this.disabled) {\n      this._subscribe();\n    }\n  }\n\n  ngOnDestroy() {\n    this._unsubscribe();\n  }\n\n  private _subscribe() {\n    this._unsubscribe();\n    const stream = this._contentObserver.observe(this._elementRef);\n\n    this._currentSubscription = (\n      this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream\n    ).subscribe(this.event);\n  }\n\n  private _unsubscribe() {\n    this._currentSubscription?.unsubscribe();\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {GuiMutationObserverFactory, GuiObserveContent} from './observe-content';\n\n@NgModule({\n  declarations: [GuiObserveContent],\n  exports: [GuiObserveContent],\n  providers: [GuiMutationObserverFactory],\n})\nexport class GuiObserversModule {}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './observers.module'\nexport * from './observe-content';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n/**\n * 挂起的复制到剪贴板操作\n *\n * 将文本复制到剪贴板的实现会修改 DOM 并强制重新布局\n * 如果字符串很大，此重新布局可能需要很长时间，导致用户单击后 execCommand('copy') 发生时间过长。\n * 这导致浏览器拒绝复制。\n * 该对象通过提供一个复制功能，让重新布局发生在与复制不同的刻度中可以稍后调用。\n *\n * 不再使用时必须调用 Destroy，无论是否调用了 `copy`。\n */\nexport class PendingCopy {\n  private _textarea: HTMLTextAreaElement | undefined;\n\n  constructor(text: string, private readonly _document: Document) {\n    const textarea = (this._textarea = this._document.createElement('textarea'));\n    const styles = textarea.style;\n\n    // 隐藏元素以进行显示和访问\n    // 设置固定位置，以免影响页面布局\n    // 我们将 `fixed` 与 `top: 0` 一起使用，因为焦点会在瞬间移动到 textarea 中，\n    // 如果它不在屏幕上，某些浏览器会尝试将其滚动到视图中\n    styles.position = 'fixed';\n    styles.top = styles.opacity = '0';\n    styles.left = '-999em';\n    textarea.setAttribute('aria-hidden', 'true');\n    textarea.value = text;\n    this._document.body.appendChild(textarea);\n  }\n\n  /** 完成拷贝文本内容 */\n  copy(): boolean {\n    const textarea = this._textarea;\n    let successful = false;\n\n    try {\n      if (textarea) {\n        const currentFocus = this._document.activeElement as HTMLOrSVGElement | null;\n\n        textarea.select();\n        textarea.setSelectionRange(0, textarea.value.length);\n        successful = this._document.execCommand('copy');\n\n        if (currentFocus) {\n          currentFocus.focus();\n        }\n      }\n    } catch {\n      // Discard error.\n      // Initial setting of {@code successful} will represent failure here.\n    }\n\n    return successful;\n  }\n\n  /** 清理用于执行复制操作的DOM */\n  destroy() {\n    const textarea = this._textarea;\n\n    if (textarea) {\n      textarea.remove();\n      this._textarea = undefined;\n    }\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\nimport {PendingCopy} from './pending-copy';\n\n/**\n * 将文本复制到用户剪贴板的服务\n */\n@Injectable({providedIn: 'root'})\nexport class GuiClipboard {\n  private readonly _document: Document;\n\n  constructor(@Inject(DOCUMENT) document: any) {\n    this._document = document;\n  }\n\n  /**\n   * 将提供的文本复制到用户的剪贴板\n   *\n   * @param text 需要复制的文本内容\n   * @returns 复制操作是否成功\n   */\n  copy(text: string): boolean {\n    const pendingCopy = this.beginCopy(text);\n    const successful = pendingCopy.copy();\n    pendingCopy.destroy();\n\n    return successful;\n  }\n\n  /**\n   * 准备稍后要复制的字符串\n   * 这对于需要很长时间才能成功渲染并在同一个tick中复制的大字符串很有用\n   *\n   * 调用者必须在返回的 `PendingCopy` 上调用 `destroy`\n   *\n   * @param text 需要复制的文本内容\n   * @returns 挂起的复制对象\n   */\n  beginCopy(text: string): PendingCopy {\n    return new PendingCopy(text, this._document);\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n    Directive,\n    EventEmitter,\n    Inject,\n    InjectionToken,\n    Input,\n    NgZone,\n    OnDestroy,\n    Optional,\n    Output,\n} from '@angular/core';\nimport {GuiClipboard} from './clipboard';\nimport {PendingCopy} from './pending-copy';\n\n/** 可用于配置 `GuiCopyToClipboard` 的默认选项的对象 */\nexport interface GuiCopyToClipboardConfig {\n  /** 将文本复制到剪贴板时的默认尝试次数 */\n  attempts?: number;\n}\n\n/** 可用于为 `GuiCopyToClipboard` 提供默认选项的注入令牌 */\nexport const GUI_COPY_TO_CLIPBOARD_CONFIG = new InjectionToken<GuiCopyToClipboardConfig>(\n  'GUI_COPY_TO_CLIPBOARD_CONFIG',\n);\n\n/**\n * 提供为单击时将内容复制到用户剪贴板的行为\n */\n@Directive({\n  selector: '[guiCopyToClipboard]',\n  host: {\n    '(click)': 'copy()',\n  }\n})\nexport class GuiCopyToClipboard implements OnDestroy {\n  /** 要复制的内容 */\n  @Input('guiCopyToClipboard') text: string = '';\n\n  /**\n   * 尝试复制文本的次数\n   * 这对于较长的文本可能是必要的，因为浏览器需要时间来填充中间 textarea 元素并复制内容\n   */\n  @Input('guiCopyToClipboardAttempts') attempts: number = 1;\n\n  /**\n   * 当一些文本被复制到剪贴板时发出\n   * 发出的值指示复制是否成功\n   */\n  @Output('guiCopyToClipboardCopied') readonly copied = new EventEmitter<boolean>();\n\n  /** 当前正在尝试的副本 */\n  private _pending = new Set<PendingCopy>();\n\n  /** 该指令是否已被销毁 */\n  private _destroyed: boolean = false;\n\n  /** 当前复制尝试的超时 */\n  private _currentTimeout: any;\n\n  constructor(\n    private _clipboard: GuiClipboard,\n    private _ngZone: NgZone,\n    @Optional() @Inject(GUI_COPY_TO_CLIPBOARD_CONFIG) config?: GuiCopyToClipboardConfig,\n  ) {\n    if (config && config.attempts != null) {\n      this.attempts = config.attempts;\n    }\n  }\n\n  /** 将当前文本复制到剪贴板 */\n  copy(attempts: number = this.attempts): void {\n    if (attempts > 1) {\n      let remainingAttempts = attempts;\n      const pending = this._clipboard.beginCopy(this.text);\n      this._pending.add(pending);\n\n      const attempt = () => {\n        const successful = pending.copy();\n        if (!successful && --remainingAttempts && !this._destroyed) {\n          this._currentTimeout = this._ngZone.runOutsideAngular(() => setTimeout(attempt, 1));\n        } else {\n          this._currentTimeout = null;\n          this._pending.delete(pending);\n          pending.destroy();\n          this.copied.emit(successful);\n        }\n      };\n      attempt();\n    } else {\n      this.copied.emit(this._clipboard.copy(this.text));\n    }\n  }\n\n  ngOnDestroy() {\n    if (this._currentTimeout) {\n      clearTimeout(this._currentTimeout);\n    }\n\n    this._pending.forEach(copy => copy.destroy());\n    this._pending.clear();\n    this._destroyed = true;\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {GuiCopyToClipboard} from './copy-to-clipboard';\n\n@NgModule({\n  declarations: [GuiCopyToClipboard],\n  exports: [GuiCopyToClipboard],\n})\nexport class GuiClipboardModule {}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n\nexport * from './clipboard.module';\nexport * from './pending-copy';\nexport * from './clipboard';\nexport * from './copy-to-clipboard';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {coerceElement} from '../coercion';\nimport {GuiPlatform} from '../platform';\nimport {ElementRef, Inject, Injectable, NgZone, OnDestroy, Optional} from '@angular/core';\nimport {fromEvent, Observable, Observer, of, Subject, Subscription} from 'rxjs';\nimport {auditTime, filter} from 'rxjs/operators';\nimport {GuiScrollable} from './scrollable';\nimport {DOCUMENT} from '@angular/common';\n\n/** 默认情况下限制滚动事件的时间（以毫秒为单位） */\nexport const DEFAULT_SCROLL_TIME = 20;\n\n/**\n * 服务包含所有已注册的 Scrollable 引用，并在任何一个 Scrollable 引用发出滚动事件时发出事件。\n */\n@Injectable({providedIn: 'root'})\nexport class GuiScrollDispatcher implements OnDestroy {\n\n  /** 用于引用正确的文档/窗口 */\n  protected _document: Document;\n\n  constructor(\n    private _ngZone: NgZone,\n    private _platform: GuiPlatform,\n    @Optional() @Inject(DOCUMENT) document: any,\n  ) {\n    this._document = document;\n  }\n\n  /** 通知已注册的可滚动参考元素已滚动的主题 */\n  private readonly _scrolled = new Subject<GuiScrollable | void>();\n\n  /** 跟踪全局“滚动”和“调整大小”订阅 */\n  _globalSubscription: Subscription | null = null;\n\n  /** 跟踪“滚动”的订阅量。用于之后的清理。 */\n  private _scrolledCount = 0;\n\n  /**\n   * 向服务注册的所有可滚动引用及其滚动事件订阅的映射。\n   */\n  scrollContainers: Map<GuiScrollable, Subscription> = new Map();\n\n  /**\n   * 向服务注册一个可滚动的实例并监听它的滚动事件。\n   * 当可滚动对象滚动时，服务将事件发送到其滚动的可观察对象。\n   * @param scrollable Scrollable instance to be registered.\n   */\n  register(scrollable: GuiScrollable): void {\n    if (!this.scrollContainers.has(scrollable)) {\n      this.scrollContainers.set(\n        scrollable,\n        scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)),\n      );\n    }\n  }\n\n  /**\n   * 取消注册 Scrollable 引用并取消订阅其可观察的滚动事件\n   * @param scrollable Scrollable instance to be deregistered.\n   */\n  deregister(scrollable: GuiScrollable): void {\n    const scrollableReference = this.scrollContainers.get(scrollable);\n\n    if (scrollableReference) {\n      scrollableReference.unsubscribe();\n      this.scrollContainers.delete(scrollable);\n    }\n  }\n\n  /**\n   * 返回一个 observable，只要任何已注册的 Scrollable 引用（或窗口、文档或正文）触发滚动事件，它就会发出事件。\n   * 可以提供以毫秒为单位的时间来覆盖默认的“节流”时间。\n   *\n   * **注意：** 为了避免对每个滚动事件进行更改检测，从此流发出的所有事件都将在 Angular 区域之外运行。\n   * 如果由于滚动事件需要更新任何数据绑定，则必须使用 `NgZone.run` 运行回调。\n   */\n  scrolled(auditTimeInMs: number = DEFAULT_SCROLL_TIME): Observable<GuiScrollable | void> {\n    if (!this._platform.isBrowser) {\n      return of();\n    }\n\n    return new Observable((observer: Observer<GuiScrollable | void>) => {\n      if (!this._globalSubscription) {\n        this._addGlobalListener();\n      }\n\n      // 在 0ms 延迟的情况下，使用不带 auditTime 的 observable，因为它确实在处理开销中增加了可察觉的延迟\n      const subscription =\n        auditTimeInMs > 0\n          ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer)\n          : this._scrolled.subscribe(observer);\n\n      this._scrolledCount++;\n\n      return () => {\n        subscription.unsubscribe();\n        this._scrolledCount--;\n\n        if (!this._scrolledCount) {\n          this._removeGlobalListener();\n        }\n      };\n    });\n  }\n\n  ngOnDestroy() {\n    this._removeGlobalListener();\n    this.scrollContainers.forEach((_, container) => this.deregister(container));\n    this._scrolled.complete();\n  }\n\n  /**\n   * 返回一个 observable，每当滚动元素的任何可滚动祖先时发出\n   * @param elementOrElementRef Element whose ancestors to listen for.\n   * @param auditTimeInMs Time to throttle the scroll events.\n   */\n  ancestorScrolled(\n    elementOrElementRef: ElementRef | HTMLElement,\n    auditTimeInMs?: number,\n  ): Observable<GuiScrollable | void> {\n    const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n\n    return this.scrolled(auditTimeInMs).pipe(\n      filter(target => {\n        return !target || ancestors.indexOf(target) > -1;\n      }),\n    );\n  }\n\n  /** 返回包含提供的元素的所有已注册 Scrollable */\n  getAncestorScrollContainers(elementOrElementRef: ElementRef | HTMLElement): GuiScrollable[] {\n    const scrollingContainers: GuiScrollable[] = [];\n\n    this.scrollContainers.forEach((_subscription: Subscription, scrollable: GuiScrollable) => {\n      if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n        scrollingContainers.push(scrollable);\n      }\n    });\n\n    return scrollingContainers;\n  }\n\n  /**\n   * 获取窗口对象\n   * 使用注入文档的 defaultView 或者 全局窗口\n   **/\n  private _getWindow(): Window {\n    return this._document.defaultView || window;\n  }\n\n  /** 如果元素包含在提供的 Scrollable 中，则返回 true */\n  private _scrollableContainsElement(\n    scrollable: GuiScrollable,\n    elementOrElementRef: ElementRef | HTMLElement,\n  ): boolean {\n    let element: HTMLElement | null = coerceElement(elementOrElementRef);\n    let scrollableElement = scrollable.getElementRef().nativeElement;\n\n    // 遍历元素父元素，直到我们到达 null，检查是否有任何元素是可滚动的元素。\n    do {\n      if (element == scrollableElement) {\n        return true;\n      }\n    } while ((element = element!.parentElement));\n\n    return false;\n  }\n\n  /** 配置全局滚动监听器 */\n  private _addGlobalListener() {\n    this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n      const window = this._getWindow();\n      return fromEvent(window.document, 'scroll', {passive: true}).subscribe(() => this._scrolled.next());\n    });\n  }\n\n  /** 清理全局滚动监听器 */\n  private _removeGlobalListener() {\n    if (this._globalSubscription) {\n      this._globalSubscription.unsubscribe();\n      this._globalSubscription = null;\n    }\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {GuiDirectionality} from '../direction';\nimport {\n  getRtlScrollAxisType,\n  RtlScrollAxisType,\n  supportsScrollBehavior,\n} from '../platform';\nimport {Directive, ElementRef, NgZone, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {fromEvent, Observable, Subject, Observer} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {GuiScrollDispatcher} from './scroll-dispatcher';\n\nexport type _Without<T> = {[P in keyof T]?: never};\nexport type _XOR<T, U> = (_Without<T> & U) | (_Without<U> & T);\nexport type _Top = {top?: number};\nexport type _Bottom = {bottom?: number};\nexport type _Left = {left?: number};\nexport type _Right = {right?: number};\nexport type _Start = {start?: number};\nexport type _End = {end?: number};\nexport type _XAxis = _XOR<_XOR<_Left, _Right>, _XOR<_Start, _End>>;\nexport type _YAxis = _XOR<_Top, _Bottom>;\n\n/**\n * ScrollToOptions 的扩展版本，它允许表示相对于视口的顶部、底部、左侧、右侧、开始或结束的滚动偏移量，而不仅仅是顶部和左侧\n * 请注意：top 和 bottom 属性是互斥的，left、right、start 和 end 属性也是如此\n */\nexport type ExtendedScrollToOptions = _XAxis & _YAxis & ScrollOptions;\n\n/**\n * 当指令的元素被滚动时发送一个事件。将自身注册到 ScrollDispatcher 服务，以将其自身作为其滚动事件集合的一部分，可以通过该服务对其进行侦听。\n */\n@Directive({\n  selector: '[guiScrollable]'\n})\nexport class GuiScrollable implements OnInit, OnDestroy {\n  private readonly _destroyed = new Subject<void>();\n\n  private _elementScrolled: Observable<Event> = new Observable((observer: Observer<Event>) =>\n    this.ngZone.runOutsideAngular(() =>\n      fromEvent(this.elementRef.nativeElement, 'scroll', {passive: true})\n        .pipe(takeUntil(this._destroyed))\n        .subscribe(observer),\n    ),\n  );\n\n  constructor(\n    protected elementRef: ElementRef<HTMLElement>,\n    protected scrollDispatcher: GuiScrollDispatcher,\n    protected ngZone: NgZone,\n    @Optional() protected dir?: GuiDirectionality,\n  ) {}\n\n  ngOnInit() {\n    this.scrollDispatcher.register(this);\n  }\n\n  ngOnDestroy() {\n    this.scrollDispatcher.deregister(this);\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /** 返回在宿主元素上触发滚动事件时发出的 observable */\n  elementScrolled(): Observable<Event> {\n    return this._elementScrolled;\n  }\n\n  /** 获取视口的 ElementRef */\n  getElementRef(): ElementRef<HTMLElement> {\n    return this.elementRef;\n  }\n\n  /**\n   * 滚动到指定的偏移量。\n   * 这是浏览器原生 scrollTo 方法的规范化版本，因为浏览器对于滚动左键在 RTL 中的含义并不一致。\n   * 对于这种方法 left 和 right 总是指滚动容器的左侧和右侧，而与布局方向无关。\n   * start 和 end 在 LTR 上下文中指的是左和右，在 RTL 上下文中反之亦然。\n   *\n   * @param options specified the offsets to scroll to.\n   */\n  scrollTo(options: ExtendedScrollToOptions): void {\n    const el = this.elementRef.nativeElement;\n    const isRtl = this.dir && this.dir.value == 'rtl';\n\n    // Rewrite start & end offsets as right or left offsets.\n    if (options.left == null) {\n      options.left = isRtl ? options.end : options.start;\n    }\n\n    if (options.right == null) {\n      options.right = isRtl ? options.start : options.end;\n    }\n\n    // Rewrite the bottom offset as a top offset.\n    if (options.bottom != null) {\n      (options as _Without<_Bottom> & _Top).top =\n        el.scrollHeight - el.clientHeight - options.bottom;\n    }\n\n    // Rewrite the right offset as a left offset.\n    if (isRtl && getRtlScrollAxisType() != RtlScrollAxisType.NORMAL) {\n      if (options.left != null) {\n        (options as _Without<_Left> & _Right).right =\n          el.scrollWidth - el.clientWidth - options.left;\n      }\n\n      if (getRtlScrollAxisType() == RtlScrollAxisType.INVERTED) {\n        options.left = options.right;\n      } else if (getRtlScrollAxisType() == RtlScrollAxisType.NEGATED) {\n        options.left = options.right ? -options.right : options.right;\n      }\n    } else {\n      if (options.right != null) {\n        (options as _Without<_Right> & _Left).left =\n          el.scrollWidth - el.clientWidth - options.right;\n      }\n    }\n\n    this._applyScrollToOptions(options);\n  }\n\n  private _applyScrollToOptions(options: ScrollToOptions): void {\n    const el = this.elementRef.nativeElement;\n\n    if (supportsScrollBehavior()) {\n      el.scrollTo(options);\n    } else {\n      if (options.top != null) {\n        el.scrollTop = options.top;\n      }\n      if (options.left != null) {\n        el.scrollLeft = options.left;\n      }\n    }\n  }\n\n  /**\n   * 测量相对于视口指定边缘的滚动偏移量。可以使用此方法代替直接检查 scrollLeft 或 scrollTop，\n   * 因为浏览器对于滚动左键在 RTL 中的含义并不一致。此方法返回的值被规范化，\n   * 这样无论布局方向如何，left 和 right 总是指滚动容器的左侧和右侧\n   * start 和 end 在 LTR 上下文中指的是左和右，在 RTL 上下文中反之亦然。\n   *\n   * @param from The edge to measure from.\n   */\n  measureScrollOffset(from: 'top' | 'left' | 'right' | 'bottom' | 'start' | 'end'): number {\n    const LEFT = 'left';\n    const RIGHT = 'right';\n    const el = this.elementRef.nativeElement;\n    if (from == 'top') {\n      return el.scrollTop;\n    }\n    if (from == 'bottom') {\n      return el.scrollHeight - el.clientHeight - el.scrollTop;\n    }\n\n    // Rewrite start & end as left or right offsets.\n    const isRtl = this.dir && this.dir.value == 'rtl';\n    if (from == 'start') {\n      from = isRtl ? RIGHT : LEFT;\n    } else if (from == 'end') {\n      from = isRtl ? LEFT : RIGHT;\n    }\n\n    if (isRtl && getRtlScrollAxisType() == RtlScrollAxisType.INVERTED) {\n      // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n      // 0 when scrolled all the way right.\n      if (from == LEFT) {\n        return el.scrollWidth - el.clientWidth - el.scrollLeft;\n      } else {\n        return el.scrollLeft;\n      }\n    } else if (isRtl && getRtlScrollAxisType() == RtlScrollAxisType.NEGATED) {\n      // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n      // 0 when scrolled all the way right.\n      if (from == LEFT) {\n        return el.scrollLeft + el.scrollWidth - el.clientWidth;\n      } else {\n        return -el.scrollLeft;\n      }\n    } else {\n      // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n      // (scrollWidth - clientWidth) when scrolled all the way right.\n      if (from == LEFT) {\n        return el.scrollLeft;\n      } else {\n        return el.scrollWidth - el.clientWidth - el.scrollLeft;\n      }\n    }\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {GuiScrollable} from './scrollable';\n\n@NgModule({\n  exports: [GuiScrollable],\n  declarations: [GuiScrollable],\n})\nexport class GuiScrollModule {}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './scroll-module';\nexport * from './scroll-dispatcher';\nexport * from './scrollable';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiMediaMatchModule} from '../media-match';\n\n\n@NgModule({\n  imports: [\n    CommonModule,\n    GuiMediaMatchModule\n  ]\n})\nexport class GuiAppearanceModule {\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {Inject, Injectable, NgZone, OnDestroy, Optional} from '@angular/core';\nimport {Observable, Observer, Subject} from 'rxjs';\nimport {GuiMediaMatch} from '../media-match';\nimport {DOCUMENT} from '@angular/common';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nexport type GuiAppearanceType = 'auto' | 'light' | 'dark';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GuiAppearance implements OnDestroy {\n\n  private _currentIsDark = false;\n  private readonly _destroySubject = new Subject<void>();\n\n  constructor(\n    private _mediaMatch: GuiMediaMatch,\n    private _zone: NgZone,\n    @Optional() @Inject(DOCUMENT) private _document?: Document) {\n\n    const mql = this._mediaMatch.matchMedia('(prefers-color-scheme: dark)');\n    const queryObservable = new Observable((observer: Observer<MediaQueryList>) => {\n      const handler = (e: any) => this._zone.run(() => observer.next(e));\n      mql.addEventListener('change', handler);\n\n      return () => {\n        mql.removeEventListener('change', handler);\n      };\n    }).pipe(\n      startWith(mql),\n      takeUntil(this._destroySubject)\n    );\n\n    queryObservable.subscribe(event => {\n      this._currentIsDark = event.matches;\n      if (this._appearanceType === 'auto') {\n        this._updateAppearance();\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    this._destroySubject.next();\n    this._destroySubject.complete();\n  }\n\n  get currentIsDark(): boolean {\n    if (this._appearanceType === 'auto') {\n      return this._currentIsDark;\n    } else {\n      return this._appearanceType === 'dark';\n    }\n  }\n\n  get appearanceType(): GuiAppearanceType {\n    return this._appearanceType;\n  }\n\n  set appearanceType(value: GuiAppearanceType) {\n    this._appearanceType = value;\n    this._updateAppearance();\n  }\n\n  private _appearanceType: GuiAppearanceType = 'auto';\n\n  private _updateAppearance() {\n    if (this._document) {\n      if (this.currentIsDark) {\n        this._document.documentElement.setAttribute('appearance', 'dark');\n      } else {\n        this._document.documentElement.removeAttribute('appearance');\n      }\n    }\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './appearance.module';\nexport * from './appearance';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ComponentRef, ElementRef, EmbeddedViewRef, Injector, TemplateRef, ViewContainerRef,} from '@angular/core';\n\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n  new(...args: any[]): T;\n}\n\n\n/** `GuiPortalOutlet` 是一个可以包含单个 `Portal` 的空间。 */\nexport interface IGuiPortalOutlet {\n\n  /** 将 Portal 附加到 插槽（Outlet) */\n  attach(portal: IGuiPortal<any>): any;\n\n  /** 从 插槽（Outlet) 中分离出当前连接的 Portal */\n  detach(): any;\n\n  /** 在 插槽（Outlet) 被破坏之前执行清理 */\n  dispose(): void;\n\n  /** 当前是否有 Portal 连接到此 插槽（Outlet) */\n  get hasAttached(): boolean;\n\n}\n\n\n/**\n * `Portal` 是您想在其他地方渲染的东西。\n * 它可以 attach / detached 到 `GuiPortalOutlet`.\n */\nexport abstract class IGuiPortal<T> {\n  private _attachedHost: IGuiPortalOutlet | null;\n  private _disposeFn: (() => void) | null;\n\n  /** 将 当前的Portal 附加到宿主 */\n  attach(host: IGuiPortalOutlet): T {\n    this._attachedHost = host;\n    return <T>host.attach(this);\n  }\n\n  /** 从 宿主 中分离出 当前的Portal */\n  detach(): void {\n    let host = this._attachedHost;\n\n    if (host != null) {\n      this._attachedHost = null;\n      host.detach();\n    }\n  }\n\n  /** 当前的Portal 是否已经连接到 宿主 */\n  get isAttached(): boolean {\n    return this._attachedHost != null;\n  }\n\n  /**\n   * 设置附加的宿主\n   */\n  _setAttachedHost(host: IGuiPortalOutlet | null) {\n    this._attachedHost = host;\n  }\n\n  /** 设置清理处理函数 */\n  _setDisposeFn(fn: () => void) {\n    this._disposeFn = fn;\n  }\n\n  /** 执行清理处理函数 */\n  _invokeDisposeFn() {\n    if (this._disposeFn) {\n      this._disposeFn();\n      this._disposeFn = null;\n    }\n  }\n}\n\n\n/**\n * `GuiComponentPortal` 是代表某个 组件 的 Portal\n */\nexport class GuiComponentPortal<T> extends IGuiPortal<ComponentRef<T>> {\n\n  component: ComponentType<T>;\n\n  constructor(\n    component: ComponentType<T>\n  ) {\n    super();\n    this.component = component;\n  }\n}\n\n\n/**\n * `GuiTemplatePortal`是代表某个嵌入模板（TemplateRef）的 Portal\n */\nexport class GuiTemplatePortal<C = any> extends IGuiPortal<EmbeddedViewRef<C>> {\n\n  templateRef: TemplateRef<C>;\n  viewContainerRef: ViewContainerRef;\n  context: C | undefined;\n\n  constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C, public injector?: Injector) {\n    super();\n    this.templateRef = template;\n    this.viewContainerRef = viewContainerRef;\n    this.context = context;\n  }\n\n  get origin(): ElementRef {\n    return this.templateRef.elementRef;\n  }\n\n  override attach(host: IGuiPortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n    this.context = context;\n    return super.attach(host);\n  }\n\n  override detach(): void {\n    this.context = undefined;\n    return super.detach();\n  }\n}\n\n\n/**\n * 代表某个 DOM 的 Portal\n */\nexport class GuiDomPortal<T = HTMLElement> extends IGuiPortal<T> {\n  readonly element: T;\n\n  constructor(element: T | ElementRef<T>) {\n    super();\n    this.element = element instanceof ElementRef ? element.nativeElement : element;\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ComponentRef,\n  Directive,\n  EmbeddedViewRef,\n  EventEmitter,\n  Inject,\n  OnDestroy,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {GuiComponentPortal, GuiDomPortal, GuiTemplatePortal, IGuiPortal, IGuiPortalOutlet} from './portal';\n\n/**\n * GuiTemplatePortal的指令版本\n */\n@Directive({\n  selector: '[guiPortal]'\n})\nexport class GuiPortal extends GuiTemplatePortal {\n  constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n    super(templateRef, viewContainerRef);\n  }\n}\n\n/**\n * 对 GuiPortalOutlet 的可能附加引用。\n */\nexport type GuiPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n/**\n * 插槽的指令版本\n *\n * 使用说明:\n * `<ng-template [guiPortalOutlet]=\"anyPortal\"></ng-template>`\n */\n@Directive({\n  selector: '[guiPortalOutlet]',\n  inputs: ['portal: guiPortalOutlet']\n})\nexport class GuiPortalOutlet implements IGuiPortalOutlet, OnInit, OnDestroy {\n  private _document: Document;\n\n  /** Portal是否已经初始化 */\n  private _isInitialized = false;\n\n  /** 当前附加的 component/view ref 引用 */\n  private _attachedRef: GuiPortalOutletAttachedRef;\n\n  /** 当前附加到插槽的的Portal */\n  protected _attachedPortal: IGuiPortal<any> | null = null;\n\n  /** 是否已经清理 */\n  private _isDisposed: boolean = false;\n\n  /** 当Portal连接到插槽时发出的事件流 */\n  @Output() readonly attached: EventEmitter<GuiPortalOutletAttachedRef> =\n    new EventEmitter<GuiPortalOutletAttachedRef>();\n\n  constructor(\n    private _viewContainerRef: ViewContainerRef,\n    @Inject(DOCUMENT) _document: any\n  ) {\n    this._document = _document;\n  }\n\n  ngOnInit() {\n    this._isInitialized = true;\n  }\n\n  ngOnDestroy() {\n    this.dispose();\n    this._attachedPortal = null;\n    this._attachedRef = null;\n  }\n\n  /** 与插槽关联的Portal */\n  get portal(): IGuiPortal<any> | null {\n    return this._attachedPortal;\n  }\n\n  /** 此宿主是否已经附加Portal */\n  get hasAttached(): boolean {\n    return !!this._attachedPortal;\n  }\n\n  /** 附加到Portal的Component或者View引用  */\n  get attachedRef(): GuiPortalOutletAttachedRef {\n    return this._attachedRef;\n  }\n\n  /**\n   * 设置需要附加到宿主的Portal\n   * @param portal 附加到宿主的Portal\n   */\n  set portal(portal: IGuiPortal<any> | null | undefined | '') {\n\n    if (this.hasAttached && !portal && !this._isInitialized) {\n      return;\n    }\n\n    if (this.hasAttached) {\n      this.detach();\n    }\n\n    if (portal) {\n      this.attach(portal);\n    }\n\n    this._attachedPortal = portal || null;\n  }\n\n  /** 将Portal附加到插槽 */\n  public attach(portal: IGuiPortal<any>): any {\n    if (this._isDisposed) {\n      throw Error('This PortalOutlet has already been disposed');\n    }\n\n    if (portal instanceof GuiComponentPortal) {\n      return this._attachComponentPortal(portal);\n    } else if (portal instanceof GuiTemplatePortal) {\n      return this._attachTemplatePortal(portal);\n    } else if (portal instanceof GuiDomPortal) {\n      return this._attachDomPortal(portal);\n    }\n  }\n\n  /** 从插槽中分离出当前连接的Portal */\n  public detach(): void {\n    if (!this.hasAttached) {\n      return;\n    }\n\n    if (this._attachedPortal) {\n      this._attachedPortal._setAttachedHost(null);\n      this._attachedPortal._invokeDisposeFn();\n      this._attachedPortal = null;\n    }\n  }\n\n  /** 在插槽被破坏之前执行清理 */\n  public dispose(): void {\n    if (this.hasAttached) {\n      this.detach();\n    }\n    this._isDisposed = true;\n  }\n\n  private _attachComponentPortal<T>(portal: GuiComponentPortal<T>): ComponentRef<T> {\n    // 在视图中创建组件\n    const ref = this._viewContainerRef.createComponent(\n      portal.component\n    );\n\n    // 设置Portal数据\n    portal._setAttachedHost(this);\n    portal._setDisposeFn(() => ref.destroy());\n\n    // 保存附加数据并触发事件\n    this._attachedPortal = portal;\n    this._attachedRef = ref;\n    this.attached.emit(ref);\n\n    return ref;\n  }\n\n  private _attachTemplatePortal<C>(portal: GuiTemplatePortal<C>): EmbeddedViewRef<C> {\n    // 创建模版视图\n    const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n\n    // 设置Portal数据\n    portal._setAttachedHost(this);\n    portal._setDisposeFn(() => {\n      let index = this._viewContainerRef.indexOf(viewRef);\n      if (index !== -1) {\n        this._viewContainerRef.remove(index);\n      }\n    });\n\n    // 保存附加数据并触发事件\n    this._attachedPortal = portal;\n    this._attachedRef = viewRef;\n    this.attached.emit(viewRef);\n\n    return viewRef;\n  }\n\n  private _attachDomPortal(portal: GuiDomPortal) {\n    const element = portal.element;\n    if (!element.parentNode) {\n      throw Error('DOM portal content must be attached to a parent node.');\n    }\n\n    portal._setAttachedHost(this);\n\n    // 附加元素\n    const anchorNode = this._document.createComment('gui-dom-portal');\n    element.parentNode!.insertBefore(anchorNode, element);\n    this._getRootNode().appendChild(element);\n\n    // 设置Portal数据\n    portal._setAttachedHost(this);\n    portal._setDisposeFn(() => anchorNode.parentNode!.replaceChild(element, anchorNode));\n\n    // 保存附加数据并触发事件\n    this._attachedPortal = portal;\n    this.attached.emit();\n  };\n\n  private _getRootNode(): HTMLElement {\n    const nativeElement: Node = this._viewContainerRef.element.nativeElement;\n\n    return (\n      nativeElement.nodeType === nativeElement.ELEMENT_NODE\n        ? nativeElement\n        : nativeElement.parentNode!\n    ) as HTMLElement;\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {GuiPortal, GuiPortalOutlet} from './portal-outlet';\n\n@NgModule({\n  declarations: [\n    GuiPortal,\n    GuiPortalOutlet\n  ],\n  exports: [\n    GuiPortal,\n    GuiPortalOutlet\n  ]\n})\nexport class GuiPortalModule {\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './portal.module';\nexport * from './portal';\nexport * from './portal-outlet';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiPlatformModule} from '../platform';\nimport {GuiPortalModule} from '../portal';\n\n\n@NgModule({\n  declarations: [\n  ],\n  imports: [\n    CommonModule,\n    GuiPlatformModule,\n    GuiPortalModule\n  ],\n  exports: [\n  ]\n})\nexport class GuiOverlayModule {}\n","import {ApplicationRef, ComponentRef, createComponent, EmbeddedViewRef, Injector, NgZone} from '@angular/core';\nimport {Location} from '@angular/common';\nimport {Observable, Subject} from 'rxjs';\nimport {GuiComponentPortal, GuiDomPortal, GuiTemplatePortal, IGuiPortal, IGuiPortalOutlet} from '../portal';\n\n\n/**\n * 使用 Overlay 服务创建的叠加层的引用\n * 用于操作或处置叠加层\n */\nexport class GuiOverlayRef implements IGuiPortalOutlet {\n\n  /** 是否已经清理 */\n  private _isDisposed: boolean = false;\n\n  /** 当前附加的 Portal */\n  private _attachedPortal: IGuiPortal<any> | null = null;\n  /** 当前附加的HTML元素 */\n  private _portalElement: HTMLElement;\n  /** 过渡动画结束处理 */\n  private _portalTransitionendHandler = (event: TransitionEvent) => {\n    this._disposePortal(event.target as HTMLElement | null);\n  };\n\n  private readonly _attached = new Subject<void>();\n  private readonly _detached = new Subject<void>();\n\n  /** 显示时附加的动画类 */\n  private showingClass = 'showing';\n\n  constructor(\n    private _hostElement: HTMLElement,\n    private _appRef: ApplicationRef,\n    private _defaultInjector: Injector,\n    private _ngZone: NgZone,\n    private _document: Document,\n    private _location: Location\n  ) {\n    // 当用户在历史中后退/前进时清除覆盖层\n    // 注意: 这通常不包括点击链接（除非用户正在使用`HashLocationStrategy`)\n    this._location.subscribe(() => {\n      this.dispose();\n    });\n  }\n\n  /** 宿主HTML元素 */\n  get hostElement(): HTMLElement {\n    return this._hostElement;\n  }\n\n  /** 叠加层HTML元素 */\n  get portalElement(): HTMLElement {\n    return this._portalElement;\n  }\n\n\n  /** 此宿主是否已经附加Portal */\n  get hasAttached(): boolean {\n    return !!this._attachedPortal;\n  }\n\n  /** 附加到叠加层时发出的可观察对象 */\n  attached(): Observable<void> {\n    return this._attached;\n  }\n\n  /** 从叠加层分离时发出的可观察对象 */\n  detached(): Observable<void> {\n    return this._detached;\n  }\n\n  attach<T>(portal: GuiComponentPortal<T>): ComponentRef<T>;\n  attach<T>(portal: GuiTemplatePortal<T>): EmbeddedViewRef<T>;\n  attach(portal: any): any;\n\n  /**\n   * 将Portal附加到Host中\n   *\n   * @param portal 附加到叠加层的Portal\n   * @returns 附加后的引用\n   */\n  public attach(portal: IGuiPortal<any>): any {\n    if (this._isDisposed) {\n      throw Error('This Overlay has already been disposed');\n    }\n\n    // 禁用滚动\n    this._hostElement.setAttribute('style', 'overflow: hidden');\n\n    // 创建叠加内容\n    if (portal instanceof GuiComponentPortal) {\n      return this._attachComponentPortal(portal);\n    } else if (portal instanceof GuiTemplatePortal) {\n      return this._attachTemplatePortal(portal);\n    } else if (portal instanceof GuiDomPortal) {\n      return this._attachDomPortal(portal);\n    }\n  }\n\n\n  /**\n   * 从叠加层中分离出当前连接的Portal\n   */\n  public detach(): void {\n    if (!this.hasAttached) {\n      return;\n    }\n\n    // 允许滚动\n    this._hostElement.removeAttribute('style');\n\n    this._detachPortal();\n  }\n\n  /** 清理覆盖层 */\n  public dispose(): void {\n    if (this.hasAttached) {\n      this._hostElement.removeAttribute('style');\n      this._disposePortal(this._portalElement);\n    }\n\n    this._attached.complete();\n    this._detached.complete();\n\n    this._hostElement = null!;\n    this._isDisposed = true;\n  }\n\n  ///\n  /// 附加相关\n  ///\n\n  // 附加组件Portal\n  private _attachComponentPortal<T>(portal: GuiComponentPortal<T>): ComponentRef<T> {\n\n    // 创建组件并将其附加到AppRef中\n\n    // 获取宿主元素\n    const hostElement = this._hostElement;\n\n    // 获取注入器\n    const environmentInjector = this._appRef.injector;\n\n    // 创建组件\n    const componentRef: ComponentRef<T> = createComponent(portal.component,\n      {environmentInjector, hostElement});\n    this._appRef!.attachView(componentRef.hostView);\n\n    // 将创建的组件添加到Host的HTML元素中\n    const rootNode = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n    this._hostElement.appendChild(rootNode);\n\n    // 保存覆盖HTML元素\n    this._portalElement = rootNode;\n    this._addShowingClass(this._portalElement!);\n\n    // 设置Portal数据\n    portal._setAttachedHost(this);\n    portal._setDisposeFn(() => {\n      if (this._appRef!.viewCount > 0) {\n        this._appRef!.detachView(componentRef.hostView);\n      }\n      componentRef.destroy();\n    });\n\n    // 保存附加数据并触发事件\n    this._attachedPortal = portal;\n    this._attached.next();\n\n    return componentRef;\n  }\n\n  // 附加模版Portal\n  private _attachTemplatePortal<C>(portal: GuiTemplatePortal<C>): EmbeddedViewRef<C> {\n\n    // 创建模版试图\n    let viewContainerRef = portal.viewContainerRef;\n    const viewRef = viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n      injector: portal.injector\n    });\n\n    // `createEmbeddedView` 方法会将视图添加为 viewContainer 的子视图\n    // 但是对于 Overlay，可以在 DOM 中的任何地方添加视图（例如 Overlay Container）\n    // 我们只是重新附加现有的根节点，以将视图移动到指定的宿主元素\n    viewRef.rootNodes.forEach(rootNode => this.hostElement.appendChild(rootNode));\n    // 移动后进行视图变化检测\n    viewRef.detectChanges();\n\n    // 保存覆盖HTML元素\n    this._portalElement = viewRef.rootNodes[0];\n    this._addShowingClass(this._portalElement!);\n\n    // 设置Portal数据\n    portal._setAttachedHost(this);\n    portal._setDisposeFn(() => {\n      let index = viewContainerRef.indexOf(viewRef);\n      if (index !== -1) {\n        viewContainerRef.remove(index);\n      }\n    });\n\n    // 保存已经附加的 Portal\n    this._attachedPortal = portal;\n    this._attached.next();\n\n    return viewRef;\n  }\n\n  // 附加DOM Portal\n  private _attachDomPortal(portal: GuiDomPortal) {\n    const element = portal.element;\n    if (!element.parentNode) {\n      throw Error('DOM portal content must be attached to a parent node.');\n    }\n\n    // 附加元素\n    const anchorNode = this._document.createComment('gui-dom-portal');\n    element.parentNode!.insertBefore(anchorNode, element);\n    this._hostElement.appendChild(element);\n\n    // 保存覆盖HTML元素\n    this._portalElement = element;\n    this._addShowingClass(this._portalElement!);\n\n    // 设置Portal数据\n    portal._setAttachedHost(this);\n    portal._setDisposeFn(() => anchorNode.parentNode!.replaceChild(element, anchorNode));\n\n    // 保存已经附加的 Portal\n    this._attachedPortal = portal;\n    this._attached.next();\n  };\n\n  // 分离Portal\n  private _detachPortal(): void {\n    if (this._portalElement) {\n      this._removeShowingClass(this._portalElement, this._portalTransitionendHandler);\n    }\n  }\n\n  // 清理Portal\n  private _disposePortal(element: HTMLElement | null) {\n    if (element && this._portalElement === element) {\n      this._ngZone.runOutsideAngular(() => {\n        element.removeEventListener('transitionend', this._portalTransitionendHandler);\n      });\n\n      if (this._attachedPortal) {\n        this._attachedPortal._setAttachedHost(null);\n        this._attachedPortal._invokeDisposeFn();\n        this._attachedPortal = null;\n      }\n\n      this._portalElement.remove();\n      this._portalElement = null!;\n\n      // 发送事件\n      this._detached.next();\n    }\n  }\n\n  ///\n  /// 过渡动画相关\n  ///\n\n  // 添加显示过渡动画CSS类\n  private _addShowingClass(element: HTMLElement) {\n    if (element) {\n      if (typeof requestAnimationFrame !== 'undefined') {\n        this._ngZone.runOutsideAngular(() => {\n          requestAnimationFrame(() => {\n            if (element) {\n              element.classList.add(this.showingClass);\n            }\n          });\n        });\n      } else {\n        element.classList.add(this.showingClass);\n      }\n    }\n  }\n\n  // 移除显示过渡动画CSS类, 并监听过渡动画结束事件\n  private _removeShowingClass(element: HTMLElement, callback: (event: TransitionEvent) => void) {\n    if (element) {\n      this._ngZone.runOutsideAngular(() => {\n        element.addEventListener('transitionend', callback);\n      });\n\n      element.classList.remove(this.showingClass);\n    }\n  }\n}\n","import {ApplicationRef, Inject, Injectable, Injector, NgZone} from '@angular/core';\nimport {DOCUMENT, Location} from '@angular/common';\nimport {GuiOverlayRef} from './overlay-ref';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GuiOverlay {\n\n  constructor(\n    private _appRef: ApplicationRef,\n    private _defaultInjector: Injector,\n    private _ngZone: NgZone,\n    @Inject(DOCUMENT) private _document: any,\n    private _location: Location\n  ) {\n  }\n\n  /**\n   * 创建一个叠加层引用\n   * @returns 叠加层引用, 用于创建叠加层\n   */\n  create(): GuiOverlayRef {\n    return new GuiOverlayRef(\n      this._document.body!,\n      this._appRef,\n      this._defaultInjector,\n      this._ngZone,\n      this._document,\n      this._location\n    );\n  }\n\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, Inject, InjectionToken, Input, ViewEncapsulation} from '@angular/core';\nimport {GuiTint} from '../core';\nimport {CommonModule} from '@angular/common';\n\nexport type GuiTypographyVariant =\n  'large-title' |\n  'title' | 'title2' | 'title3' |\n  'headline' |\n  'body' | 'callout' |\n  'sub-headline' | 'footnote' |\n  'caption' | 'caption2';\n\nexport type GuiTypographySize =\n  'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl' | 'default';\n\nexport type GuiTypographyHierarchy =\n  | 'primary'\n  | 'secondary'\n  | 'tertiary'\n  | 'quaternary';\n\nexport interface GuiTypographyDefaultOptions {\n  defaultSize: GuiTypographySize;\n}\n\nexport const GUI_TYPOGRAPHY_DEFAULT_OPTIONS =\n  new InjectionToken<GuiTypographyDefaultOptions>('GUI_TYPOGRAPHY_DEFAULT_OPTIONS', {\n    providedIn: 'root',\n    factory: GUI_TYPOGRAPHY_DEFAULT_OPTIONS_FACTORY\n  });\n\nexport function GUI_TYPOGRAPHY_DEFAULT_OPTIONS_FACTORY(): GuiTypographyDefaultOptions {\n  return {\n    defaultSize: 'default'\n  };\n}\n\n@Component({\n  selector: 'gui-typography',\n  standalone: true,\n  imports: [\n    CommonModule\n  ],\n  templateUrl: './typography.html',\n  styleUrls: ['./typography.scss'],\n  host: {\n    'class': 'gui-typography',\n    '[attr.variant]': 'variant',\n    '[attr.size]': 'size',\n    '[attr.hierarchy]': 'hierarchy',\n    '[attr.tint]': 'tint'\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  exportAs: 'guiTypography'\n})\nexport class GuiTypography {\n\n  @Input()\n  public variant: GuiTypographyVariant;\n\n  @Input()\n  public size: GuiTypographySize;\n\n  @Input()\n  public hierarchy: GuiTypographyHierarchy = 'primary';\n\n  @Input()\n  public tint: GuiTint = 'default';\n\n  constructor(@Inject(GUI_TYPOGRAPHY_DEFAULT_OPTIONS) _defaultOptions: GuiTypographyDefaultOptions) {\n    this.size = _defaultOptions.defaultSize;\n  }\n\n}\n","<ng-content></ng-content>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './typography';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n  selector: 'gui-box',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './box.html',\n  styleUrls: ['./box.scss'],\n  host: {\n    'class': 'gui-box'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiBox'\n})\nexport class GuiBox {\n\n}\n","<ng-content></ng-content>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './box';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {GuiTheme, GuiThemeModule} from '../theme';\nimport {GuiScreenSize, GuiScreenSizeModule} from '../screen-size';\nimport {CommonModule} from \"@angular/common\";\n\nexport type GuiContainerSize = 'xs' | 'sm' | 'md' | 'lg';\n\n@Component({\n  selector: 'gui-container',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiThemeModule,\n    GuiScreenSizeModule\n  ],\n  templateUrl: './container.html',\n  styleUrls: ['./container.scss'],\n  host: {\n    'class': 'gui-container',\n    '[attr.max-size]': 'maxSize',\n    '[attr.size]': 'screenSize.size',\n    '[attr.fixed]': 'fixed'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiContainer'\n})\nexport class GuiContainer {\n\n  static ngAcceptInputType_fixed: BooleanInput;\n\n  constructor(public screenSize: GuiScreenSize, public theme: GuiTheme) {\n  }\n\n  @Input()\n  public maxSize: GuiContainerSize;\n\n  @Input()\n  get fixed(): boolean {\n    return this._fixed;\n  }\n\n  set fixed(value: BooleanInput) {\n    this._fixed = coerceBooleanProperty(value);\n  }\n\n  private _fixed: boolean = false;\n\n}\n","<ng-content></ng-content>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './container';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {coerceNumberProperty, NumberInput} from '../coercion';\nimport {GuiScreenSize} from '../screen-size';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n  selector: 'gui-grid-item',\n  standalone: true,\n  imports: [\n    CommonModule\n  ],\n  templateUrl: './grid-item.html',\n  styleUrls: ['./grid-item.scss'],\n  host: {\n    'class': 'gui-grid-item',\n    '[style.grid-column]': '\"span \" + screenSize.matchScreenColumns(size, xs, sm, md, lg, xl)'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiGridItem'\n})\nexport class GuiGridItem {\n\n  static ngAcceptInputType_size: NumberInput;\n  static ngAcceptInputType_xs: NumberInput;\n  static ngAcceptInputType_sm: NumberInput;\n  static ngAcceptInputType_md: NumberInput;\n  static ngAcceptInputType_lg: NumberInput;\n  static ngAcceptInputType_xl: NumberInput;\n\n  constructor(public screenSize: GuiScreenSize) { }\n\n  @Input()\n  get size() { return this._size; }\n  set size(value: NumberInput) {\n    this._size = coerceNumberProperty(value);\n  }\n  private _size: number = 1;\n\n  @Input()\n  get xs() { return this._xs; }\n  set xs(value: NumberInput) {\n    this._xs = coerceNumberProperty(value);\n  }\n  private _xs: number | null = null;\n\n  @Input()\n  get sm() { return this._sm; }\n  set sm(value: NumberInput) {\n    this._sm = coerceNumberProperty(value);\n  }\n  private _sm: number | null = null;\n\n  @Input()\n  get md() { return this._md; }\n  set md(value: NumberInput) {\n    this._md = coerceNumberProperty(value);\n  }\n  private _md: number | null = null;\n\n  @Input()\n  get lg() { return this._lg; }\n  set lg(value: NumberInput) {\n    this._lg = coerceNumberProperty(value);\n  }\n  private _lg: number | null = null;\n\n  @Input()\n  get xl() { return this._xl; }\n  set xl(value: NumberInput) {\n    this._xl = coerceNumberProperty(value);\n  }\n  private _xl: number | null = null;\n\n}\n","<ng-content></ng-content>\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {coerceNumberProperty, NumberInput} from '../coercion';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n  selector: 'gui-grid',\n  standalone: true,\n  imports: [\n    CommonModule,\n  ],\n  templateUrl: './grid.html',\n  styleUrls: ['./grid.scss'],\n  host: {\n    'class': 'gui-grid',\n    '[style.grid-template-columns]': '\"repeat(\" + columns + \",minmax(0,1fr)\"',\n    '[style.grid-column-gap]': 'spacing',\n    '[style.grid-row-gap]': 'spacing'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiGrid'\n})\nexport class GuiGrid {\n\n  static ngAcceptInputType_columns: NumberInput;\n\n  constructor() {\n  }\n\n  @Input()\n  get columns() {\n    return this._columns;\n  }\n\n  set columns(value: NumberInput) {\n    this._columns = coerceNumberProperty(value);\n  }\n\n  private _columns: number = 12;\n\n  @Input()\n  get spacing(): string | null {\n    return this._spacing;\n  }\n\n  set spacing(value: string | null) {\n    this._spacing = value;\n  }\n\n  private _spacing: string | null = '8px';\n}\n","<ng-content></ng-content>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './grid-item';\nexport * from './grid';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\n\nexport type GuiHStackAlignment = 'top' | 'center' | 'bottom';\n\n@Component({\n  selector: 'gui-h-stack',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './h-stack.html',\n  styleUrls: ['./h-stack.scss'],\n  host: {\n    'class': 'gui-h-stack',\n    '[attr.reverse]': 'reverse',\n    '[attr.alignment]': 'alignment',\n    '[attr.full]': 'full',\n    '[attr.wrap]': 'wrap',\n    '[style.row-gap]': 'this.spacing',\n    '[style.column-gap]': 'this.spacing'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiHStack'\n})\nexport class GuiHStack {\n\n  static ngAcceptInputType_reverse: BooleanInput;\n  static ngAcceptInputType_full: BooleanInput;\n  static ngAcceptInputType_wrap: BooleanInput;\n\n  @Input()\n  get reverse(): boolean {\n    return this._reverse;\n  }\n\n  set reverse(value: BooleanInput) {\n    this._reverse = coerceBooleanProperty(value);\n  }\n\n  private _reverse: boolean = false;\n\n  @Input()\n  get alignment(): GuiHStackAlignment {\n    return this._alignment;\n  }\n\n  set alignment(value: GuiHStackAlignment) {\n    this._alignment = value;\n  }\n\n  private _alignment: GuiHStackAlignment = 'center';\n\n  @Input()\n  get full(): boolean {\n    return this._full;\n  }\n\n  set full(value: BooleanInput) {\n    this._full = coerceBooleanProperty(value);\n  }\n  private _full: boolean = false;\n\n  @Input()\n  get wrap(): boolean {\n    return this._wrap;\n  }\n\n  set wrap(value: BooleanInput) {\n    this._wrap = coerceBooleanProperty(value);\n  }\n  private _wrap: boolean = false;\n\n  @Input()\n  get spacing(): string | null {\n    return this._spacing;\n  }\n\n  set spacing(value: string | null) {\n    this._spacing = value;\n  }\n\n  private _spacing: string | null = null;\n\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n<ng-content></ng-content>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\n\nexport type GuiVStackAlignment = 'leading' | 'center' | 'trailing';\n\n@Component({\n  selector: 'gui-v-stack',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './v-stack.html',\n  styleUrls: ['./v-stack.scss'],\n  host: {\n    'class': 'gui-v-stack',\n    '[attr.reverse]': 'reverse',\n    '[attr.full]': 'full',\n    '[attr.alignment]': 'alignment',\n    '[attr.wrap]': 'wrap',\n    '[style.row-gap]': 'this.spacing',\n    '[style.column-gap]': 'this.spacing'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiVStack'\n})\nexport class GuiVStack {\n\n  static ngAcceptInputType_reverse: BooleanInput;\n  static ngAcceptInputType_full: BooleanInput;\n  static ngAcceptInputType_wrap: BooleanInput;\n\n  @Input()\n  get reverse(): boolean {\n    return this._reverse;\n  }\n\n  set reverse(value: BooleanInput) {\n    this._reverse = coerceBooleanProperty(value);\n  }\n\n  private _reverse: boolean = false;\n\n  @Input()\n  get full(): boolean {\n    return this._full;\n  }\n\n  set full(value: BooleanInput) {\n    this._full = coerceBooleanProperty(value);\n  }\n\n  private _full: boolean = false;\n\n  @Input()\n  get alignment(): GuiVStackAlignment {\n    return this._alignment;\n  }\n\n  set alignment(value: GuiVStackAlignment) {\n    this._alignment = value;\n  }\n\n  private _alignment: GuiVStackAlignment = 'center';\n\n  @Input()\n  get wrap(): boolean {\n    return this._wrap;\n  }\n\n  set wrap(value: BooleanInput) {\n    this._wrap = coerceBooleanProperty(value);\n  }\n\n  private _wrap: boolean = false;\n\n  @Input()\n  get spacing(): string | null {\n    return this._spacing;\n  }\n\n  set spacing(value: string | null) {\n    this._spacing = value;\n  }\n\n  private _spacing: string | null = null;\n\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n<ng-content></ng-content>\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n  selector: 'gui-spacer',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './spacer.html',\n  styleUrls: ['./spacer.scss'],\n  host: {\n    'class': 'gui-spacer',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSpacer'\n})\nexport class GuiSpacer {\n\n  constructor() {\n  }\n\n}\n","<ng-content></ng-content>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './h-stack';\nexport * from './v-stack';\nexport * from './spacer';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {CommonModule} from \"@angular/common\";\n\n@Component({\n  selector: 'gui-divider',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './divider.html',\n  styleUrls: ['./divider.scss'],\n  host: {\n    'role': 'separator',\n    'class': 'gui-divider',\n    '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n    '[attr.vertical]': 'vertical',\n    '[attr.horizontal]': '!vertical'\n  },\n  inputs: [\n    'vertical'\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiDivider'\n})\nexport class GuiDivider {\n\n  static ngAcceptInputType_vertical: BooleanInput;\n\n  constructor() {\n  }\n\n  /** 是否是竖向分割线 */\n  @Input()\n  get vertical(): boolean {\n    return this._vertical;\n  }\n\n  set vertical(value: BooleanInput) {\n    this._vertical = coerceBooleanProperty(value);\n  }\n\n  private _vertical: boolean = false;\n\n}\n","\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './divider';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {GuiControlSize, GuiTint} from '../core';\nimport {CommonModule} from \"@angular/common\";\n\n/** 形状 */\nexport type GuiAvatarShape = 'circle' | 'square' | 'rounded';\n\n@Component({\n  selector: 'gui-avatar',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './avatar.html',\n  styleUrls: ['./avatar.scss'],\n  host: {\n    'role': 'figure',\n    'class': 'gui-avatar',\n    '[attr.size]': 'size',\n    '[attr.tint]': 'tint',\n    '[style.width]': '_size()',\n    '[style.height]': '_size()'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiAvatar'\n})\nexport class GuiAvatar {\n\n  /** 头像图片地址 */\n  @Input()\n  public src: string;\n\n  /** 尺寸 */\n  @Input()\n  public size: GuiControlSize | string = 'base';\n\n  /** 色调 */\n  @Input()\n  public tint: GuiTint = 'blue';\n\n  constructor() {\n  }\n\n  public _size(): string | null {\n    switch (this.size) {\n      case 'base':\n      case 'small':\n      case 'large':\n        return null;\n      default:\n        return this.size;\n    }\n  }\n}\n","<ng-container *ngIf=\"src\">\n  <img [src]=\"src\" alt=\"avatar\">\n</ng-container>\n<ng-container *ngIf=\"!src\">\n  <ng-content></ng-content>\n</ng-container>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './avatar';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport type GuiAnchorOriginHorizontal = 'left' | 'center' | 'right' | number;\nexport type GuiAnchorOriginVertical = 'top' | 'center' | 'bottom' | number;\n\nexport class GuiAnchorOrigin {\n  horizontal: GuiAnchorOriginHorizontal;\n  vertical: GuiAnchorOriginVertical;\n\n  constructor(horizontal: GuiAnchorOriginHorizontal, vertical: GuiAnchorOriginVertical) {\n    this.horizontal = horizontal;\n    this.vertical = vertical;\n  }\n}\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {GuiAnchorOrigin} from '../core/anchor-origin';\nimport {GuiTint} from '../core';\nimport {BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput} from '../coercion';\nimport {CommonModule} from \"@angular/common\";\n\nexport type GuiBadgeOverlap = 'circular' | 'rectangular';\n\n@Component({\n  selector: 'gui-badge',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './badge.html',\n  styleUrls: ['./badge.scss'],\n  host: {\n    'role': 'button',\n    'class': 'gui-badge-wrap'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiBadge'\n})\nexport class GuiBadge {\n\n  static ngAcceptInputType_invisible: BooleanInput;\n  static ngAcceptInputType_count: NumberInput;\n  static ngAcceptInputType_showZero: BooleanInput;\n  static ngAcceptInputType_max: NumberInput;\n  static ngAcceptInputType_dot: BooleanInput;\n\n  @Input()\n  anchorOrigin: GuiAnchorOrigin = new GuiAnchorOrigin('left', 'bottom');\n\n  @Input()\n  public tint: GuiTint = 'red';\n\n  @Input()\n  public overlap: GuiBadgeOverlap = 'rectangular';\n\n  @Input()\n  get invisible(): boolean {\n    return this._invisible;\n  }\n\n  set invisible(value: BooleanInput) {\n    this._invisible = coerceBooleanProperty(value);\n  }\n\n  private _invisible: boolean = false;\n\n  @Input()\n  get count(): number {\n    return this._count;\n  }\n\n  set count(value: NumberInput) {\n    const count = coerceNumberProperty(value);\n    this._count = count >= 0 ? count : 0;\n  }\n\n  private _count: number = 0;\n\n  @Input()\n  get showZero(): boolean {\n    return this._showZero;\n  }\n\n  set showZero(value: BooleanInput) {\n    this._showZero = coerceBooleanProperty(value);\n  }\n\n  private _showZero: boolean = false;\n\n  @Input()\n  get max(): number {\n    return this._max;\n  }\n\n  set max(value: NumberInput) {\n    this._max = coerceNumberProperty(value);\n  }\n\n  private _max: number = 99;\n\n  @Input()\n  get dot(): boolean {\n    return this._dot;\n  }\n\n  set dot(value: BooleanInput) {\n    this._dot = coerceBooleanProperty(value);\n  }\n\n  private _dot: boolean = false;\n\n  constructor() {\n  }\n\n  _visible(): boolean {\n    return !this.invisible && (this.dot || this.count > 0 || this.showZero);\n  }\n\n  _label(): string {\n    if (this.dot) {\n      return '';\n    } else {\n      if (this._count <= this._max) {\n        return this._count + '';\n      } else {\n        return this._max + '+';\n      }\n    }\n  }\n\n}\n","<ng-content></ng-content>\n<span class=\"gui-badge\" [attr.tint]=\"tint\" [attr.visible]=\"_visible()\" [attr.dot]=\"dot\" [attr.overlap]=\"overlap\">\n  {{_label()}}\n</span>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './badge';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'gui-card',\n  templateUrl: './card.html',\n  styleUrls: ['./card.scss'],\n  host: {\n    'class': 'gui-card',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiCard'\n})\nexport class GuiCard implements OnInit {\n\n  constructor() {\n  }\n\n  ngOnInit(): void {\n  }\n\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n<ng-content></ng-content>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiCard} from './card';\n\n\n@NgModule({\n  declarations: [\n    GuiCard\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    GuiCard\n  ]\n})\nexport class GuiCardModule {\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './card.module';\nexport * from './card';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {animate, AnimationTriggerMetadata, state, style, transition, trigger,} from '@angular/animations';\n\nexport const GUI_COLLAPSE_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n\nexport const GuiCollapseAnimations: {\n  readonly indicatorRotate90: AnimationTriggerMetadata;\n  readonly indicatorRotate180: AnimationTriggerMetadata;\n} = {\n  /** 旋转箭头的动画 */\n  indicatorRotate90: trigger('indicatorRotate90', [\n    state('collapsed, void', style({transform: 'rotate(0deg)'})),\n    state('expanded', style({transform: 'rotate(90deg)'})),\n    transition(\n      'expanded <=> collapsed',\n      animate(GUI_COLLAPSE_ANIMATION_TIMING),\n    ),\n  ]),\n  /** 旋转箭头的动画 */\n  indicatorRotate180: trigger('indicatorRotate180', [\n    state('collapsed, void', style({transform: 'rotate(0deg)'})),\n    state('expanded', style({transform: 'rotate(180deg)'})),\n    transition(\n      'expanded <=> collapsed',\n      animate(GUI_COLLAPSE_ANIMATION_TIMING),\n    ),\n  ]),\n};\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {GUI_COLLAPSE_ANIMATION_TIMING} from './collapse-animations';\nimport {animate, state, style, transition, trigger} from '@angular/animations';\nimport {CommonModule} from '@angular/common';\n\nexport type GuiCollapseState = 'expanded' | 'collapsed';\n\n@Component({\n  selector: 'gui-collapse',\n  standalone: true,\n  imports: [\n    CommonModule\n  ],\n  templateUrl: './collapse.html',\n  styleUrls: ['./collapse.scss'],\n  host: {\n    'class': 'gui-collapse',\n    '[attr.state]': 'expanded',\n    '[attr.aria-expanded]': 'expanded'\n  },\n  inputs: [\n    'disabled', 'expanded'\n  ],\n  animations: [\n    trigger('bodyExpansion', [\n      state('collapsed, void', style({height: '0px', visibility: 'hidden'})),\n      state('expanded', style({height: '*', visibility: 'visible'})),\n      transition(\n        'expanded <=> collapsed',\n        animate(GUI_COLLAPSE_ANIMATION_TIMING),\n      ),\n    ])\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiCollapse'\n})\nexport class GuiCollapse implements OnDestroy {\n\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_expanded: BooleanInput;\n\n  get disabled(): boolean { return this._disabled; }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled: boolean = false;\n\n  @Output()\n  readonly expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  @Input()\n  get expanded(): boolean {\n    return this._expanded;\n  }\n  set expanded(value: BooleanInput) {\n    const expanded = coerceBooleanProperty(value);\n\n    if (this._expanded !== expanded) {\n      this._expanded = expanded;\n      this._changeDetectorRef.markForCheck();\n      this.expandedChange.emit(expanded);\n    }\n  }\n  private _expanded = false;\n\n  constructor(private _changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnDestroy() {\n    this.expandedChange.complete();\n  }\n\n  public collapse(): void {\n    if (!this.disabled) {\n      this.expanded = false;\n    }\n  }\n\n  public expand(): void {\n    if (!this.disabled) {\n      this.expanded = true;\n    }\n  }\n\n  public toggle(): void {\n    if (!this.disabled) {\n      this.expanded = !this.expanded;\n    }\n  }\n\n  get animationState(): GuiCollapseState {\n    return this.expanded ? 'expanded' : 'collapsed';\n  }\n}\n","<div [@bodyExpansion]=\"animationState\">\n  <ng-content></ng-content>\n</div>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './collapse-animations';\nexport * from './collapse';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {GuiControlSize, GuiTint} from '../core';\nimport {CommonModule} from \"@angular/common\";\n\n@Component({\n  selector: 'gui-dot',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './dot.html',\n  styleUrls: ['./dot.scss'],\n  host: {\n    'class': 'gui-dot',\n    'appearance': 'button',\n    '[attr.size]': 'size',\n    '[attr.tint]': 'tint'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiDot'\n})\nexport class GuiDot {\n\n  /** 尺寸 */\n  @Input()\n  public size: GuiControlSize = 'base';\n\n  /** 色调 */\n  @Input()\n  public tint: GuiTint = 'default';\n\n  constructor() { }\n\n}\n","","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './dot';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {\n  ErrorHandler,\n  Inject,\n  Injectable,\n  InjectionToken,\n  OnDestroy,\n  Optional,\n  SecurityContext,\n  SkipSelf,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml, SafeResourceUrl} from '@angular/platform-browser';\nimport {Observable, throwError} from 'rxjs';\nimport {finalize, map, share} from 'rxjs/operators';\n\n/** 可用于配置图标或图标集中的图标如何呈现的选项. */\nexport interface GuiSvgIconOptions {\n  /** 在图标上设置的视图框 */\n  viewBox?: string;\n\n  /** 是否使用 HTTP 凭据获取图标或图标集 */\n  withCredentials?: boolean;\n}\n\n/**\n * 图标的配置，包括 URL 和可能缓存的 SVG 元素\n * @docs-private\n */\nclass GuiSvgIconItem {\n  svgElement: SVGElement | null;\n\n  constructor(\n    public url: string,\n    public options?: GuiSvgIconOptions) {}\n}\n\n/**\n * 用于注册和显示的图标服务\n **/\n@Injectable({providedIn: 'root'})\nexport class GuiSvgIconRegistry implements OnDestroy {\n\n  private _document: Document;\n\n  /**\n   * 单个图标的 URL 和缓存的 SVG 元素\n   * 键的格式为“[namespace]:[icon]”\n   **/\n  private _svgIconItems = new Map<string, GuiSvgIconItem>();\n\n  /** 正在进行的图标获取。用于将多个请求合并到同一个 URL */\n  private _inProgressUrlFetches = new Map<string, Observable<string>>();\n\n  constructor(\n    @Optional() private _httpClient: HttpClient,\n    private _sanitizer: DomSanitizer,\n    @Optional() @Inject(DOCUMENT) document: any,\n    private readonly _errorHandler: ErrorHandler) {\n      this._document = document;\n    }\n\n  /**\n   * 在默认命名空间中通过 URL 注册一个图标\n   * @param iconName 应在其下注册图标的名称\n   * @param url 加载图标的URL\n   * @param options 图标选项\n   */\n  addSvgIcon(iconName: string,\n             url: string,\n             options?: GuiSvgIconOptions): this {\n    return this.addSvgIconInNamespace('', iconName, url, options);\n  }\n\n  /**\n   * 在指定的命名空间中通过 URL 注册一个图标\n   * @param namespace 应在其中注册图标的命名空间\n   * @param iconName 应在其下注册图标的名称\n   * @param url 加载图标的URL\n   * @param options 图标选项\n   */\n  addSvgIconInNamespace(namespace: string,\n                        iconName: string,\n                        url: string,\n                        options?: GuiSvgIconOptions): this {\n    return this._addSvgIconItem(namespace, iconName, new GuiSvgIconItem(url, options));\n  }\n\n  /**\n   * 返回一个 Observable，它产生具有给定名称和命名空间的图标（作为 `<svg>` DOM 元素）\n   * 该图标必须之前已使用 addIcon 或 addIconSet 注册过\n   * 如果不是，Observable 将抛出错误\n   *\n   * @param iconName 应在其下注册图标的名称\n   * @param namespace 应在其中注册图标的命名空间\n   */\n  getNamedSvgIcon(iconName: string, namespace: string = ''): Observable<SVGElement> {\n    const key = this._iconKey(namespace, iconName);\n    let item = this._svgIconItems.get(key);\n\n    // 如果可能，返回（副本）缓存图标\n    if (item) {\n      if (item.svgElement) {\n        this._cloneSvg(item.svgElement);\n      } else {\n        return this._fetchIcon(item).pipe(\n          map((svg) => {\n            item!.svgElement = this._svgElementFromString(this._sanitizer.bypassSecurityTrustHtml(svg));\n            this._setSvgAttributes(item!.svgElement, item!.options);\n            return item!.svgElement;\n          }),\n          map(svg => this._cloneSvg(svg))\n        );\n      }\n    }\n\n    return throwError(() => Error(`Unable to find icon with the name \"${key}\"`));\n  }\n\n  ngOnDestroy() {\n    this._svgIconItems.clear();\n  }\n\n  /**\n   * 从给定的 SVG 字符串创建一个 DOM 元素\n   */\n  private _svgElementFromString(str: SafeHtml): SVGElement {\n    const div = this._document.createElement('DIV');\n    div.innerHTML = str as unknown as string;\n    const svg = div.querySelector('svg') as SVGElement;\n\n    if (!svg) {\n      throw Error('<svg> tag not found');\n    }\n\n    return svg;\n  }\n\n  /**\n   * 设置用作图标的 SVG 元素的默认属性\n   */\n  private _setSvgAttributes(svg: SVGElement, options?: GuiSvgIconOptions): SVGElement {\n    svg.setAttribute('fit', '');\n    svg.setAttribute('height', '100%');\n    svg.setAttribute('width', '100%');\n    svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n    svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n\n    if (options && options.viewBox) {\n      svg.setAttribute('viewBox', options.viewBox);\n    }\n\n    return svg;\n  }\n\n  /**\n   * 返回一个 Observable，它产生给定图标的字符串内容\n   * 结果可能会被缓存，因此未来使用相同 URL 的调用可能不会导致另一个 HTTP 请求\n   */\n  private _fetchIcon(iconItem: GuiSvgIconItem): Observable<string> {\n    const {url, options} = iconItem;\n    const withCredentials = options?.withCredentials ?? false;\n\n    // 判断 HttpClient 是否为空\n    if (!this._httpClient) {\n      throw Error('Could not find HttpClient provider for use with Angular Glam UI icons. ' +\n        'Please include the HttpClientModule from @angular/common/http in your ' +\n        'app imports.');\n    }\n\n    // 存储正在进行的获取以避免在该 URL 的请求\n    // 已经在进行中时发送对该 URL 的重复请求。有必要在 http.get() 返回的\n    // Observable 上调用 share() 以便多个订阅者不会导致多个 XHR\n    const inProgressFetch = this._inProgressUrlFetches.get(url);\n\n    // 如果已经存在了重复请求, 则直接返回上一个请求\n    if (inProgressFetch) {\n      return inProgressFetch;\n    }\n\n    // 使用 HttpClient 发送请求\n    const req = this._httpClient.get(url, {responseType: 'text', withCredentials}).pipe(\n      finalize(() => this._inProgressUrlFetches.delete(url)),\n      share(),\n    );\n\n    // 保存 URL 请求\n    this._inProgressUrlFetches.set(url, req);\n\n    return req;\n  }\n\n  /** 返回用于图标命名空间和名称的缓存键 */\n  private _iconKey(namespace: string, name: string): string {\n    return namespace + ':' + name;\n  }\n\n  /**\n   * 在指定的命名空间中按名称注册图标配置\n   * @param namespace Namespace in which to register the icon item.\n   * @param iconName Name under which to register the item.\n   * @param item Config to be registered.\n   */\n  private _addSvgIconItem(namespace: string, iconName: string, item: GuiSvgIconItem): this {\n    this._svgIconItems.set(this._iconKey(namespace, iconName), item);\n    return this;\n  }\n\n  /** 复制 SVG 结点 */\n  private _cloneSvg(svg: SVGElement): SVGElement {\n    return svg.cloneNode(true) as SVGElement;\n  }\n}\n\n/** @docs-private */\nexport function GUI_SVG_ICON_REGISTRY_PROVIDER_FACTORY(\n  parentRegistry: GuiSvgIconRegistry,\n  httpClient: HttpClient,\n  sanitizer: DomSanitizer,\n  errorHandler: ErrorHandler,\n  document?: any) {\n  return parentRegistry || new GuiSvgIconRegistry(httpClient, sanitizer, document, errorHandler);\n}\n\n/** @docs-private */\nexport const GUI_SVG_ICON_REGISTRY_PROVIDER = {\n  // If there is already an GuiIconRegistry available, use that. Otherwise, provide a new one.\n  provide: GuiSvgIconRegistry,\n  deps: [\n    [new Optional(), new SkipSelf(), GuiSvgIconRegistry],\n    [new Optional(), HttpClient],\n    DomSanitizer,\n    ErrorHandler,\n    [new Optional(), DOCUMENT as InjectionToken<any>],\n  ],\n  useFactory: GUI_SVG_ICON_REGISTRY_PROVIDER_FACTORY,\n};\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Inject,\n  InjectionToken,\n  Input,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiControlSize, GuiTint} from '../core';\nimport {GuiSvgIconRegistry} from './icon-registry';\nimport {CommonModule} from \"@angular/common\";\nimport {HttpClientModule} from \"@angular/common/http\";\n\nexport interface GuiIconDefaultOptions {\n  svgIconPath: string;\n}\n\n/** 用于覆盖 `gui-icon` 的默认选项的注入令牌 */\nexport const GUI_ICON_DEFAULT_OPTIONS =\n  new InjectionToken<GuiIconDefaultOptions>('GUI_ICON_DEFAULT_OPTIONS', {\n    providedIn: 'root',\n    factory: GUI_ICON_DEFAULT_OPTIONS_FACTORY\n  });\n\nexport function GUI_ICON_DEFAULT_OPTIONS_FACTORY(): GuiIconDefaultOptions {\n  return {\n    svgIconPath: './assets/svg'\n  };\n}\n\n@Component({\n  selector: 'gui-icon',\n  standalone: true,\n  imports: [\n    CommonModule,\n    HttpClientModule\n  ],\n  templateUrl: './icon.html',\n  styleUrls: ['./icon.scss'],\n  host: {\n    'role': 'img',\n    'class': 'gui-icon',\n    'appearance': 'icon',\n    '[attr.size]': 'size',\n    '[attr.tint]': 'tint',\n    '[attr.gui-icon-name]': 'name'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiIcon'\n})\nexport class GuiIcon {\n\n  constructor(@Inject(GUI_ICON_DEFAULT_OPTIONS) private _defaultOptions: GuiIconDefaultOptions,\n              private _iconRegistry: GuiSvgIconRegistry,\n              private _elementRef: ElementRef<HTMLElement>) {\n  }\n\n  /** 命名空间 */\n  @Input()\n  get namespace(): string {\n    return this._namespace;\n  }\n\n  set namespace(value: string) {\n    if (value !== this.namespace) {\n      this._namespace = value;\n      this._updateSvgIcon();\n    }\n  }\n\n  private _namespace: string = '';\n\n  /** 图标名称 */\n  @Input()\n  get name(): string {\n    return this._name;\n  }\n\n  set name(value: string) {\n    if (value !== this._name) {\n      this._name = value;\n      this._updateSvgIcon();\n    }\n  }\n\n  private _name: string;\n\n  /** 尺寸 */\n  @Input()\n  public size: GuiControlSize = 'base';\n\n  /** 色调 */\n  @Input()\n  public tint: GuiTint = 'default';\n\n  // 获取SVG图标的URL\n  private _getSvgIconUrl(): string {\n    return this._defaultOptions.svgIconPath + '/' + this._name + '.svg';\n  }\n\n  // 更新SVG图标\n  private _updateSvgIcon() {\n    this._iconRegistry.addSvgIconInNamespace(this.namespace, this.name, this._getSvgIconUrl());\n    this._iconRegistry.getNamedSvgIcon(this.name, this.namespace)\n      .subscribe(svg => {\n        const firstChildElement = this._elementRef.nativeElement.firstElementChild;\n        if (firstChildElement) {\n          firstChildElement.remove();\n        }\n        this._elementRef.nativeElement.appendChild(svg);\n      });\n  }\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './icon';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiTypographyHierarchy, GuiTypographyVariant} from '../typography';\nimport {GuiTint} from '../core';\nimport {GuiIcon} from '../icon';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\n\nexport type GuiLinkUnderline = 'always' | 'hover' | 'none';\n\n@Component({\n  selector: 'gui-link',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiIcon\n  ],\n  templateUrl: './link.html',\n  styleUrls: ['./link.scss'],\n  host: {\n    'role': 'link',\n    'class': 'gui-link',\n    '[attr.underline]': 'underline'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiLink'\n})\nexport class GuiLink {\n\n  static ngAcceptInputType_more: BooleanInput;\n\n  @Input()\n  public variant: GuiTypographyVariant = 'body';\n\n  @Input()\n  public hierarchy: GuiTypographyHierarchy | null = null;\n\n  @Input()\n  public tint: GuiTint = 'default';\n\n  @Input()\n  public href: string = '#';\n\n  @Input()\n  public underline: GuiLinkUnderline = 'hover';\n\n  @Input()\n  get more(): boolean {\n    return this._more;\n  }\n\n  set more(value: BooleanInput) {\n    this._more = coerceBooleanProperty(value);\n  }\n\n  private _more: boolean = false;\n\n  constructor() {\n  }\n\n  @HostListener('click', ['$event'])\n  onClick(e: Event) {\n    if (this.href === '#') {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n  }\n\n  isExternalLink(): boolean {\n    return this.href.startsWith('https://') || this.href.startsWith('http://');\n  }\n\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n<a [attr.href]=\"href\" [attr.variant]=\"variant\" [attr.hierarchy]=\"hierarchy\" [attr.tint]=\"tint\">\n  <ng-content></ng-content>\n  <ng-container *ngIf=\"more\">\n    <gui-icon [name]=\"isExternalLink() ? 'arrow-up-right' : 'chevron-right'\" [tint]=\"tint\"></gui-icon>\n  </ng-container>\n</a>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './link';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, InjectionToken, Input, ViewEncapsulation} from '@angular/core';\nimport {GuiPosition, GuiTint} from '../core';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {GuiTheme, GuiThemeModule} from '../theme';\nimport {CommonModule} from \"@angular/common\";\nimport {GuiContainer} from \"../container\";\nimport {GuiHStack, GuiSpacer} from \"../stack\";\n\nexport const GUI_TOOLBAR_PANEL = new InjectionToken<GuiToolbar>('GUI_TOOLBAR_PANEL');\n\nexport type GuiToolbarFacade = 'filled' | 'blurred';\n\n@Component({\n  selector: 'gui-toolbar',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiThemeModule,\n    GuiContainer,\n    GuiHStack,\n    GuiSpacer\n  ],\n  templateUrl: './toolbar.html',\n  styleUrls: ['./toolbar.scss'],\n  host: {\n    'role': 'toolbar',\n    'class': 'gui-toolbar',\n    '[attr.position]': 'position',\n    '[attr.facade]': 'facade',\n    '[attr.tint]': 'tint',\n    '[attr.hide-divider]': 'hideDivider',\n    '[style.position]': 'position',\n    '[style.top]': 'position === \"sticky\" ? 0 : null',\n  },\n  providers: [\n    {provide: GUI_TOOLBAR_PANEL, useExisting: GuiToolbar},\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  exportAs: 'guiToolbar'\n})\nexport class GuiToolbar {\n\n  static ngAcceptInputType_fixed: BooleanInput;\n  static ngAcceptInputType_hideDivider: BooleanInput;\n\n  constructor(public theme: GuiTheme) {\n  }\n\n  @Input()\n  get fixed(): boolean {\n    return this._fixed;\n  }\n\n  set fixed(value: BooleanInput) {\n    this._fixed = coerceBooleanProperty(value);\n  }\n\n  private _fixed: boolean = false;\n\n  @Input()\n  public position: GuiPosition = 'static';\n\n  @Input()\n  public facade: GuiToolbarFacade = 'filled';\n\n  @Input()\n  public tint: GuiTint = 'default';\n\n  @Input()\n  get hideDivider(): boolean {\n    return this._hideDivider;\n  }\n\n  set hideDivider(value: BooleanInput) {\n    this._hideDivider = coerceBooleanProperty(value);\n  }\n\n  private _hideDivider: boolean = false;\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n<gui-container [fixed]=\"fixed\" [style.padding]=\"fixed ? '8px' : '8px 12px'\">\n  <gui-h-stack>\n    <ng-content></ng-content>\n  </gui-h-stack>\n</gui-container>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './toolbar';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation} from '@angular/core';\nimport {GuiControlSize, GuiTint} from '../core';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {CommonModule} from \"@angular/common\";\nimport {GUI_TOOLBAR_PANEL, GuiToolbar} from '../toolbar';\nimport {GuiIcon} from \"../icon\";\n\n\n/** 外观 */\nexport type GuiButtonFacade = 'plain' | 'filled' | 'outlined' | 'dashed';\n/** 形状 */\nexport type GuiButtonShape = 'default' | 'circle';\n\n@Component({\n  selector: 'button[gui-button], a[gui-button]',\n  standalone: true,\n  imports: [CommonModule, GuiIcon, GuiToolbar],\n  templateUrl: './button.html',\n  styleUrls: ['./button.scss'],\n  host: {\n    'role': 'button',\n    'class': 'gui-button',\n    'appearance': 'button',\n    '[attr.facade]': 'facade',\n    '[attr.size]': 'size',\n    '[attr.tint]': 'tint',\n    '[attr.shape]': 'shape',\n    '[attr.inherit-color]': 'this._parentToolbar !== null && this._parentToolbar!.tint !== \"default\"',\n    '[attr.full]': 'full',\n    '[attr.tabindex]': 'disabled ? null : -1',\n    '[attr.aria-disabled]': 'disabled || null'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiButton'\n})\nexport class GuiButton {\n\n  static ngAcceptInputType_full: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  @Input()\n  public facade: GuiButtonFacade = 'filled';\n\n  @Input()\n  public size: GuiControlSize = 'base';\n\n  @Input()\n  public tint: GuiTint = 'blue';\n\n  @Input()\n  public shape: GuiButtonShape = 'default';\n\n  @Input()\n  get full(): boolean {\n    return this._full;\n  }\n\n  set full(value: BooleanInput) {\n    this._full = coerceBooleanProperty(value);\n  }\n\n  private _full: boolean = false;\n\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  @Input()\n  public startIcon: null | string = null;\n\n  @Input()\n  public endIcon: null | string = null;\n\n  constructor(@Inject(GUI_TOOLBAR_PANEL) @Optional() public _parentToolbar?: GuiToolbar) {\n  }\n\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n<div class=\"gui-button-wrap\">\n  <ng-container *ngIf=\"startIcon\">\n    <gui-icon [name]=\"startIcon\"></gui-icon>\n  </ng-container>\n  <span class=\"gui-button-content\"><ng-content></ng-content></span>\n  <ng-container *ngIf=\"endIcon\">\n    <gui-icon [name]=\"endIcon\"></gui-icon>\n  </ng-container>\n</div>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './button';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty, NumberInput} from '../coercion';\nimport {GuiControlSize, GuiTint} from '../core';\nimport {GuiButton, GuiButtonShape} from '../button';\nimport {CommonModule} from \"@angular/common\";\nimport {GuiHStack} from \"../stack\";\nimport {GuiIcon} from \"../icon\";\n\ntype GuiPaginationItem = 'first' | 'previous' | 'ellipsis' | 'next' | 'last' | number;\n\n@Component({\n  selector: 'gui-pagination',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiHStack,\n    GuiButton,\n    GuiIcon\n  ],\n  templateUrl: './pagination.html',\n  styleUrls: ['./pagination.scss'],\n  host: {\n    'class': 'gui-pagination',\n    '[attr.size]': 'size',\n    '[attr.tint]': 'tint',\n    '[attr.shape]': 'shape',\n    '[attr.count]': 'count',\n    '[attr.current-page]': 'currentPage',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiPagination'\n})\nexport class GuiPagination implements OnDestroy {\n\n  // Component input 类型检查用, 去掉会报类型错误\n  static ngAcceptInputType_count: NumberInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  /** 尺寸 */\n  @Input()\n  public size: GuiControlSize = 'small';\n\n  /** 色调 */\n  @Input()\n  get tint(): GuiTint {\n    return this._tint ? this._tint : 'blue';\n  }\n\n  set tint(value: GuiTint) {\n    this._tint = value;\n  }\n\n  private _tint: GuiTint = 'blue';\n\n  /** 形状 */\n  @Input()\n  public shape: GuiButtonShape = 'circle';\n\n  /** 是否禁用 */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  /** 当前页 */\n  get currentPage(): number {\n    return this._currentPage;\n  }\n\n  set currentPage(value: number) {\n    if (value > 0 && value <= this.count) {\n      this._currentPage = value;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  private _currentPage: number = 1;\n\n  @Output()\n  get currentPageChange(): EventEmitter<number> {\n    return this._currentPageChange;\n  }\n\n  private _currentPageChange: EventEmitter<number> = new EventEmitter<number>();\n\n  /** 总页数 */\n  @Input()\n  get count(): number {\n    return this._count;\n  }\n\n  set count(value: number) {\n    if (value > 0) {\n      this._count = value;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  private _count: number = 10;\n\n  /** 显示第一页按钮 */\n  @Input()\n  public showFirstButton: boolean = false;\n\n  /** 显示最后一页按钮 */\n  @Input()\n  public showLastButton: boolean = false;\n\n  /** 隐藏前一页按钮 */\n  @Input()\n  public hidePrevButton: boolean = false;\n\n  /** 隐藏后一页按钮 */\n  @Input()\n  public hideNextButton: boolean = false;\n\n  /** 指定当前页面两侧显示的数字多少 */\n  @Input()\n  get siblingCount(): number {\n    return this._siblingCount;\n  }\n\n  set siblingCount(value: number) {\n    if (value >= 0) {\n      this._siblingCount = value;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  private _siblingCount: number = 1;\n\n  /** 调整在起始和结束页码旁边显示的位数 */\n  @Input()\n  get boundaryCount(): number {\n    return this._boundaryCount;\n  }\n\n  set boundaryCount(value: number) {\n    if (value >= 0) {\n      this._boundaryCount = value;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  private _boundaryCount: number = 1;\n\n  constructor(private _changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnDestroy(): void {\n    this._currentPageChange.complete();\n  }\n\n  public onClickButton(item: GuiPaginationItem) {\n    switch (item) {\n      case 'first':\n        this._currentPage = 1;\n        break;\n      case 'previous':\n        this._currentPage = this._currentPage - 1;\n        break;\n      case 'ellipsis':\n        break;\n      case 'next':\n        this._currentPage = this._currentPage + 1;\n        break;\n      case 'last':\n        this._currentPage = this._count;\n        break;\n      default:\n        this._currentPage = item as number;\n    }\n    this._currentPageChange.emit(this._currentPage);\n  }\n\n  private _range(start: number, end: number): number[] {\n    const length = end - start + 1;\n    return Array.from({length}, (_, i) => start + i);\n  }\n\n  private get _startPages(): number[] {\n    return this._range(1, Math.min(this._boundaryCount, this._count));\n  }\n\n  private get _endPages(): number[] {\n    return this._range(Math.max(this._count - this._boundaryCount + 1, this._boundaryCount + 1), this._count);\n  }\n\n  private get _siblingsStart(): number {\n    return Math.max(\n      Math.min(\n        // Natural start\n        this._currentPage - this._siblingCount,\n        // Lower boundary when page is high\n        this._count - this._boundaryCount - this._siblingCount * 2 - 1,\n      ),\n      // Greater than startPages\n      this._boundaryCount + 2,\n    );\n  }\n\n  private get _siblingsEnd(): number {\n    return Math.min(\n      Math.max(\n        // Natural end\n        this._currentPage + this._siblingCount,\n        // Upper boundary when page is low\n        this._boundaryCount + this._siblingCount * 2 + 2,\n      ),\n      // Less than endPages\n      this._endPages.length > 0 ? this._endPages[0] - 2 : this._count - 1,\n    );\n  }\n\n  // Basic list of items to render\n  // e.g. itemList = ['first', 'previous', 1, 'ellipsis', 4, 5, 6, 'ellipsis', 10, 'next', 'last']\n  public get itemList(): GuiPaginationItem[] {\n    return [\n      ...(this.showFirstButton ? ['first'] as GuiPaginationItem[] : []),\n      ...(this.hidePrevButton ? [] : ['previous'] as GuiPaginationItem[]),\n\n      ...this._startPages,\n\n      // Start ellipsis\n      // eslint-disable-next-line no-nested-ternary\n      ...(this._siblingsStart > this._boundaryCount + 2\n        ? ['ellipsis'] as GuiPaginationItem[]\n        : this._boundaryCount + 1 < this._count - this._boundaryCount\n          ? [this._boundaryCount + 1]\n          : []),\n\n      // Sibling pages\n      ...this._range(this._siblingsStart, this._siblingsEnd),\n\n      // End ellipsis\n      // eslint-disable-next-line no-nested-ternary\n      ...(this._siblingsEnd < this._count - this._boundaryCount - 1\n        ? ['ellipsis'] as GuiPaginationItem[]\n        : this._count - this._boundaryCount > this._boundaryCount\n          ? [this._count - this._boundaryCount]\n          : []),\n\n      ...this._endPages,\n\n      ...(this.hideNextButton ? [] : ['next'] as GuiPaginationItem[]),\n      ...(this.showLastButton ? ['last'] as GuiPaginationItem[] : [])\n    ];\n  }\n}\n","<gui-h-stack>\n  <ng-container *ngFor=\"let item of itemList\">\n    <button gui-button [facade]=\"currentPage == item ? 'filled' : 'plain'\"\n            [shape]=\"shape\"\n            [size]=\"size\"\n            [tint]=\"tint\"\n            [disabled]=\"currentPage == 1 && (item === 'first' || item === 'previous') || currentPage == count && (item === 'next' || item === 'last')\"\n            (click)=\"onClickButton(item)\"\n            [ngSwitch]=\"item\"\n            >\n      <gui-icon *ngSwitchCase=\"'first'\" name=\"chevrons-left\"></gui-icon>\n      <gui-icon *ngSwitchCase=\"'previous'\" name=\"chevron-left\"></gui-icon>\n      <gui-icon *ngSwitchCase=\"'next'\" name=\"chevron-right\"></gui-icon>\n      <gui-icon *ngSwitchCase=\"'last'\" name=\"chevrons-right\"></gui-icon>\n      <gui-icon *ngSwitchCase=\"'ellipsis'\" name=\"more-horizontal\"></gui-icon>\n      <ng-container *ngSwitchDefault>{{item}}</ng-container>\n    </button>\n  </ng-container>\n</gui-h-stack>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  AfterViewInit,\n  Attribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {BooleanInput, coerceBooleanProperty, NumberInput} from '../coercion';\nimport {GuiControlSize, GuiTint} from '../core';\nimport {CommonModule} from \"@angular/common\";\nimport {GuiObserversModule} from \"../observers\";\nimport {GuiIcon} from \"../icon\";\n\nlet nextUniqueId = 0;\n\n/** 值访问器, 用来支持 ngModel */\nexport const GUI_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => GuiCheckbox),\n  multi: true\n};\n\n/** Change 事件对象 */\nexport class GuiCheckboxChange {\n  source: GuiCheckbox;\n  checked: boolean;\n}\n\n@Component({\n  selector: 'gui-checkbox',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiObserversModule,\n    GuiIcon\n  ],\n  templateUrl: './checkbox.html',\n  styleUrls: ['./checkbox.scss'],\n  host: {\n    'role': 'checkbox',\n    'class': 'gui-checkbox',\n    'appearance': 'checkbox',\n    '[id]': 'id',\n    '[attr.indeterminate]': 'indeterminate',\n    '[attr.checked]': 'checked',\n    '[attr.disabled]': 'disabled',\n    '[attr.size]': 'size',\n    '[attr.tint]': 'tint',\n    '[attr.tabindex]': 'disabled ? null : 0',\n    '[attr.aria-checked]': 'checked',\n    '[attr.aria-disabled]': 'disabled || null',\n    '[attr.aria-required]': 'required',\n    '(click)': '_onInputClick($event)'\n  },\n  inputs: [\n    'color', 'tabIndex', 'disabled'\n  ],\n  providers: [GUI_CHECKBOX_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiCheckbox'\n})\nexport class GuiCheckbox implements ControlValueAccessor,\n  AfterViewInit, OnDestroy {\n\n  /** Component input 类型检查 */\n  static ngAcceptInputType_checked: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_required: BooleanInput;\n  static ngAcceptInputType_indeterminate: BooleanInput;\n  static ngAcceptInputType_tabIndex: NumberInput;\n\n  /** 唯一标识 */\n  private _uniqueId: string = `gui-checkbox-${++nextUniqueId}`;\n\n  /** 原生 `<input type=\"checkbox\">` 元素 */\n  @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n  /** 当复选框的“checked”值改变时发出的事件 */\n  @Output() readonly change: EventEmitter<GuiCheckboxChange> = new EventEmitter<GuiCheckboxChange>();\n\n  /** 当复选框的“不确定(indeterminate)”值更改时发出的事件 */\n  @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  /** ControlValueAccessor 回调 */\n  private _controlValueAccessorOnChange = (_: any) => {\n  };\n  private _controlValueAccessorOnTouched = () => {\n  };\n\n  constructor(private _elementRef: ElementRef<HTMLElement>,\n              private _changeDetectorRef: ChangeDetectorRef,\n              private _ngZone: NgZone,\n              @Attribute('tabindex') tabIndex: string) {\n  }\n\n  ngAfterViewInit() {\n    this._syncIndeterminate(this._indeterminate);\n  }\n\n  ngOnDestroy() {\n    this.change.complete();\n  }\n\n  /** 开关按钮输入的唯一ID,如果没有提供将自动生成 */\n  @Input() id: string = this._uniqueId;\n\n  /** 返回视觉隐藏输入的唯一ID */\n  get inputId(): string {\n    return `${this.id || this._uniqueId}-input`;\n  }\n\n  /** 如果存在，名称值将应用于输入元素 */\n  @Input() name: string | null = null;\n\n  /** 原生 input 元素的 value 属性 */\n  @Input() value: string;\n\n  /** 复选框是否必须 */\n  @Input()\n  get required(): boolean {\n    return this._required;\n  }\n\n  set required(value: boolean) {\n    this._required = coerceBooleanProperty(value);\n  }\n\n  private _required: boolean;\n\n  /** 是否禁用 */\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: any) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  /** 是否选中 */\n  @Input()\n  get checked(): boolean {\n    return this._checked;\n  }\n\n  set checked(value) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this._checked) {\n      this._checked = newValue;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  private _checked: boolean = false;\n\n  /**\n   * 复选框是否不确定\n   * 这也称为“混合”模式, 可用于表示具有三种状态的复选框\n   * 例如 表示可检查项的嵌套列表的复选框\n   * 请注意，无论何时手动单击复选框, indeterminate 都会立即设置为 false\n   */\n  @Input()\n  get indeterminate(): boolean {\n    return this._indeterminate;\n  }\n\n  set indeterminate(value: boolean) {\n    const changed = value != this._indeterminate;\n    this._indeterminate = coerceBooleanProperty(value);\n\n    if (changed) {\n      this.indeterminateChange.emit(this._indeterminate);\n    }\n\n    this._syncIndeterminate(this._indeterminate);\n  }\n\n  private _indeterminate: boolean = false;\n\n  /** 尺寸 */\n  @Input()\n  public size: GuiControlSize = 'base';\n\n  /** 色调 */\n  @Input()\n  get tint(): GuiTint {\n    return this._tint ? this._tint : 'blue';\n  }\n\n  set tint(value: GuiTint) {\n    this._tint = value;\n  }\n\n  private _tint: GuiTint = 'blue';\n\n  /** 默认图标 */\n  @Input()\n  public icon: null | string = null;\n\n  /** 勾选图标 */\n  @Input()\n  public checkedIcon: null | string = null;\n\n  /** 混合图标 */\n  @Input()\n  public indeterminateIcon: null | string = null;\n\n\n  _getAriaChecked(): 'true' | 'false' | 'mixed' {\n    if (this.checked) {\n      return 'true';\n    }\n\n    return this.indeterminate ? 'mixed' : 'false';\n  }\n\n  private _emitChangeEvent() {\n    const event = new GuiCheckboxChange();\n    event.source = this;\n    event.checked = this.checked;\n\n    this._controlValueAccessorOnChange(this.checked);\n    this.change.emit(event);\n\n    // 在这里再次分配值是多余的，但我们必须这样做，以防它在 `change` 侦听器内被更改，这将导致输入不同步。\n    if (this._inputElement) {\n      this._inputElement.nativeElement.checked = this.checked;\n    }\n  }\n\n  /** 切换复选框的“checked”状态 */\n  toggle(): void {\n    if (this._indeterminate) {\n      this._indeterminate = false;\n      this.checked = true;\n    } else {\n      this.checked = !this.checked;\n    }\n  }\n\n  /**\n   * 复选框输入元素的事件处理程序。\n   * 如果元素未被禁用，则切换选中状态。\n   * @param event\n   */\n  _onInputClick(event: Event) {\n    event.stopPropagation();\n    this.toggle();\n    this._emitChangeEvent();\n  }\n\n  _onInteractionEvent(event: Event) {\n    event.stopPropagation();\n  }\n\n  /**\n   * 将不确定值与复选框 DOM 节点同步。\n   * 我们直接在 DOM 节点上同步 `indeterminate`，因为在 Ivy 中，检查元素是否支持某个属性归结为 `if (propName in element)`\n   * Domino 的 HTMLInputElement 没有 `indeterminate` 属性，因此 Ivy 会在服务器端渲染期间发出警告\n   */\n  private _syncIndeterminate(value: boolean) {\n    const nativeCheckbox = this._inputElement;\n\n    if (nativeCheckbox) {\n      nativeCheckbox.nativeElement.indeterminate = value;\n    }\n  }\n\n  /** 实现 ControlValueAccessor 以支持 ngModel */\n  public writeValue(value: any): void {\n    this.checked = !!value;\n  }\n\n  /** 实现 ControlValueAccessor 以支持 ngModel */\n  public registerOnChange(fn: any): void {\n    this._controlValueAccessorOnChange = fn;\n  }\n\n  /** 实现 ControlValueAccessor 以支持 ngModel */\n  public registerOnTouched(fn: any): void {\n    this._controlValueAccessorOnTouched = fn;\n  }\n\n  /** 实现 ControlValueAccessor 以支持 ngModel */\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n  }\n\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n\n<input #input\n       class=\"gui-checkbox-input\" type=\"checkbox\"\n       [id]=\"inputId\"\n       [required]=\"required\"\n       [checked]=\"checked\"\n       [attr.value]=\"value\"\n       [disabled]=\"disabled\"\n       [attr.name]=\"name\"\n       [attr.aria-checked]=\"_getAriaChecked()\"\n       (change)=\"_onInteractionEvent($event)\"/>\n<ng-container *ngTemplateOutlet=\"icon && checkedIcon ? iconTemplate : innerIconTemplate\"></ng-container>\n\n<ng-template #iconTemplate>\n  <gui-icon [name]=\"indeterminate && indeterminateIcon ? indeterminateIcon! : (checked ? checkedIcon! : icon!)\"></gui-icon>\n</ng-template>\n\n<ng-template #innerIconTemplate>\n  <div class=\"gui-checkbox-checkmark\">\n    <span class=\"gui-checkbox-checkmark-inner\"></span>\n    <svg focusable=\"false\"\n         viewBox=\"0 0 24 24\"\n         stroke-width=\"3\">\n      <path fill=\"none\" d=\"M4.1,12.7 9,18 20.3,6\"/>\n    </svg>\n  </div>\n</ng-template>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './checkbox';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {BooleanInput, coerceBooleanProperty} from \"../coercion\";\nimport {GuiTint} from '../core';\nimport {CommonModule} from \"@angular/common\";\n\n\n// 唯一标识, 用来避免冲突\nlet nextUniqueId = 0;\n\n// Change 事件对象\nexport class SwitchChange {\n  constructor(\n    public source: GuiSwitch,\n    public checked: boolean) {\n  }\n}\n\n// 值访问器, 用来支持 ngModel\nexport const GUI_SWITCH_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => GuiSwitch),\n  multi: true\n};\n\n\n@Component({\n  selector: 'gui-switch',\n  standalone: true,\n  imports: [CommonModule, FormsModule],\n  templateUrl: './switch.html',\n  styleUrls: ['./switch.scss'],\n  providers: [GUI_SWITCH_VALUE_ACCESSOR],\n  host: {\n    'class': 'gui-switch',\n    '[id]': 'id',\n    '[attr.tint]': 'tint',\n    '[class.gui-checked]': 'checked',\n    '[class.gui-switch-label-before]': 'labelPosition == \"before\"',\n    '[attr.tabindex]': 'disabled ? null : 0',\n    '[attr.aria-disabled]': 'disabled',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '(click)': '_onInputClick($event)'\n  },\n  inputs: [\n    'disabled', 'checked'\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSwitch'\n})\nexport class GuiSwitch implements ControlValueAccessor {\n\n  // Component input 类型检查\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_checked: BooleanInput;\n\n  //唯一标识\n  private _uniqueId: string = `ui-switch-${++nextUniqueId}`;\n\n  // Input 元素\n  @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n  /** 每次滑动切换更改其值时都会调度一个事件 */\n  @Output() readonly valueChange: EventEmitter<SwitchChange> = new EventEmitter<SwitchChange>();\n\n  /** ControlValueAccessor 回调 */\n  private _controlValueAccessorOnChange = (_: any) => {\n  };\n  private _controlValueAccessorOnTouched = () => {\n  };\n\n  constructor(private _elementRef: ElementRef,\n              private _changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  /** 开关按钮输入的唯一ID,如果没有提供将自动生成 */\n  @Input() id: string = this._uniqueId;\n\n  /** 返回视觉隐藏输入的唯一ID */\n  get inputId(): string {\n    return `${this.id || this._uniqueId}-input`;\n  }\n\n  /** 如果存在，名称值将应用于输入元素 */\n  @Input() name: string | null = null;\n\n  /** 标签应该出现在开关按钮之后还是之前, 默认为“之后” */\n  @Input() labelPosition: 'before' | 'after' = 'after';\n\n  /** 色调 */\n  @Input()\n  public tint: GuiTint = 'green';\n\n  /** 是否禁用 */\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  /** 是否选中 */\n  @Input()\n  get checked(): boolean {\n    return this._checked;\n  }\n\n  set checked(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this._checked) {\n      this._checked = newValue;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  private _checked: boolean = false;\n\n  /** 每当底层输入发出更改事件时调用的方法 */\n  public _onInputChangeEvent(event: Event) {\n    event.stopPropagation();\n\n    // 将来自底层输入元素的值与组件实例同步\n    this.checked = this._inputElement.nativeElement.checked;\n\n    // 仅当底层输入发出一个时才发出我们的自定义更改事件\n    // 这可确保在检查状态以编程方式更改时没有更改事件\n    this._emitChangeEvent();\n  }\n\n  /** 每当单击底层输入时调用的方法 */\n  public _onInputClick(event: Event) {\n    event.stopPropagation();\n  }\n\n  /** 切换选中状态 */\n  public toggle(): void {\n    this.checked = !this.checked;\n    this._controlValueAccessorOnChange(this.checked);\n  }\n\n  // 在 `change` 输出上发出更改事件\n  private _emitChangeEvent() {\n    this._controlValueAccessorOnChange(this.checked);\n    this.valueChange.emit(new SwitchChange(this, this.checked));\n  }\n\n  // 每当标签文本更改时调用的方法\n  public _onLabelTextChange() {\n    this._changeDetectorRef.detectChanges();\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public writeValue(value: any): void {\n    this.checked = !!value;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnChange(fn: any): void {\n    this._controlValueAccessorOnChange = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnTouched(fn: any): void {\n    this._controlValueAccessorOnTouched = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n  }\n\n}\n","<!--\n  ~ Copyright (c) 2022. GlamTime All Rights Reserved.\n  -->\n\n<label class=\"gui-switch-label\" #label>\n    <div class=\"gui-switch-bar\"\n         [class.gui-toggle-bar-no-side-margin]=\"!labelContent.textContent || !labelContent.textContent.trim()\">\n\n        <input #input class=\"gui-switch-input\" type=\"checkbox\"\n               role=\"switch\"\n               [id]=\"inputId\"\n               [checked]=\"checked\"\n               [disabled]=\"disabled\"\n               [attr.name]=\"name\"\n               [attr.aria-checked]=\"checked.toString()\"\n               (change)=\"_onInputChangeEvent($event)\"\n               (click)=\"_onInputClick($event)\">\n\n        <div class=\"gui-switch-thumb-container\">\n            <div class=\"gui-switch-thumb\"></div>\n        </div>\n\n    </div>\n\n    <span class=\"gui-switch-content\" #labelContent (guiObserveContent)=\"_onLabelTextChange()\">\n    <!-- Add an invisible span so JAWS can read the label -->\n    <span style=\"display:none\">&nbsp;</span>\n    <ng-content></ng-content>\n  </span>\n</label>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './switch';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022-2023. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnDestroy,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BooleanInput, coerceBooleanProperty, NumberInput} from '../coercion';\nimport {CommonModule} from '@angular/common';\n\n\nlet nextUniqueId = 0;\n\n// 值访问器, 用来支持 ngModel\nexport const GUI_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => GuiInput),\n  multi: true\n};\n\n/** Change 事件对象 */\nexport class GuiInputChange {\n  source: GuiInput;\n  value: any;\n}\n\n@Component({\n  selector: 'gui-input',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule\n  ],\n  templateUrl: './input.html',\n  styleUrls: ['./input.scss'],\n  host: {\n    'class': 'gui-input',\n    'appearance': 'input',\n    '[attr.tabindex]': 'disabled ? null : -1',\n    '[attr.aria-disabled]': 'disabled',\n    '[attr.focus]': 'focus'\n  },\n  providers: [GUI_INPUT_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiInput'\n})\nexport class GuiInput implements OnDestroy, ControlValueAccessor {\n\n  // Component input 类型检查\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_required: BooleanInput;\n  static ngAcceptInputType_multiple: BooleanInput;\n  static ngAcceptInputType_tabIndex: NumberInput;\n\n  // 唯一标识\n  private _uniqueId: string = `gui-input-${++nextUniqueId}`;\n\n  // ControlValueAccessor 回调\n  private _controlValueAccessorOnChange = (_: any) => {\n  };\n  private _controlValueAccessorOnTouched = () => {\n  };\n\n  /** 开关按钮输入的唯一ID,如果没有提供将自动生成 */\n  @Input() id: string = this._uniqueId;\n\n  /** 原生 `input` 元素 */\n  @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n  /** 当复选框的“checked”值改变时发出的事件 */\n  @Output() readonly change: EventEmitter<GuiInputChange> = new EventEmitter<GuiInputChange>();\n\n  /** 返回视觉隐藏输入的唯一ID */\n  get inputId(): string {\n    return `${this.id || this._uniqueId}`;\n  }\n\n  @Input()\n  get multiple(): boolean {\n    return this._multiple;\n  }\n\n  set multiple(value: BooleanInput) {\n    this._multiple = coerceBooleanProperty(value);\n  }\n\n  private _multiple: boolean;\n\n  /** 占位符 */\n  @Input() placeholder: string;\n\n  /** 名称 */\n  @Input() name: string;\n\n  /** 是否是必填项 */\n  @Input()\n  get required(): boolean {\n    return this._required;\n  }\n\n  set required(value: BooleanInput) {\n    this._required = coerceBooleanProperty(value);\n  }\n\n  protected _required: boolean;\n\n  /** 输入类型 */\n  @Input()\n  get type(): string {\n    return this._type;\n  }\n\n  set type(value: string) {\n    this._type = value || 'text';\n  }\n\n  protected _type = 'text';\n\n  /** 辅助阅读 */\n  @Input('aria-describedby') userAriaDescribedBy: string;\n\n  /** 值 */\n  @Input()\n  get value(): any {\n    return this._value;\n  }\n\n  set value(value: any) {\n    this._value = value;\n    this._emitChangeEvent();\n  }\n\n  private _value: any;\n\n  /** 是否只读 */\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n\n  set readonly(value: BooleanInput) {\n    this._readonly = coerceBooleanProperty(value);\n  }\n\n  private _readonly = false;\n\n  /** 是否禁用 */\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: any) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  constructor(private _changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnDestroy() {\n    this.change.complete();\n  }\n\n  _onInput() {\n  }\n\n  _onFocus() {\n    this._focus = true;\n  }\n\n  _onBlur() {\n    this._focus = false;\n  }\n\n\n  get focus(): boolean {\n    return this._focus;\n  }\n\n  private _focus: boolean = false;\n\n  private _emitChangeEvent() {\n    const event = new GuiInputChange();\n    event.source = this;\n    event.value = this._value;\n\n    this._controlValueAccessorOnChange(this._value);\n    this.change.emit(event);\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public writeValue(value: any): void {\n    this._value = value;\n    this._changeDetectorRef.markForCheck();\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnChange(fn: any): void {\n    this._controlValueAccessorOnChange = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnTouched(fn: any): void {\n    this._controlValueAccessorOnTouched = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n  }\n\n}\n","<!--\n  ~ Copyright (c) 2022-2023. GlamTime All Rights Reserved.\n  -->\n\n<input *ngIf=\"!multiple\" class=\"gui-input-control\"\n       [id]=\"inputId\"\n       [attr.name]=\"name\"\n       [readonly]=\"readonly\"\n       [disabled]=\"disabled\"\n       [required]=\"required\"\n       [attr.placeholder]=\"placeholder\"\n       [type]=\"type\"\n       [(ngModel)]=\"value\"\n       (input)=\"_onInput()\"\n       (focus)=\"_onFocus()\"\n       (blur)=\"_onBlur()\">\n\n<textarea *ngIf=\"multiple\" class=\"gui-input-control\"\n          [id]=\"inputId\"\n          [attr.name]=\"name\"\n          [readonly]=\"readonly\"\n          [disabled]=\"disabled\"\n          [required]=\"required\"\n          [attr.placeholder]=\"placeholder\"\n          [(ngModel)]=\"value\"\n          (input)=\"_onInput()\"\n          (focus)=\"_onFocus()\"\n          (blur)=\"_onBlur()\">\n</textarea>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './input';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnDestroy,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BooleanInput, coerceBooleanProperty, NumberInput} from '../coercion';\nimport {CommonModule} from '@angular/common';\nimport {GuiButton} from '../button';\n\n\nlet nextUniqueId = 0;\n\nexport const GUI_UPLOAD_CONTROL_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => GuiUpload),\n  multi: true\n};\n\nexport class GuiUploadChange {\n  source: GuiUpload;\n  value: any;\n}\n\n@Component({\n  selector: 'gui-upload',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiButton\n  ],\n  templateUrl: './upload.html',\n  styleUrls: ['./upload.scss'],\n  host: {\n    'role': 'button',\n    'class': 'gui-upload',\n  },\n  providers: [GUI_UPLOAD_CONTROL_VALUE_ACCESSOR],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  exportAs: 'guiUpload'\n})\nexport class GuiUpload implements OnDestroy, ControlValueAccessor {\n\n  static ngAcceptInputType_required: BooleanInput;\n  static ngAcceptInputType_multiple: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_tabIndex: NumberInput;\n\n  private _uniqueId: string = `gui-upload-${++nextUniqueId}`;\n\n  private _controlValueAccessorOnChange = (_: any) => {\n  };\n  private _controlValueAccessorOnTouched = () => {\n  };\n\n  @Input() id: string = this._uniqueId;\n\n  @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n  @Output() readonly change: EventEmitter<GuiUploadChange> = new EventEmitter<GuiUploadChange>();\n\n  get inputId(): string {\n    return `${this.id || this._uniqueId}`;\n  }\n\n  @Input() name: string;\n\n  @Input()\n  get required(): boolean {\n    return this._required;\n  }\n\n  set required(value: BooleanInput) {\n    this._required = coerceBooleanProperty(value);\n  }\n\n  protected _required: boolean;\n\n  @Input()\n  get value(): File | FileList | null {\n    return this._value;\n  }\n\n  set value(value: File | FileList | null) {\n    this._value = value;\n    this._emitChangeEvent();\n  }\n\n  private _value: File | FileList | null = null;\n\n  @Input()\n  get multiple(): boolean {\n    return this._multiple;\n  }\n\n  set multiple(value: BooleanInput) {\n    this._multiple = coerceBooleanProperty(value);\n  }\n\n  private _multiple = false;\n\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n\n  get title(): string {\n    return this._value && this._title ? this._title : '选取文件';\n  }\n\n  private _title: string | null = null;\n\n  constructor(private _changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnDestroy() {\n    this.change.complete();\n  }\n\n  public onChooseFile(): void {\n    this._inputElement.nativeElement.click();\n  }\n\n  public onFileSelected(input: HTMLInputElement) {\n    if (this.multiple) {\n      if (input.files && input.files.length > 0) {\n        this._title = '已选择' + input.files.length + '个文件';\n        this.value = input.files;\n      } else {\n        this.value = null;\n      }\n    } else {\n      if (input.files && input.files.length > 0) {\n        const file = input.files.item(0);\n        this._title = file!.name;\n        this.value = file;\n      } else {\n        this.value = null;\n      }\n    }\n  }\n\n  private _emitChangeEvent() {\n    const event = new GuiUploadChange();\n    event.source = this;\n    event.value = this._value;\n\n    this._controlValueAccessorOnChange(this._value);\n    this.change.emit(event);\n    this._changeDetectorRef.markForCheck();\n  }\n\n  public writeValue(value: any): void {\n    this._value = value;\n    this._changeDetectorRef.markForCheck();\n  }\n\n  public registerOnChange(fn: any): void {\n    this._controlValueAccessorOnChange = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this._controlValueAccessorOnTouched = fn;\n  }\n\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n  }\n\n}\n","<button gui-button\n        [startIcon]=\"value ? 'file' : 'upload'\"\n        [disabled]=\"disabled\"\n        (click)=\"onChooseFile()\">{{title}}</button>\n<input #input type=\"file\"\n       class=\"gui-upload-input\"\n       [id]=\"inputId\"\n       [attr.name]=\"name\"\n       [disabled]=\"disabled\"\n       [required]=\"required\"\n       (change)=\"onFileSelected(input)\"\n       [multiple]=\"multiple ? 'multiple' : null\"/>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './upload';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {Component, Injector, Input, Renderer2, TemplateRef, ViewChild, ViewContainerRef} from '@angular/core';\nimport {GuiOverlay, GuiOverlayRef} from '../overlay';\nimport {GuiTheme} from '../theme';\nimport {GuiTemplatePortal} from '../portal';\nimport {GuiAnchorOrigin} from '../core/anchor-origin';\n\n@Component({\n  selector: 'gui-popover',\n  templateUrl: './popover.html',\n  styleUrls: ['./popover.scss']\n})\nexport class GuiPopover {\n\n  @ViewChild('popoverTemplate', {static: true})\n  private _templatePortalContent: TemplateRef<unknown>;\n\n  // 叠加层引用\n  private _overlayRef: GuiOverlayRef;\n\n  // 锚点元素\n  private _anchorElement: HTMLElement;\n\n  // 锚点位置\n  @Input()\n  anchorOrigin: GuiAnchorOrigin = new GuiAnchorOrigin('left', 'bottom');\n\n  /** 是否打开 */\n  @Input()\n  get opened(): boolean { return this._opened; }\n  private _opened: boolean = false;\n\n  constructor(private _theme: GuiTheme,\n              private _renderer: Renderer2,\n              private _overlay: GuiOverlay,\n              private _viewControllerRef: ViewContainerRef,\n              private _injector: Injector) {\n  }\n\n  ngOnDestroy(): void {\n    this._overlayRef?.dispose();\n  }\n\n  /** 打开面板 */\n  public open(event: MouseEvent) {\n    if (this._opened) {\n      return;\n    }\n\n    // 获取锚点元素\n    this._anchorElement = event.currentTarget as HTMLElement;\n\n    // 创建叠加层\n    this._overlayRef = this._overlay.create();\n    const portal = new GuiTemplatePortal(this._templatePortalContent, this._viewControllerRef,\n      null, this._injector);\n    this._overlayRef.attach(portal);\n\n    // 设置状态\n    this._opened = true;\n  }\n\n  /** 关闭面板 */\n  public close() {\n    if (!this._opened) {\n      return;\n    }\n\n    // 分离叠加层\n    if (this._overlayRef) {\n      this._overlayRef.detach();\n    }\n\n    // 设置状态\n    this._opened = false;\n  }\n\n  // 获取顶部的偏移位置\n  get _offsetTop(): number {\n    const anchorRect = this._anchorElement.getBoundingClientRect();\n    let offset = 0;\n\n    if (typeof this.anchorOrigin.vertical === 'number') {\n      offset = this.anchorOrigin.vertical;\n    } else if (this.anchorOrigin.vertical === 'center') {\n      offset = anchorRect.height / 2;\n    } else if (this.anchorOrigin.vertical === 'bottom') {\n      offset = anchorRect.height;\n    }\n\n    return anchorRect.top + offset;\n  }\n\n  // 获取左面的偏移位置\n  get _offsetLeft(): number {\n    const anchorRect = this._anchorElement.getBoundingClientRect();\n    let offset = 0;\n\n    if (typeof this.anchorOrigin.horizontal === 'number') {\n      offset = this.anchorOrigin.horizontal;\n    } else if (this.anchorOrigin.horizontal === 'center') {\n      offset = anchorRect.width / 2;\n    } else if (this.anchorOrigin.horizontal === 'right') {\n      offset = anchorRect.width;\n    }\n\n    return anchorRect.left + offset;\n  }\n\n}\n","<ng-template #popoverTemplate>\n  <div class=\"gui-popover-backdrop\" (click)=\"close()\">\n    <div class=\"gui-popover\" [style.top.px]=\"_offsetTop\" [style.left.px]=\"_offsetLeft\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</ng-template>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiOverlayModule} from '../overlay';\nimport {GuiPopover} from './popover';\n\n\n@NgModule({\n  declarations: [\n    GuiPopover\n  ],\n  imports: [\n    CommonModule,\n    GuiOverlayModule\n  ],\n  exports: [\n    GuiPopover\n  ]\n})\nexport class GuiPopoverModule { }\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './popover.module';\nexport * from './popover';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {GuiSelectionModel} from '../collections';\n\n// 数据项\nexport interface GuiSelectPanel {\n  selectionModel: GuiSelectionModel<any> | null;\n  _emitChangeEvent(): void;\n}\n\nexport const GUI_SELECT_PANEL = new InjectionToken<GuiSelectPanel>('GUI_SELECT_PANEL');\n\n// 数据项\nexport class GuiSelectOption {\n  value: any;\n  label: string;\n  data: any\n\n  constructor(value: any, label: string, data: any = null) {\n    this.value = value;\n    this.label = label;\n    this.data = data;\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {Observable} from 'rxjs';\nimport {CollectionViewer} from './collection-viewer';\n\nexport abstract class DataSource<T> {\n  /**\n   * Connects a collection viewer (such as a data-table) to this data source. Note that\n   * the stream provided will be accessed during change detection and should not directly change\n   * values that are bound in template views.\n   * @param collectionViewer The component that exposes a view over the data provided by this\n   *     data source.\n   * @returns Observable that emits a new value when the data changes.\n   */\n  abstract connect(collectionViewer: CollectionViewer): Observable<readonly T[]>;\n\n  /**\n   * Disconnects a collection viewer (such as a data-table) from this data source. Can be used\n   * to perform any clean-up or tear-down operations when a view is being destroyed.\n   *\n   * @param collectionViewer The component that exposes a view over the data provided by this\n   *     data source.\n   */\n  abstract disconnect(collectionViewer: CollectionViewer): void;\n}\n\n/** Checks whether an object is a data source. */\nexport function isDataSource(value: any): value is DataSource<any> {\n  // Check if the value is a DataSource by observing if it has a connect function. Cannot\n  // be checked as an `instanceof DataSource` since people could create their own sources\n  // that match the interface, but don't extend DataSource.\n  return value && typeof value.connect === 'function';\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {isObservable, Observable, of as observableOf} from 'rxjs';\nimport {DataSource} from './data-source';\n\n/** DataSource wrapper for a native array. */\nexport class ArrayDataSource<T> extends DataSource<T> {\n  constructor(private _data: readonly T[] | Observable<readonly T[]>) {\n    super();\n  }\n\n  connect(): Observable<readonly T[]> {\n    return isObservable(this._data) ? this._data : observableOf(this._data);\n  }\n\n  disconnect() {}\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {Observable} from 'rxjs';\n\n/** Represents a range of numbers with a specified start and end. */\nexport type ListRange = {start: number; end: number};\n\n/**\n * Interface for any component that provides a view of some data collection and wants to provide\n * information regarding the view and any changes made.\n */\nexport interface CollectionViewer {\n  /**\n   * A stream that emits whenever the `CollectionViewer` starts looking at a new portion of the\n   * data. The `start` index is inclusive, while the `end` is exclusive.\n   */\n  viewChange: Observable<ListRange>;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {EmbeddedViewRef, IterableChangeRecord, IterableChanges, ViewContainerRef,} from '@angular/core';\nimport {\n    _ViewRepeater,\n    _ViewRepeaterItemChanged,\n    _ViewRepeaterItemContext,\n    _ViewRepeaterItemContextFactory,\n    _ViewRepeaterItemValueResolver,\n    _ViewRepeaterOperation,\n} from './view-repeater';\n\n/**\n * A repeater that destroys views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will always construct a new embedded view for each item.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nexport class _DisposeViewRepeaterStrategy<T, R, C extends _ViewRepeaterItemContext<T>>\n  implements _ViewRepeater<T, R, C>\n{\n  applyChanges(\n    changes: IterableChanges<R>,\n    viewContainerRef: ViewContainerRef,\n    itemContextFactory: _ViewRepeaterItemContextFactory<T, R, C>,\n    itemValueResolver: _ViewRepeaterItemValueResolver<T, R>,\n    itemViewChanged?: _ViewRepeaterItemChanged<R, C>,\n  ) {\n    changes.forEachOperation(\n      (\n        record: IterableChangeRecord<R>,\n        adjustedPreviousIndex: number | null,\n        currentIndex: number | null,\n      ) => {\n        let view: EmbeddedViewRef<C> | undefined;\n        let operation: _ViewRepeaterOperation;\n        if (record.previousIndex == null) {\n          const insertContext = itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n          view = viewContainerRef.createEmbeddedView(\n            insertContext.templateRef,\n            insertContext.context,\n            insertContext.index,\n          );\n          operation = _ViewRepeaterOperation.INSERTED;\n        } else if (currentIndex == null) {\n          viewContainerRef.remove(adjustedPreviousIndex!);\n          operation = _ViewRepeaterOperation.REMOVED;\n        } else {\n          view = viewContainerRef.get(adjustedPreviousIndex!) as EmbeddedViewRef<C>;\n          viewContainerRef.move(view!, currentIndex);\n          operation = _ViewRepeaterOperation.MOVED;\n        }\n\n        if (itemViewChanged) {\n          itemViewChanged({\n            context: view?.context,\n            operation,\n            record,\n          });\n        }\n      },\n    );\n  }\n\n  detach() {}\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  EmbeddedViewRef,\n  IterableChangeRecord,\n  IterableChanges,\n  ViewContainerRef,\n} from '@angular/core';\nimport {\n  _ViewRepeater,\n  _ViewRepeaterItemChanged,\n  _ViewRepeaterItemContext,\n  _ViewRepeaterItemContextFactory,\n  _ViewRepeaterItemInsertArgs,\n  _ViewRepeaterItemValueResolver,\n  _ViewRepeaterOperation,\n} from './view-repeater';\n\n/**\n * A repeater that caches views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will reuse one of the cached views instead of creating a new\n * embedded view. Recycling cached views reduces the quantity of expensive DOM\n * inserts.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nexport class _RecycleViewRepeaterStrategy<T, R, C extends _ViewRepeaterItemContext<T>>\n  implements _ViewRepeater<T, R, C>\n{\n  /**\n   * The size of the cache used to store unused views.\n   * Setting the cache size to `0` will disable caching. Defaults to 20 views.\n   */\n  viewCacheSize: number = 20;\n\n  /**\n   * View cache that stores embedded view instances that have been previously stamped out,\n   * but don't are not currently rendered. The view repeater will reuse these views rather than\n   * creating brand new ones.\n   *\n   * TODO(michaeljamesparsons) Investigate whether using a linked list would improve performance.\n   */\n  private _viewCache: EmbeddedViewRef<C>[] = [];\n\n  /** Apply changes to the DOM. */\n  applyChanges(\n    changes: IterableChanges<R>,\n    viewContainerRef: ViewContainerRef,\n    itemContextFactory: _ViewRepeaterItemContextFactory<T, R, C>,\n    itemValueResolver: _ViewRepeaterItemValueResolver<T, R>,\n    itemViewChanged?: _ViewRepeaterItemChanged<R, C>,\n  ) {\n    // Rearrange the views to put them in the right location.\n    changes.forEachOperation(\n      (\n        record: IterableChangeRecord<R>,\n        adjustedPreviousIndex: number | null,\n        currentIndex: number | null,\n      ) => {\n        let view: EmbeddedViewRef<C> | undefined;\n        let operation: _ViewRepeaterOperation;\n        if (record.previousIndex == null) {\n          // Item added.\n          const viewArgsFactory = () =>\n            itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n          view = this._insertView(\n            viewArgsFactory,\n            currentIndex!,\n            viewContainerRef,\n            itemValueResolver(record),\n          );\n          operation = view ? _ViewRepeaterOperation.INSERTED : _ViewRepeaterOperation.REPLACED;\n        } else if (currentIndex == null) {\n          // Item removed.\n          this._detachAndCacheView(adjustedPreviousIndex!, viewContainerRef);\n          operation = _ViewRepeaterOperation.REMOVED;\n        } else {\n          // Item moved.\n          view = this._moveView(\n            adjustedPreviousIndex!,\n            currentIndex!,\n            viewContainerRef,\n            itemValueResolver(record),\n          );\n          operation = _ViewRepeaterOperation.MOVED;\n        }\n\n        if (itemViewChanged) {\n          itemViewChanged({\n            context: view?.context,\n            operation,\n            record,\n          });\n        }\n      },\n    );\n  }\n\n  detach() {\n    for (const view of this._viewCache) {\n      view.destroy();\n    }\n    this._viewCache = [];\n  }\n\n  /**\n   * Inserts a view for a new item, either from the cache or by creating a new\n   * one. Returns `undefined` if the item was inserted into a cached view.\n   */\n  private _insertView(\n    viewArgsFactory: () => _ViewRepeaterItemInsertArgs<C>,\n    currentIndex: number,\n    viewContainerRef: ViewContainerRef,\n    value: T,\n  ): EmbeddedViewRef<C> | undefined {\n    const cachedView = this._insertViewFromCache(currentIndex!, viewContainerRef);\n    if (cachedView) {\n      cachedView.context.$implicit = value;\n      return undefined;\n    }\n\n    const viewArgs = viewArgsFactory();\n    return viewContainerRef.createEmbeddedView(\n      viewArgs.templateRef,\n      viewArgs.context,\n      viewArgs.index,\n    );\n  }\n\n  /** Detaches the view at the given index and inserts into the view cache. */\n  private _detachAndCacheView(index: number, viewContainerRef: ViewContainerRef) {\n    const detachedView = viewContainerRef.detach(index) as EmbeddedViewRef<C>;\n    this._maybeCacheView(detachedView, viewContainerRef);\n  }\n\n  /** Moves view at the previous index to the current index. */\n  private _moveView(\n    adjustedPreviousIndex: number,\n    currentIndex: number,\n    viewContainerRef: ViewContainerRef,\n    value: T,\n  ): EmbeddedViewRef<C> {\n    const view = viewContainerRef.get(adjustedPreviousIndex!) as EmbeddedViewRef<C>;\n    viewContainerRef.move(view, currentIndex);\n    view.context.$implicit = value;\n    return view;\n  }\n\n  /**\n   * Cache the given detached view. If the cache is full, the view will be\n   * destroyed.\n   */\n  private _maybeCacheView(view: EmbeddedViewRef<C>, viewContainerRef: ViewContainerRef) {\n    if (this._viewCache.length < this.viewCacheSize) {\n      this._viewCache.push(view);\n    } else {\n      const index = viewContainerRef.indexOf(view);\n\n      // The host component could remove views from the container outside of\n      // the view repeater. It's unlikely this will occur, but just in case,\n      // destroy the view on its own, otherwise destroy it through the\n      // container to ensure that all the references are removed.\n      if (index === -1) {\n        view.destroy();\n      } else {\n        viewContainerRef.remove(index);\n      }\n    }\n  }\n\n  /** Inserts a recycled view from the cache at the given index. */\n  private _insertViewFromCache(\n    index: number,\n    viewContainerRef: ViewContainerRef,\n  ): EmbeddedViewRef<C> | null {\n    const cachedView = this._viewCache.pop();\n    if (cachedView) {\n      viewContainerRef.insert(cachedView, index);\n    }\n    return cachedView || null;\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {Subject} from 'rxjs';\n\n/**\n * 用于从列表中选择一个或多个选项的类\n */\nexport class GuiSelectionModel<T> {\n\n  // 当前选中的值\n  private _selection = new Set<T>();\n\n  // 跟踪更改事件未发出的取消选择的选项\n  private _deselectedToEmit: T[] = [];\n\n  // 跟踪更改事件未发出的选定选项\n  private _selectedToEmit: T[] = [];\n\n  // 缓存所选项目的数组值\n  private _selected: T[] | null;\n\n  /** 已选择的值 */\n  get selected(): T[] {\n    if (!this._selected) {\n      this._selected = Array.from(this._selection.values());\n    }\n\n    return this._selected;\n  }\n\n  /** 值更改时发出的事件 */\n  readonly changed = new Subject<SelectionChange<T>>();\n\n  constructor(\n    private _multiple = false,\n    initiallySelectedValues?: T[],\n    private _emitChanges = true,\n  ) {\n    if (initiallySelectedValues && initiallySelectedValues.length) {\n      if (_multiple) {\n        initiallySelectedValues.forEach(value => this._markSelected(value));\n      } else {\n        this._markSelected(initiallySelectedValues[0]);\n      }\n\n      // 清除数组以避免触发预选值的更改事件\n      this._selectedToEmit.length = 0;\n    }\n  }\n\n  /** 选择一个值 */\n  select(value: T): void {\n    this._markSelected(value);\n    this._emitChangeEvent();\n  }\n\n  /** 取消选择一个值 */\n  deselect(value: T): void {\n    this._unmarkSelected(value);\n    this._emitChangeEvent();\n  }\n\n  /** 在选定和取消选定之间切换一个值 */\n  toggle(value: T): void {\n    this.isSelected(value) ? this.deselect(value) : this.select(value);\n  }\n\n  /** 重置所有选定的值 */\n  reset(values: T | T[]): void {\n    this._verifyValueAssignment(values);\n    this._unmarkAll();\n    if (values instanceof Array) {\n      values.forEach(value => this._markSelected(value));\n    } else {\n      this._markSelected(values);\n    }\n    this._emitChangeEvent();\n  }\n\n  /** 清除所有选定的值 */\n  clear(): void {\n    this._unmarkAll();\n    this._emitChangeEvent();\n  }\n\n  /** 确定是否选择了一个值 */\n  isSelected(value: T): boolean {\n    return this._selection.has(value);\n  }\n\n  /** 确定模型是否没有值 */\n  isEmpty(): boolean {\n    return this._selection.size === 0;\n  }\n\n  /** 判断模型是否有值 */\n  hasValue(): boolean {\n    return !this.isEmpty();\n  }\n\n  /** 对选定值进行排序 */\n  sort(predicate?: (a: T, b: T) => number): void {\n    if (this._multiple && this.selected) {\n      this._selected!.sort(predicate);\n    }\n  }\n\n  /** 获取是否可以选择多个值 */\n  isMultipleSelection() {\n    return this._multiple;\n  }\n\n  /** 发出更改事件并清除选定和取消选定值的记录 */\n  private _emitChangeEvent() {\n    // 清除选定的值，以便可以重新缓存它们\n    this._selected = null;\n\n    if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n      this.changed.next({\n        source: this,\n        added: this._selectedToEmit,\n        removed: this._deselectedToEmit,\n      });\n\n      this._deselectedToEmit = [];\n      this._selectedToEmit = [];\n    }\n  }\n\n  // 选择一个值\n  private _markSelected(value: T) {\n    if (!this.isSelected(value)) {\n      if (!this._multiple) {\n        this._unmarkAll();\n      }\n\n      this._selection.add(value);\n\n      if (this._emitChanges) {\n        this._selectedToEmit.push(value);\n      }\n    }\n  }\n\n  // 取消选择一个值\n  private _unmarkSelected(value: T) {\n    if (this.isSelected(value)) {\n      this._selection.delete(value);\n\n      if (this._emitChanges) {\n        this._deselectedToEmit.push(value);\n      }\n    }\n  }\n\n  // 清除选定的值\n  private _unmarkAll() {\n    if (!this.isEmpty()) {\n      this._selection.forEach(value => this._unmarkSelected(value));\n    }\n  }\n\n  // 如果指定的值数组包含多个值而选择模型不支持多个值，则验证值分配并引发错误\n  private _verifyValueAssignment(values: T | T[]) {\n    if (values instanceof Array && !this._multiple) {\n      throw getMultipleValuesInSingleSelectionError();\n    }\n  }\n}\n\n/**\n * 当 GuiSelectionModel 的值发生变化时发出的事件\n * @docs-private\n */\nexport interface SelectionChange<T> {\n  source: GuiSelectionModel<T>;\n  added: T[];\n  removed: T[];\n}\n\n/**\n * 返回一个错误，报告多个值被传递到具有单个值的选择模型中\n * @docs-private\n */\nexport function getMultipleValuesInSingleSelectionError() {\n  return Error('Cannot pass multiple values into GuiSelectionModel with single-value mode.');\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\n@Injectable({providedIn: 'root'})\nexport class UniqueSelectionDispatcher implements OnDestroy {\n  private _listeners: UniqueSelectionDispatcherListener[] = [];\n\n  /**\n   * Notify other items that selection for the given name has been set.\n   * @param id ID of the item.\n   * @param name Name of the item.\n   */\n  notify(id: string, name: string) {\n    for (let listener of this._listeners) {\n      listener(id, name);\n    }\n  }\n\n  /**\n   * Listen for future changes to item selection.\n   * @return Function used to deregister listener\n   */\n  listen(listener: UniqueSelectionDispatcherListener): () => void {\n    this._listeners.push(listener);\n    return () => {\n      this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n        return listener !== registered;\n      });\n    };\n  }\n\n  ngOnDestroy() {\n    this._listeners = [];\n  }\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {GuiSelectionModel} from './selection-model';\n\n/**\n * Interface for a class that can flatten hierarchical structured data and re-expand the flattened\n * data back into its original structure. Should be used in conjunction with the cdk-tree.\n */\nexport interface TreeDataNodeFlattener<T> {\n  /** Transforms a set of hierarchical structured data into a flattened data array. */\n  flattenNodes(structuredData: any[]): T[];\n\n  /**\n   * Expands a flattened array of data into its hierarchical form using the provided expansion\n   * model.\n   */\n  expandFlattenedNodes(nodes: T[], expansionModel: GuiSelectionModel<T>): T[];\n\n  /**\n   * Put node descendants of node in array.\n   * If `onlyExpandable` is true, then only process expandable descendants.\n   */\n  nodeDescendents(node: T, nodes: T[], onlyExpandable: boolean): void;\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  InjectionToken,\n  IterableChangeRecord,\n  IterableChanges,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\n\n/**\n * The context for an embedded view in the repeater's view container.\n *\n * @template T The type for the embedded view's $implicit property.\n */\nexport interface _ViewRepeaterItemContext<T> {\n  $implicit?: T;\n}\n\n/**\n * The arguments needed to construct an embedded view for an item in a view\n * container.\n *\n * @template C The type for the context passed to each embedded view.\n */\nexport interface _ViewRepeaterItemInsertArgs<C> {\n  templateRef: TemplateRef<C>;\n  context?: C;\n  index?: number;\n}\n\n/**\n * A factory that derives the embedded view context for an item in a view\n * container.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nexport type _ViewRepeaterItemContextFactory<T, R, C extends _ViewRepeaterItemContext<T>> = (\n  record: IterableChangeRecord<R>,\n  adjustedPreviousIndex: number | null,\n  currentIndex: number | null,\n) => _ViewRepeaterItemInsertArgs<C>;\n\n/**\n * Extracts the value of an item from an {@link IterableChangeRecord}.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n */\nexport type _ViewRepeaterItemValueResolver<T, R> = (record: IterableChangeRecord<R>) => T;\n\n/** Indicates how a view was changed by a {@link _ViewRepeater}. */\nexport const enum _ViewRepeaterOperation {\n  /** The content of an existing view was replaced with another item. */\n  REPLACED,\n  /** A new view was created with `createEmbeddedView`. */\n  INSERTED,\n  /** The position of a view changed, but the content remains the same. */\n  MOVED,\n  /** A view was detached from the view container. */\n  REMOVED,\n}\n\n/**\n * Meta data describing the state of a view after it was updated by a\n * {@link _ViewRepeater}.\n *\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nexport interface _ViewRepeaterItemChange<R, C> {\n  /** The view's context after it was changed. */\n  context?: C;\n  /** Indicates how the view was changed. */\n  operation: _ViewRepeaterOperation;\n  /** The view's corresponding change record. */\n  record: IterableChangeRecord<R>;\n}\n\n/**\n * Type for a callback to be executed after a view has changed.\n *\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nexport type _ViewRepeaterItemChanged<R, C> = (change: _ViewRepeaterItemChange<R, C>) => void;\n\n/**\n * Describes a strategy for rendering items in a {@link ViewContainerRef}.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nexport interface _ViewRepeater<T, R, C extends _ViewRepeaterItemContext<T>> {\n  applyChanges(\n    changes: IterableChanges<R>,\n    viewContainerRef: ViewContainerRef,\n    itemContextFactory: _ViewRepeaterItemContextFactory<T, R, C>,\n    itemValueResolver: _ViewRepeaterItemValueResolver<T, R>,\n    itemViewChanged?: _ViewRepeaterItemChanged<R, C>,\n  ): void;\n\n  detach(): void;\n}\n\n/**\n * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.\n * @docs-private\n */\nexport const _VIEW_REPEATER_STRATEGY = new InjectionToken<\n  _ViewRepeater<unknown, unknown, _ViewRepeaterItemContext<unknown>>\n>('_ViewRepeater');\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './array-data-source';\nexport * from './collection-viewer';\nexport * from './data-source';\nexport * from './dispose-view-repeater-strategy';\nexport * from './recycle-view-repeater-strategy';\nexport * from './selection-model';\nexport {\n  UniqueSelectionDispatcher,\n  UniqueSelectionDispatcherListener,\n} from './unique-selection-dispatcher';\nexport * from './tree-adapter';\nexport * from './view-repeater';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Inject,\n  Input,\n  OnInit,\n  Optional,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GUI_SELECT_PANEL, GuiSelectPanel, GuiSelectOption} from './select-panel';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\n\n@Component({\n  selector: 'gui-option',\n  templateUrl: './option.html',\n  styleUrls: ['./option.scss'],\n  host: {\n    'class': 'gui-option',\n    '[class.active]': 'selected',\n    '[attr.selected]': 'selected',\n    '(click)': '_onClick()'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiOption'\n})\nexport class GuiOption implements GuiSelectOption {\n\n  // Component input 类型检查\n  static ngAcceptInputType_selected: BooleanInput;\n\n  /** 值 */\n  @Input()\n  value: any;\n\n  /** 标签 */\n  @Input()\n  label: string;\n\n  /** 附加数据 */\n  @Input()\n  data: any;\n\n  /** 是否被选中 */\n  get selected(): boolean {\n    if (this.parentSelect.selectionModel) {\n      return this.parentSelect.selectionModel.isSelected(this.value);\n    }\n    return false;\n  }\n\n  constructor(\n    private _elementRef: ElementRef,\n    @Inject(GUI_SELECT_PANEL) public parentSelect: GuiSelectPanel) {\n  }\n\n  public _onClick(): void {\n    if (this.parentSelect.selectionModel) {\n      if (this.parentSelect.selectionModel.isMultipleSelection()) {\n        this.parentSelect.selectionModel.toggle(this.value);\n      } else {\n        this.parentSelect.selectionModel.select(this.value);\n      }\n      this.parentSelect._emitChangeEvent();\n    }\n  }\n\n}\n","<ng-content></ng-content>\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {GuiCollapseAnimations, GuiCollapseState} from '../collapse';\nimport {GuiPopover} from '../popover';\nimport {GUI_SELECT_PANEL, GuiSelectOption, GuiSelectPanel} from './select-panel';\nimport {GuiSelectionModel} from '../collections';\nimport {GuiOption} from './option';\n\n\nlet nextUniqueId = 0;\n\n// 值访问器, 用来支持 ngModel\nexport const GUI_SELECT_CONTROL_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => GuiSelect),\n  multi: true\n};\n\n// Change 事件对象\nexport class GuiSelectChange {\n  source: GuiSelect;\n  value: any;\n}\n\n\n@Component({\n  selector: 'gui-select',\n  templateUrl: './select.html',\n  styleUrls: ['./select.scss'],\n  host: {\n    'class': 'gui-select'\n  },\n  animations: [\n    GuiCollapseAnimations.indicatorRotate180\n  ],\n  providers: [\n    GUI_SELECT_CONTROL_VALUE_ACCESSOR,\n    {provide: GUI_SELECT_PANEL, useExisting: GuiSelect}\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSelect'\n})\nexport class GuiSelect implements OnInit, OnDestroy, ControlValueAccessor, GuiSelectPanel {\n\n  @ViewChild(GuiPopover)\n  popover: GuiPopover;\n\n  @ContentChildren(GuiOption, {descendants: true})\n  options: QueryList<GuiOption>;\n\n  // Component input 类型检查\n  static ngAcceptInputType_checked: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_required: BooleanInput;\n  static ngAcceptInputType_multiple: BooleanInput;\n\n  // 唯一标识\n  private _uniqueId: string = `gui-select-${++nextUniqueId}`;\n\n  // ControlValueAccessor 回调\n  private _controlValueAccessorOnChange = (_: any) => {\n  };\n  private _controlValueAccessorOnTouched = () => {\n  };\n\n  // 选择模型\n  get selectionModel(): GuiSelectionModel<any> | null {\n    return this._selectionModel;\n  }\n\n  private _selectionModel: GuiSelectionModel<any> | null = null;\n\n  /** 输入的唯一ID,如果没有提供将自动生成 */\n  @Input() id: string = this._uniqueId;\n\n  /** 当值改变时发出的事件 */\n  @Output() readonly change: EventEmitter<GuiSelectChange> = new EventEmitter<GuiSelectChange>();\n\n  /** 返回视觉隐藏输入的唯一ID */\n  get inputId(): string {\n    return `${this.id || this._uniqueId}`;\n  }\n\n  /** 占位符 */\n  @Input() placeholder: string;\n\n  /** 名称 */\n  @Input() name: string;\n\n  /** 是否是必填项 */\n  @Input()\n  get required(): boolean {\n    return this._required;\n  }\n\n  set required(value: BooleanInput) {\n    this._required = coerceBooleanProperty(value);\n  }\n\n  protected _required: boolean;\n\n  /** 值 */\n  @Input()\n  get value(): any {\n    if (this.selectionModel) {\n\n      // 如果是多选, 则返回数组\n      // 否则返回单个值\n      if (this.selectionModel.isMultipleSelection()) {\n        return this.selectionModel.selected;\n      } else {\n        if (this.selectionModel.hasValue()) {\n          return this.selectionModel.selected[0];\n        }\n      }\n    }\n\n    return this._initiallyValue;\n  }\n\n  set value(value: any) {\n    if (this.selectionModel) {\n      this.selectionModel.reset(value);\n    } else {\n      this._initiallyValue = value;\n    }\n  }\n\n  private _initiallyValue: any;\n\n  @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n  /** 是否只读 */\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n\n  set readonly(value: BooleanInput) {\n    this._readonly = coerceBooleanProperty(value);\n  }\n\n  private _readonly = false;\n\n  /** 是否禁用 */\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: any) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  /** 是否打开 */\n  @Input()\n  get opened(): boolean {\n    return this.popover ? this.popover.opened : false;\n  }\n\n  /** 是否可以多选 */\n  @Input()\n  get multiple(): boolean {\n    return this._multiple;\n  }\n\n  set multiple(value: BooleanInput) {\n    this._multiple = coerceBooleanProperty(value);\n  }\n\n  private _multiple: boolean = false;\n\n  /** 数据 URL */\n  @Input()\n  get optionsUrl(): string {\n    return this._optionsUrl;\n  }\n\n  set optionsUrl(value: string) {\n    this._optionsUrl = value;\n  }\n\n  private _optionsUrl: string;\n\n  @Input()\n  optionsDataMapCallback: ((value: any) => GuiSelectOption) | undefined;\n\n  // 内置数据\n  public optionsDataItems: GuiSelectOption[] = [];\n\n  constructor(private _changeDetectorRef: ChangeDetectorRef,\n              private _httpClient: HttpClient) {\n  }\n\n  ngOnInit(): void {\n    this._selectionModel = new GuiSelectionModel<GuiSelectOption>(this.multiple);\n    if (this._initiallyValue !== undefined) {\n      this.value = this._initiallyValue;\n    }\n\n    if (this._optionsUrl) {\n      this._httpClient.get<any[]>(this.optionsUrl).subscribe(items => {\n        if (this.optionsDataMapCallback) {\n          this.optionsDataItems = items.map(value => this.optionsDataMapCallback!(value));\n        } else {\n          this.optionsDataItems = items as GuiSelectOption[];\n        }\n        this._changeDetectorRef.markForCheck();\n      })\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.change.complete();\n    this.valueChange.complete();\n  }\n\n  public _emitChangeEvent() {\n    const event = new GuiSelectChange();\n    event.source = this;\n    event.value = this.value;\n\n    this._controlValueAccessorOnChange(this.value);\n    this.change.emit(event);\n    this.valueChange.emit(this.value);\n  }\n\n  get _label(): string {\n    const selectedOptionLabels: string[] = [];\n\n    if (this.selectionModel) {\n      for (let i = 0; i < this.options.length; i++) {\n        const option: GuiOption = this.options.get(i)!;\n        if (this.selectionModel.isSelected(option.value)) {\n          selectedOptionLabels.push(option.label);\n        }\n      }\n      for (let i = 0; i < this.optionsDataItems.length; i++) {\n        const option: GuiSelectOption = this.optionsDataItems[i];\n        if (this.selectionModel.isSelected(option.value)) {\n          selectedOptionLabels.push(option.label);\n        }\n      }\n    }\n\n    return selectedOptionLabels.join(', ');\n  }\n\n  // 当前动画状态\n  get _animationState(): GuiCollapseState {\n    return this.opened ? 'expanded' : 'collapsed';\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public writeValue(value: any): void {\n    this.value = value;\n    this._changeDetectorRef.markForCheck();\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnChange(fn: any): void {\n    this._controlValueAccessorOnChange = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnTouched(fn: any): void {\n    this._controlValueAccessorOnTouched = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n  }\n\n}\n","<div role=\"listbox\"\n     appearance=\"button\"\n     class=\"gui-select-wrap\"\n     [id]=\"inputId\"\n     [attr.aria-readonly]=\"readonly\"\n     [attr.aria-disabled]=\"disabled\"\n     [attr.aria-required]=\"required\"\n     [attr.aria-multiselectable]=\"multiple\"\n     [attr.tabindex]=\"disabled ? null : 0\"\n     (click)=\"popover.open($event)\">\n  <div class=\"gui-slot-content\">\n    {{_label}}\n  </div>\n  <div class=\"gui-slot-end\" [@indicatorRotate180]=\"_animationState\">\n    <gui-icon name=\"chevron-down\">\n    </gui-icon>\n  </div>\n</div>\n\n<gui-popover #popover>\n  <div role=\"menu\" class=\"gui-options-wrap\">\n    <ng-content></ng-content>\n    <ng-container *ngIf=\"optionsDataItems\">\n      <gui-option *ngFor=\"let dataItem of optionsDataItems\" [value]=\"dataItem.value\" [label]=\"dataItem.label\">{{dataItem.label}}</gui-option>\n    </ng-container>\n  </div>\n</gui-popover>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiPopoverModule} from '../popover';\nimport {GuiIcon} from '../icon';\nimport {GuiCollapse} from '../collapse';\nimport {GuiSelect} from './select';\nimport {GuiOption} from './option';\n\n@NgModule({\n  declarations: [\n    GuiOption,\n    GuiSelect\n  ],\n    imports: [\n      CommonModule,\n      GuiIcon,\n      GuiCollapse,\n      GuiPopoverModule\n    ],\n  exports: [\n    GuiOption,\n    GuiSelect\n  ]\n})\nexport class GuiSelectModule {\n}\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './select.module';\nexport * from './select-panel';\nexport * from './option';\nexport * from './select';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {\n  AfterViewInit,\n  Attribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Optional,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DOCUMENT} from '@angular/common';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\n\nimport {Subscription} from 'rxjs';\nimport {normalizePassiveListenerOptions} from '../platform';\nimport {BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput} from '../coercion';\nimport {GuiDirectionality} from '../direction';\nimport {\n  DOWN_ARROW,\n  END,\n  hasModifierKey,\n  HOME,\n  LEFT_ARROW,\n  PAGE_DOWN,\n  PAGE_UP,\n  RIGHT_ARROW,\n  UP_ARROW\n} from '../keycodes';\n\n// 唯一标识, 用来避免冲突\nlet nextUniqueId = 0;\n\n// Change 事件对象\nexport class GuiSliderChange {\n  constructor(\n    public source: GuiSlider,\n    public value: number) {\n  }\n}\n\n// 值访问器, 用来支持 ngModel\nexport const GUI_SLIDER_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => GuiSlider),\n  multi: true\n};\n\n// 消极事件监听选项\n// 用于使某个事件的性能避免受到监听事件函数所耗费时间的影响\n// 可参考此文章 https://www.cnblogs.com/ziyunfei/p/5545439.html\nconst activeEventOptions = normalizePassiveListenerOptions({passive: false});\n\n@Component({\n  selector: 'gui-slider',\n  templateUrl: './slider.html',\n  styleUrls: ['./slider.scss'],\n  providers: [GUI_SLIDER_VALUE_ACCESSOR],\n  host: {\n    'class': 'gui-slider',\n    'role': 'slider',\n    '[id]': 'id',\n    '[tabIndex]': 'tabIndex',\n    '[attr.aria-disabled]': 'disabled',\n    '[attr.aria-valuemax]': 'max',\n    '[attr.aria-valuemin]': 'min',\n    '[attr.aria-valuenow]': 'value',\n    '[attr.aria-valuetext]': 'valueText == null ? displayValue : valueText',\n    '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n    '[class.gui-slider-disabled]': 'disabled',\n    '[class.gui-slider-horizontal]': '!vertical',\n    '[class.gui-slider-axis-inverted]': '_shouldInvertAxis()',\n    '[class.gui-slider-invert-mouse-coords]': '_shouldInvertMouseCoords()',\n    '[class.gui-slider-sliding]': '_isSliding',\n    '[class.gui-slider-vertical]': 'vertical',\n    '[class.gui-slider-min-value]': '_isMinValue()',\n     '[class._gui-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    '(focus)': '_onFocus()',\n    '(blur)': '_onBlur()',\n    // '(keydown)': '_onKeydown($event)',\n    '(keyup)': '_onKeyup()',\n    '(mouseenter)': '_onMouseenter()',\n    // 在 Safari 上开始临时滑动会触发显示错误光标的文本选择模式\n    // 通过停止 `selectstart` 事件来防止它\n    // '(selectstart)': '$event.preventDefault()',\n  },\n  inputs: [\n    'disabled'\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSlider'\n})\nexport class GuiSlider implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\n  // Component input 类型检查\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_tabIndex: NumberInput;\n  static ngAcceptInputType_value: NumberInput;\n\n  // 滑块尺寸\n  private _sliderDimensions: ClientRect | null = null;\n\n  // 根据步数舍入到的小数位数\n  private _roundToDecimal: number;\n\n  // 订阅方向性更改 EventEmitter\n  private _dirChangeSubscription = Subscription.EMPTY;\n\n  // 滑动开始事件触发时滑块的值\n  private _valueOnSlideStart: number | null;\n\n  // thumb是否在滑动以及用户用什么来滑动它\n  // 用于确定拇指和填充轨道是否应该有过渡\n  _isSliding: 'keyboard' | 'pointer' | null = null;\n\n  // 滑块是否处于活动状态（单击或滑动）\n  _isActive: boolean = false;\n\n  // 跟踪滑块捕获的最后一个指针事件\n  private _lastPointerEvent: MouseEvent | TouchEvent | null;\n\n  // 唯一标识\n  private _uniqueId: string = `ui-slider-${++nextUniqueId}`;\n\n  // 用于将触摸事件归于特定滑块的标识符\n  // 如果以下条件之一为真，则将是未定义的：\n  // - 用户没有使用触摸设备进行拖动\n  // - 浏览器不支持`Touch.identifier`\n  // - 拖动尚未开始\n  private _touchId: number | undefined;\n\n  @ViewChild('sliderWrapper') private _sliderWrapper: ElementRef;\n\n  /** 每次滑动切换更改其值时都会调度一个事件 */\n  @Output() readonly valueChange: EventEmitter<GuiSliderChange> = new EventEmitter<GuiSliderChange>();\n\n  // ControlValueAccessor 回调\n  private _controlValueAccessorOnChange = (_: any) => {};\n  private _controlValueAccessorOnTouched = () => {};\n\n  constructor(private _elementRef: ElementRef,\n              private _changeDetectorRef: ChangeDetectorRef,\n              private _ngZone: NgZone,\n              @Optional() private _dir: GuiDirectionality,\n              @Attribute('tabindex') tabIndex: string,\n              @Inject(DOCUMENT) private _document: any,\n              @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string) {\n    this.tabIndex = parseInt(tabIndex) || 0;\n\n    /** 挂载事件 */\n    _ngZone.runOutsideAngular(() => {\n      const element = _elementRef.nativeElement;\n      element.addEventListener('mousedown', this._pointerDown, activeEventOptions);\n      element.addEventListener('touchstart', this._pointerDown, activeEventOptions);\n    });\n  }\n\n  ngAfterViewInit() {\n    if (this._dir) {\n      this._dirChangeSubscription = this._dir.change.subscribe(() => {\n        this._changeDetectorRef.markForCheck();\n      });\n    }\n  }\n\n  ngOnDestroy() {\n    this._elementRef.nativeElement.removeEventListener('mousedown', this._pointerDown, activeEventOptions);\n    this._elementRef.nativeElement.removeEventListener('touchstart', this._pointerDown, activeEventOptions);\n    this._lastPointerEvent = null;\n    this._removeGlobalEvents();\n    this._dirChangeSubscription.unsubscribe();\n  }\n\n  /** 滑块的唯一ID,如果没有提供将自动生成 */\n  @Input() id: string = this._uniqueId;\n\n  /** 组件的 Tabindex */\n  get tabIndex(): number { return this.disabled ? -1 : this._tabIndex; }\n  set tabIndex(value: number) {\n    this._tabIndex = value != null ? coerceNumberProperty(value) : 0;\n  }\n  _tabIndex: number;\n\n  /** 是否禁用 */\n  get disabled(): boolean { return this._disabled; }\n  set disabled(value: any) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled: boolean = false;\n\n  /** 滑块值的百分比 */\n  get percent(): number { return this._clamp(this._percent); }\n  private _percent: number = 0;\n\n  /** 滑块可以具有的最大值 */\n  @Input()\n  get max(): number { return this._max; }\n  set max(v: number) {\n    this._max = coerceNumberProperty(v, this._max);\n    this._percent = this._calculatePercentage(this._value);\n\n    // 由于这也会修改百分比, 需要让变化检测知道此变化\n    this._changeDetectorRef.markForCheck();\n  }\n  private _max: number = 100;\n\n  /** 滑块可以具有的最小值 */\n  @Input()\n  get min(): number { return this._min; }\n  set min(v: number) {\n    this._min = coerceNumberProperty(v, this._min);\n    this._percent = this._calculatePercentage(this._value);\n\n    // 由于这也会修改百分比, 需要让变化检测知道此变化\n    this._changeDetectorRef.markForCheck();\n  }\n  private _min: number = 0;\n\n  /** 将捕捉到的步进值 */\n  @Input()\n  get step(): number { return this._step; }\n  set step(value: number) {\n    this._step = coerceNumberProperty(value, this._step);\n\n    if (this._step % 1 !== 0) {\n      this._roundToDecimal = this._step.toString().split('.').pop()!.length;\n    }\n\n    // 由于这也会修改百分比, 需要让变化检测知道此变化\n    this._changeDetectorRef.markForCheck();\n  }\n  private _step: number = 1;\n\n  /** 滑块的值 */\n  @Input()\n  get value(): number {\n    // 如果需要读取该值但仍未初始化则将其初始化为最小值\n    if (this._value === null) {\n      this.value = this._min;\n    }\n    return this._value as number;\n  }\n  set value(v: number) {\n    if (v !== this._value) {\n      let value = coerceNumberProperty(v, 0);\n\n      // 当以小数递增时, 我们可以得到像 33.300000000000004 这样的值\n      // 截断它以确保它与标签匹配并使其更易于使用\n      if (this._roundToDecimal && value !== this.min && value !== this.max) {\n        value = parseFloat(value.toFixed(this._roundToDecimal));\n      }\n\n      this._value = value;\n      this._percent = this._calculatePercentage(this._value);\n\n      // 由于这也会修改百分比, 需要让变化检测知道此变化\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n  private _value: number | null = null;\n\n  /** 滑块是否垂直 */\n  @Input()\n  get vertical(): boolean { return this._vertical; }\n  set vertical(value: boolean) {\n    this._vertical = coerceBooleanProperty(value);\n  }\n  private _vertical = false;\n\n  /** 滑块是否倒置 */\n  @Input()\n  get invert(): boolean { return this._invert; }\n  set invert(value: boolean) {\n    this._invert = coerceBooleanProperty(value);\n  }\n  private _invert = false;\n\n  /**\n   * 将用于在值显示在 thumb 标签之前格式化该值的函数\n   * 可用于格式化非常大的数字，以便它们适合滑块拇指。\n   */\n  @Input() displayWith: (value: number) => string | number;\n\n  /** 与滑块值对应的文本, 主要用于改善可访问性 */\n  @Input() valueText: string;\n\n  /** 用于显示的值 */\n  get displayValue(): string | number {\n    if (this.displayWith) {\n      // 值永远不会为空，但由于 setter 和 getter 不能有不同的类型，因此值 getter 也被键入以返回 null\n      return this.displayWith(this.value!);\n    }\n\n    // 请注意，这可以通过将 0.999 舍入到 1 或 0.899 到 0.9 之类的值来进一步改进\n    // 但是它对性能非常敏感, 因为它在每个更改检测周期中都会被调用\n    if (this._roundToDecimal && this.value && this.value % 1 !== 0) {\n      return this.value.toFixed(this._roundToDecimal);\n    }\n\n    return this.value || 0;\n  }\n\n  /** 将焦点设置到宿主元素  */\n  focus(options?: FocusOptions) {\n    this._focusHostElement(options);\n  }\n\n  /** 将焦点从宿主元素移开 */\n  blur() {\n    this._blurHostElement();\n  }\n\n  // 计算一个值占滑块的百分比\n  private _calculatePercentage(value: number | null) {\n    return ((value || 0) - this.min) / (this.max - this.min);\n  }\n\n  // 计算滑块的百分比对应的值\n  private _calculateValue(percentage: number) {\n    return this.min + percentage * (this.max - this.min);\n  }\n\n  // 返回两个数字之间的数字\n  private _clamp(value: number, min = 0, max = 1) {\n    return Math.max(min, Math.min(value, max));\n  }\n\n  // 将滑块增加给定的步数（负数递减）\n  private _increment(numSteps: number) {\n    this.value = this._clamp((this.value || 0) + this.step * numSteps, this.min, this.max);\n  }\n\n  // 滑块是否处于最小值\n  public _isMinValue() {\n    return this.percent === 0;\n  }\n\n  // 聚焦原生元素\n  private _focusHostElement(options?: FocusOptions) {\n    this._elementRef.nativeElement.focus(options);\n  }\n\n  // 离开聚焦原生元素\n  private _blurHostElement() {\n    this._elementRef.nativeElement.blur();\n  }\n\n  // 此滑块元素的语言方向\n  private _getDirection() {\n    return (this._dir && this._dir.value == 'rtl') ? 'rtl' : 'ltr';\n  }\n\n  // 滑块的轴是否反转\n  _shouldInvertAxis() {\n    return this.vertical ? !this.invert : this.invert;\n  }\n\n  // 获取滑块轨道元素的边界客户端矩形\n  // 使用轨道而不是本机元素来忽略thumb可以占用的额外空间\n  private _getSliderDimensions() {\n    return this._sliderWrapper ? this._sliderWrapper.nativeElement.getBoundingClientRect() : null;\n  }\n\n  // 获取焦点事件处理\n  public _onFocus() {\n    // 在此处保存滑块的尺寸以便可以使用它们来更新刻度的间距并确定滑块单击和滑动事件发生的位置\n    this._sliderDimensions = this._getSliderDimensions();\n  }\n\n  // 失去焦点事件处理\n  public _onBlur() {\n    this._controlValueAccessorOnTouched();\n  }\n\n  // 鼠标进入事件处理\n  public _onMouseenter() {\n    if (this.disabled) {\n      return;\n    }\n\n    // 在此处保存滑块的尺寸以便可以使用它们来更新刻度的间距并确定滑块单击和滑动事件发生的位置\n    this._sliderDimensions = this._getSliderDimensions();\n  }\n\n  // 按键按下事件处理\n  public _onKeydown(event: KeyboardEvent) {\n    if (!(this.disabled || hasModifierKey(event) ||\n      (this._isSliding && this._isSliding !== 'keyboard'))) {\n      const oldValue = this.value;\n      switch (event.keyCode) {\n        case PAGE_UP:\n          this._increment(10);\n          break;\n        case PAGE_DOWN:\n          this._increment(-10);\n          break;\n        case END:\n          this.value = this.max;\n          break;\n        case HOME:\n          this.value = this.min;\n          break;\n        case LEFT_ARROW:\n          this._increment(this._getDirection() == 'rtl' ? 1 : -1);\n          break;\n        case UP_ARROW:\n          this._increment(1);\n          break;\n        case RIGHT_ARROW:\n          this._increment(this._getDirection() == 'rtl' ? -1 : 1);\n          break;\n        case DOWN_ARROW:\n          this._increment(-1);\n          break;\n        default:\n          return;\n      }\n      if (oldValue != this.value) {\n        this._emitChangeEvent();\n      }\n      this._isSliding = 'keyboard';\n      event.preventDefault();\n    } else {\n      return;\n    }\n  }\n\n  // 按键抬起事件处理\n  public _onKeyup() {\n    if (this._isSliding === 'keyboard') {\n      this._isSliding = null;\n    }\n  }\n\n  // 当用户将指针放在滑块上时调用\n  private _pointerDown = (event: TouchEvent | MouseEvent) => {\n    // 如果滑块被禁用或用户使用的不是鼠标主按钮则不要执行任何操作\n    if (this.disabled || this._isSliding || (!this._isTouchEvent(event) && event.button !== 0)) {\n      return;\n    }\n\n    this._ngZone.run(() => {\n      this._touchId = this._isTouchEvent(event) ?\n        this._getTouchIdForSlider(event, this._elementRef.nativeElement) : undefined;\n      const pointerPosition = this._getPointerPositionOnPage(event, this._touchId);\n\n      if (pointerPosition) {\n        const oldValue = this.value;\n        this._isSliding = 'pointer';\n        this._lastPointerEvent = event;\n        event.preventDefault();\n        this._focusHostElement();\n        this._onMouseenter(); // Simulate mouseenter in case this is a mobile device.\n        this._bindGlobalEvents(event);\n        this._focusHostElement();\n        this._updateValueFromPosition(pointerPosition);\n        this._valueOnSlideStart = oldValue;\n\n        // Emit a change and input event if the value changed.\n        if (oldValue != this.value) {\n          this._emitChangeEvent();\n        }\n      }\n    });\n  }\n\n  // 当用户开始拖动后移动指针时调用\n  private _pointerMove = (event: TouchEvent | MouseEvent) => {\n    if (this._isSliding === 'pointer') {\n      const pointerPosition = this._getPointerPositionOnPage(event, this._touchId);\n\n      if (pointerPosition) {\n        // 防止选择其他任何内容\n        event.preventDefault();\n        const oldValue = this.value;\n        this._lastPointerEvent = event;\n        this._updateValueFromPosition(pointerPosition);\n\n        // 当滑动时值发生变化时本机范围元素总是发出 `input` 事件\n        if (oldValue != this.value) {\n          this._emitChangeEvent();\n        }\n      }\n    }\n  }\n\n  // 当用户抬起他们的指针时调用\n  private _pointerUp = (event: TouchEvent | MouseEvent) => {\n    if (this._isSliding === 'pointer') {\n      if (!this._isTouchEvent(event) || typeof this._touchId !== 'number' ||\n        // 请注意, 我们使用的是“changedTouches”而不是“touches”\n        // 因为在大多数情况下，对于“touchend”事件“touches”似乎是空的\n        this._findMatchingTouch(event.changedTouches, this._touchId)) {\n        event.preventDefault();\n        this._removeGlobalEvents();\n        this._isSliding = null;\n        this._touchId = undefined;\n\n        if (this._valueOnSlideStart != this.value && !this.disabled) {\n          this._emitChangeEvent();\n        }\n\n        this._valueOnSlideStart = this._lastPointerEvent = null;\n      }\n    }\n  }\n\n  // 返回事件是否为触摸事件\n  private _isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent {\n    // 用户拖动的每个像素都会调用此函数因此需要它尽可能快\n    // 由于我们只绑定了鼠标事件和触摸事件, 我们可以假设如果事件的名称以`t`开头，那么它就是一个触摸事件\n    return event.type[0] === 't';\n  }\n\n  // 获取触摸或鼠标事件相对于视口的坐标\n  private _getPointerPositionOnPage(event: MouseEvent | TouchEvent, id: number|undefined) {\n    let point: {clientX: number, clientY: number}|undefined;\n\n    if (this._isTouchEvent(event)) {\n      // 如果浏览器不支持`TouchEvent.identifier` 则 `identifier` 可能是未定义的\n      // 如果是这种情况, 将第一次触摸归因于所有活动滑块\n      // 这应该仍然涵盖最常见的情况, 而只会破坏多点触控\n      if (typeof id === 'number') {\n        point = this._findMatchingTouch(event.touches, id) || this._findMatchingTouch(event.changedTouches, id);\n      } else {\n        // 对于开始/结束事件, `touches` 将为空, 因此我们必须回退到 `changedTouches`\n        point = event.touches[0] || event.changedTouches[0];\n      }\n    } else {\n      point = event;\n    }\n\n    return point ? {x: point.clientX, y: point.clientY} : undefined;\n  }\n\n  // 在“TouchList”中查找具有特定 ID 的“Touch”\n  _findMatchingTouch(touches: TouchList, id: number): Touch | undefined {\n    for (let i = 0; i < touches.length; i++) {\n      if (touches[i].identifier === id) {\n        return touches[i];\n      }\n    }\n\n    return undefined;\n  }\n\n  // 获取与特定滑块匹配的触摸的唯一 ID\n  _getTouchIdForSlider(event: TouchEvent, sliderHost: HTMLElement): number | undefined {\n    for (let i = 0; i < event.touches.length; i++) {\n      const target = event.touches[i].target as HTMLElement;\n\n      if (sliderHost === target || sliderHost.contains(target)) {\n        return event.touches[i].identifier;\n      }\n    }\n\n    return undefined;\n  }\n\n  // 鼠标事件是否应该通过计算它们与滑块右侧或底部边缘而不是顶部或左侧的距离来转换为滑块位置\n  _shouldInvertMouseCoords() {\n    const shouldInvertAxis = this._shouldInvertAxis();\n    return (this._getDirection() == 'rtl' && !this.vertical) ? !shouldInvertAxis : shouldInvertAxis;\n  }\n\n  // 从新的物理位置计算新值\n  private _updateValueFromPosition(pos: {x: number, y: number}) {\n    if (!this._sliderDimensions) {\n      return;\n    }\n\n    let offset = this.vertical ? this._sliderDimensions.top : this._sliderDimensions.left;\n    let size = this.vertical ? this._sliderDimensions.height : this._sliderDimensions.width;\n    let posComponent = this.vertical ? pos.y : pos.x;\n\n    // 精确值是根据事件计算得出的, 用于查找最接近的捕捉值\n    let percent = this._clamp((posComponent - offset) / size);\n\n    if (this._shouldInvertMouseCoords()) {\n      percent = 1 - percent;\n    }\n\n    // 由于步长可能无法清晰地划分为最大值\n    // 如果用户滑动到 0% 或 100%，我们将跳转到最小值/最大值\n    // 这种方法比使用下面的“Math.ceil”更直观, 因为它更接近用户的指针\n    if (percent === 0) {\n      this.value = this.min;\n    } else if (percent === 1) {\n      this.value = this.max;\n    } else {\n      const exactValue = this._calculateValue(percent);\n\n      // 此计算通过找到与 min 相关的可被步长整除的最接近整数来找到最接近的步长\n      const closestValue = Math.round((exactValue - this.min) / this.step) * this.step + this.min;\n\n      // The value needs to snap to the min and max.\n      this.value = this._clamp(closestValue, this.min, this.max);\n    }\n  }\n\n  // 当窗口失去焦点时调用\n  private _windowBlur = () => {\n    // 如果拖动时窗口失去焦点则需要停止拖动\n    // 因为浏览器将不再发送 `mouseup` 和 `touchend` 事件\n    if (this._lastPointerEvent) {\n      this._pointerUp(this._lastPointerEvent);\n    }\n  }\n\n  // 全局窗口引用\n  private _getWindow(): Window {\n    return this._document.defaultView || window;\n  }\n\n  // 绑定全局移动和结束事件\n  // 它们在文档级别绑定并且仅在拖动时进行, 因此用户在屏幕上滑动时不必将指针准确地保持在滑块上\n  private _bindGlobalEvents(triggerEvent: TouchEvent | MouseEvent) {\n    // 请注意, 我们将事件绑定到 `document`, 因为它允许我们捕获用户指针位于浏览器窗口之外的拖动取消事件\n    const document = this._document;\n    const isTouch = this._isTouchEvent(triggerEvent);\n    const moveEventName = isTouch ? 'touchmove' : 'mousemove';\n    const endEventName = isTouch ? 'touchend' : 'mouseup';\n    document.addEventListener(moveEventName, this._pointerMove, activeEventOptions);\n    document.addEventListener(endEventName, this._pointerUp, activeEventOptions);\n\n    if (isTouch) {\n      document.addEventListener('touchcancel', this._pointerUp, activeEventOptions);\n    }\n\n    const window = this._getWindow();\n\n    if (typeof window !== 'undefined' && window) {\n      window.addEventListener('blur', this._windowBlur);\n    }\n  }\n\n  // 删除我们可能添加的任何全局事件侦听器\n  private _removeGlobalEvents() {\n    const document = this._document;\n    document.removeEventListener('mousemove', this._pointerMove, activeEventOptions);\n    document.removeEventListener('mouseup', this._pointerUp, activeEventOptions);\n    document.removeEventListener('touchmove', this._pointerMove, activeEventOptions);\n    document.removeEventListener('touchend', this._pointerUp, activeEventOptions);\n    document.removeEventListener('touchcancel', this._pointerUp, activeEventOptions);\n\n    const window = this._getWindow();\n\n    if (typeof window !== 'undefined' && window) {\n      window.removeEventListener('blur', this._windowBlur);\n    }\n  }\n\n  // 发出更改事件\n  private _emitChangeEvent() {\n    this._controlValueAccessorOnChange(this.value);\n    this.valueChange.emit(new GuiSliderChange(this, this.value));\n  }\n\n  // 计算跟踪填充 CSS 样式\n  public _getTrackFillStyles(): {[key: string]: string} {\n    const percent = this.percent;\n    const axis = this.vertical ? 'Y' : 'X';\n    const scale = this.vertical ? `1, ${percent}, 1` : `${percent}, 1, 1`;\n    const sign = this._shouldInvertMouseCoords() ? '' : '-';\n\n    return {\n      transform: `scale3d(${scale})`,\n    };\n  }\n\n  // 计算滑块容器 CSS 样式\n  _getThumbContainerStyles(): {[key: string]: string} {\n    const shouldInvertAxis = this._shouldInvertAxis();\n    let axis = this.vertical ? 'Y' : 'X';\n    let invertOffset =\n      this._getDirection() == 'rtl' && !this.vertical ? !shouldInvertAxis : shouldInvertAxis;\n    let offset = (invertOffset ? this.percent : 1 - this.percent) * 100;\n    return {\n      'transform': `translate${axis}(-${offset}%)`,\n    };\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public writeValue(value: any): void {\n    this.value = value;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnChange(fn: any): void {\n    this._controlValueAccessorOnChange = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public registerOnTouched(fn: any): void {\n    this._controlValueAccessorOnTouched = fn;\n  }\n\n  // 实现 ControlValueAccessor 以支持 ngModel\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n  }\n\n}\n","<div class=\"gui-slider-wrapper\" #sliderWrapper>\n  <div class=\"gui-slider-track-wrapper\">\n    <div class=\"gui-slider-track-background\"></div>\n    <div class=\"gui-slider-track-fill\" [ngStyle]=\"_getTrackFillStyles()\"></div>\n  </div>\n  <div class=\"gui-slider-thumb-container\" [ngStyle]=\"_getThumbContainerStyles()\">\n    <div class=\"gui-slider-thumb\"></div>\n  </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiSlider} from './slider';\n\n\n@NgModule({\n  declarations: [\n    GuiSlider\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    GuiSlider\n  ]\n})\nexport class GuiSliderModule {\n}\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './slider.module';\nexport * from './slider';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ValidatorFn, Validators} from '@angular/forms';\nimport {GuiSelectOption} from '../select';\n\nexport type GuiFormControlType =\n  'text' |\n  'password' |\n  'number' |\n  'select' |\n  'checkbox' |\n  'switch' |\n  'segment' |\n  'file';\n\nexport class GuiFormControl<T> {\n  value: T | T[] | undefined;\n  key: string;\n  label: string | (() => string);\n  caption: string | (() => string);\n  readonly: boolean;\n  required: boolean;\n  multiple: boolean;\n  hidden: boolean | (() => boolean);\n  controlType: GuiFormControlType;\n  options: { value: any, label: string }[];\n  optionsUrl: string;\n  optionsDataMapCallback: ((value: any) => GuiSelectOption) | undefined = undefined;\n  validators: ValidatorFn[];\n  gridItemSize: number;\n\n  constructor(options: {\n    value?: T | T[];\n    key?: string;\n    label?: string | (() => string);\n    caption?: string | (() => string);\n    readonly?: boolean;\n    required?: boolean;\n    multiple?: boolean;\n    hidden?: boolean | (() => boolean);\n    controlType?: GuiFormControlType;\n    options?: { value: any, label: string }[];\n    optionsUrl?: string;\n    optionsDataMapCallback?: (value: any) => GuiSelectOption;\n    validators?: ValidatorFn[] | null,\n    gridItemSize?: number\n  } = {}) {\n    this.value = options.value;\n    this.key = options.key || '';\n    this.label = typeof options.label === 'function' ? options.label : options.label || '';\n    this.caption = typeof options.caption === 'function' ? options.caption : options.caption || '';\n    this.readonly = !!options.readonly;\n    this.required = !!options.required;\n    this.multiple = !!options.multiple;\n    this.hidden = typeof options.hidden === 'function' ? options.hidden : !!options.hidden;\n    this.controlType = options.controlType || 'text';\n    this.options = options.options || [];\n    this.optionsUrl = options.optionsUrl || '';\n    this.optionsDataMapCallback = options.optionsDataMapCallback;\n    this.validators = [\n      ...(options.required ? [Validators.required] : []),\n      ...(options.validators ? options.validators : [])\n    ];\n    this.gridItemSize = options.gridItemSize || 1;\n  }\n\n  public _label(): string {\n    return typeof this.label === 'function' ? this.label() : this.label;\n  }\n\n  public _caption(): string {\n    return typeof this.caption === 'function' ? this.caption() : this.caption;\n  }\n\n  public _hidden(): boolean {\n    return typeof this.hidden === 'function' ? this.hidden() : this.hidden;\n  }\n\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, ElementRef, NgZone, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n  selector: 'gui-segment-ink-bar',\n  standalone: true,\n  imports: [\n    CommonModule\n  ],\n  templateUrl: './segment-ink-bar.html',\n  styleUrls: ['./segment-ink-bar.scss'],\n  host: {\n    'class': 'gui-segment-ink-bar'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSegmentInkBar'\n})\nexport class GuiSegmentInkBar {\n\n  constructor(private _elementRef: ElementRef<HTMLElement>,\n              private _ngZone: NgZone) { }\n\n  alignToElement(element: HTMLElement) {\n    this.show();\n\n    if (typeof requestAnimationFrame !== 'undefined') {\n      this._ngZone.runOutsideAngular(() => {\n        requestAnimationFrame(() => this._setStyles(element));\n      });\n    } else {\n      this._setStyles(element);\n    }\n  }\n\n  show(): void {\n    this._elementRef.nativeElement.style.visibility = 'visible';\n  }\n\n  hide(): void {\n    this._elementRef.nativeElement.style.visibility = 'hidden';\n  }\n\n  private _setStyles(element: HTMLElement) {\n    const left = element ? (element.offsetLeft || 0) + 'px' : '0';\n    const width = element ? (element.offsetWidth || 0) + 'px' : '0';\n    const inkBar: HTMLElement = this._elementRef.nativeElement;\n\n    inkBar.style.left = left;\n    inkBar.style.width = width;\n  }\n\n}\n","","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  AfterContentInit,\n  AfterViewChecked,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {GuiSegmentButton} from \"./segment-button\";\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {GuiSelectionModel} from '../collections';\nimport {GuiSegmentInkBar} from './segment-ink-bar';\nimport {GuiScreenSize} from '../screen-size';\nimport {GuiControlSize} from '../core';\nimport {CommonModule} from '@angular/common';\n\nlet nextUniqueId = 0;\n\nexport class GuiSegmentChange {\n  constructor(\n    public source: GuiSegmentButton,\n    public value: any) {\n  }\n}\n\nexport const GUI_SEGMENT_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => GuiSegment),\n  multi: true\n};\n\n@Component({\n  selector: 'gui-segment',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiSegmentInkBar,\n  ],\n  templateUrl: './segment.html',\n  styleUrls: ['./segment.scss'],\n  providers: [GUI_SEGMENT_VALUE_ACCESSOR],\n  host: {\n    'class': 'gui-segment',\n    'role': 'group',\n    '[id]': 'id',\n    '[attr.size]': 'size',\n    '[attr.tabindex]': 'disabled ? null : -1',\n    '[attr.aria-disabled]': 'disabled',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n  },\n  inputs: [\n    'disabled'\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSegment'\n})\nexport class GuiSegment implements ControlValueAccessor, AfterContentInit, AfterViewChecked {\n\n  static ngAcceptInputType_disabled: BooleanInput;\n  private _selectionModel: GuiSelectionModel<GuiSegmentButton> = new GuiSelectionModel<GuiSegmentButton>(false, undefined, false);\n  private _uniqueId: string = `gui-segment-${++nextUniqueId}`;\n  private _rawValue: any;\n\n  @ContentChildren(forwardRef(() => GuiSegmentButton), {descendants: true})\n  _buttonToggles: QueryList<GuiSegmentButton>;\n\n  @ViewChild(GuiSegmentInkBar, {static: true}) _inkBar: GuiSegmentInkBar;\n\n  @Output() readonly valueChange: EventEmitter<GuiSegmentChange> = new EventEmitter<GuiSegmentChange>();\n\n  private _controlValueAccessorOnChange = (_: any) => {\n  };\n  private _controlValueAccessorOnTouched = () => {\n  };\n\n  @Input()\n  public size: GuiControlSize = 'base';\n\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  @Input() id: string = this._uniqueId;\n\n  @Input()\n  get value(): any {\n    const selected = this._selectionModel ? this._selectionModel.selected : [];\n    return selected[0] ? selected[0].value : undefined;\n  }\n\n  set value(newValue: any) {\n    this._setSelectionByValue(newValue);\n    this._emitChangeEvent();\n    this._alignInkBarToSelectedToggle();\n  }\n\n  constructor(private _elementRef: ElementRef,\n              private _changeDetectorRef: ChangeDetectorRef,\n              private _screenSize: GuiScreenSize) {\n    _screenSize.valueChange.subscribe(() => {\n      this._alignInkBarToSelectedToggle();\n    })\n  }\n\n  ngAfterContentInit() {\n    if (this._rawValue) {\n      this.value = this._rawValue;\n    }\n  }\n\n  ngAfterViewChecked(): void {\n    this._alignInkBarToSelectedToggle();\n  }\n\n  get selectedToggle(): GuiSegmentButton {\n    const selected = this._selectionModel ? this._selectionModel.selected : [];\n    return (selected[0] || null);\n  }\n\n  private _setSelectionByValue(value: any) {\n    this._rawValue = value;\n\n    if (!this._buttonToggles) {\n      return;\n    }\n\n    this._clearSelection();\n    this._setSelection(value);\n  }\n\n  private _clearSelection() {\n    this._selectionModel.clear();\n    this._buttonToggles.forEach(toggle => {\n      toggle.checked = false;\n      toggle.showDivider = true;\n    });\n  }\n\n  private _setSelection(value: any) {\n    const correspondingOption = this._buttonToggles.find(toggle => {\n      return toggle.value != null && toggle.value === value;\n    });\n\n    if (correspondingOption) {\n      correspondingOption.checked = true;\n      correspondingOption.showDivider = false;\n      this._selectionModel.select(correspondingOption);\n    }\n\n    for (let i = 0; i < this._buttonToggles.length; i++) {\n      // @ts-ignore\n      if (this._buttonToggles.get(i).showDivider === false) {\n        if (i > 0) {\n          // @ts-ignore\n          this._buttonToggles.get(i - 1).showDivider = false;\n        }\n      }\n    }\n  }\n\n  private _emitChangeEvent() {\n    this._controlValueAccessorOnChange(this.value);\n    this.valueChange.emit(new GuiSegmentChange(this.selectedToggle, this.value));\n  }\n\n  _syncButtonToggle(toggle: GuiSegmentButton) {\n    if (this.value !== toggle.value) {\n      this.value = toggle.value;\n    }\n  }\n\n  _alignInkBarToSelectedToggle(): void {\n    const selectedElement = this.selectedToggle ? this.selectedToggle._elementRef.nativeElement : null;\n\n    if (selectedElement) {\n      this._inkBar.alignToElement(selectedElement);\n    } else {\n      this._inkBar.hide();\n    }\n  }\n\n  public writeValue(value: any): void {\n    this.value = value;\n    this._changeDetectorRef.markForCheck();\n  }\n\n  public registerOnChange(fn: any): void {\n    this._controlValueAccessorOnChange = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this._controlValueAccessorOnTouched = fn;\n  }\n\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n  }\n}\n","<div class=\"gui-segment-container\">\n  <gui-segment-ink-bar></gui-segment-ink-bar>\n  <div class=\"gui-segment-buttons\">\n    <ng-content></ng-content>\n  </div>\n</div>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  AfterContentChecked,\n  Attribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Inject,\n  Input,\n  Optional,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiSegment} from \"./segment\";\nimport {RouterLinkActive} from \"@angular/router\";\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n  selector: 'gui-segment-button',\n  standalone: true,\n  imports: [\n    CommonModule\n  ],\n  templateUrl: './segment-button.html',\n  styleUrls: ['./segment-button.scss'],\n  host: {\n    'class': 'gui-segment-button',\n    '[attr.checked]': 'checked',\n    '[attr.show-divider]': 'showDivider',\n    '[attr.value]': 'value',\n    '[attr.tabindex]': 'disabled ? null : -1',\n    '[attr.disabled]': 'disabled',\n    '[attr.aria-disabled]': 'disabled',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '(click)': '_onButtonClick()'\n  },\n  inputs: [\n    'disabled'\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSegmentButton'\n})\nexport class GuiSegmentButton implements AfterContentChecked {\n\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_checked: BooleanInput;\n  static ngAcceptInputType_showDivider: BooleanInput;\n\n  constructor(private _segment: GuiSegment,\n              public _elementRef: ElementRef,\n              private _changeDetectorRef: ChangeDetectorRef,\n              @Attribute('tabindex') defaultTabIndex: string,\n              @Optional() @Inject(RouterLinkActive) public _activeRouter: RouterLinkActive) {\n  }\n\n  ngAfterContentChecked(): void {\n    if (this._activeRouter && this._activeRouter.isActive) {\n      this._segment._syncButtonToggle(this);\n    }\n  }\n\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  @Input()\n  get checked(): boolean {\n    return this._checked;\n  }\n\n  set checked(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this._checked) {\n      this._checked = newValue;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  private _checked: boolean = false;\n\n  @Input() value: any;\n\n  @Input()\n  get showDivider(): boolean {\n    return this._showDivider;\n  }\n\n  set showDivider(value: BooleanInput) {\n    this._showDivider = coerceBooleanProperty(value);\n  }\n\n  private _showDivider: boolean = true;\n\n  public _onButtonClick() {\n    this._segment._syncButtonToggle(this);\n  }\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './segment-button';\nexport * from './segment-ink-bar';\nexport * from './segment';\n\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, Output, ViewEncapsulation} from '@angular/core';\nimport {GuiFormControl} from './form-control';\nimport {FormControl, FormGroup, ReactiveFormsModule, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {coerceNumberProperty, NumberInput} from '../coercion';\nimport {CommonModule} from \"@angular/common\";\nimport {GuiTypography} from \"../typography\";\nimport {GuiInput} from \"../input\";\nimport {GuiHStack, GuiVStack} from \"../stack\";\nimport {GuiGrid, GuiGridItem} from \"../grid\";\nimport {GuiSwitch} from \"../switch\";\nimport {GuiCheckbox} from \"../checkbox\";\nimport {GuiButton} from \"../button\";\nimport {GuiSegment, GuiSegmentButton} from \"../segment\";\nimport {GuiSelectModule} from \"../select\";\nimport {GuiUpload} from \"../upload\";\n\n\n@Component({\n  selector: 'gui-form',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    GuiTypography,\n    GuiInput,\n    GuiVStack,\n    GuiHStack,\n    GuiGrid,\n    GuiGridItem,\n    GuiSwitch,\n    GuiCheckbox,\n    GuiButton,\n    GuiSegment,\n    GuiSegmentButton,\n    GuiSelectModule,\n    GuiUpload\n  ],\n  templateUrl: './form.html',\n  styleUrls: ['./form.scss'],\n  host: {\n    'role': 'form',\n    'class': 'gui-form',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiForm'\n})\nexport class GuiForm {\n\n  // 表单组\n  private _formGroup: FormGroup = new FormGroup([]);\n\n  // Component input 类型检查\n  static ngAcceptInputType_gridColumns: NumberInput;\n\n  /** 控件 */\n  @Input()\n  get controls(): GuiFormControl<any>[] {\n    return this._controls;\n  }\n\n  set controls(value: GuiFormControl<any>[]) {\n    this._controls = value;\n    this.toFormGroup();\n  }\n\n  private _controls: GuiFormControl<any>[] = [];\n\n  /** 表单验证器列表 */\n  get validators(): ValidatorFn[] {\n    return this._validators;\n  }\n\n  set validators(value: ValidatorFn[]) {\n    this._validators = value;\n    this.toFormGroup();\n  }\n\n  private _validators: ValidatorFn[] = [];\n\n  /** 格式化表单验证错误回调函数 */\n  public formatFormValidatorErrorsFn:\n    ((validationErrors: ValidationErrors) => string) | null = null;\n\n  /** 格式化组件验证错误回调函数 */\n  @Input()\n  public formatControlValidatorErrorsFn:\n    ((control: GuiFormControl<any>, validationErrors: ValidationErrors) => string) | null = null;\n\n  /** 网格列数 */\n  @Input()\n  get gridColumns(): number {\n    return this._gridColumns;\n  }\n\n  set gridColumns(value: any) {\n    this._gridColumns = coerceNumberProperty(value);\n  }\n\n  private _gridColumns: number = 2;\n\n  /** 表单组 */\n  @Output()\n  get formGroup(): FormGroup {\n    return this._formGroup;\n  }\n\n  /** 表单数据是否无效 */\n  @Output()\n  get invalid(): boolean {\n    return this._formGroup.invalid;\n  }\n\n  /** 表单数据原始值 */\n  @Output()\n  get rawValue() {\n    return this._formGroup.getRawValue();\n  }\n\n  /** 表单数据FormData值 */\n  @Output()\n  get formDataValue() {\n    const formData = new FormData();\n    const rawValue = this.rawValue;\n    this._controls.forEach(control => {\n      formData.append(control.key, rawValue[control.key]);\n    });\n    return formData;\n  }\n\n  constructor(private _changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  /** 重置表单 */\n  public reset(value: object | undefined = undefined) {\n    if (value) {\n      this.formGroup.reset(value)\n    } else {\n      this.toFormGroup();\n    }\n  }\n\n  // 转换成 FormGroup\n  private toFormGroup() {\n    const group: any = {};\n\n    this._controls.forEach(control => {\n      group[control.key] = new FormControl(control.value || '', {validators: control.validators});\n    });\n    this._formGroup = new FormGroup(group, {validators: this.validators});\n\n    this._changeDetectorRef.markForCheck();\n  }\n\n  // 格式化组件错误信息\n  public _formatControlValidatorErrors(control: GuiFormControl<any>): string {\n    const errors: ValidationErrors = this.formGroup.controls[control.key].errors!;\n    for (let key in errors) {\n      if (key === 'required') {\n        return control.label + '不能为空';\n      } else if (key === 'minlength') {\n        return control.label + '不能少于' + errors[key].requiredLength + '个字符, 实际' + errors[key].actualLength + '个字符';\n      } else if (key === 'maxlength') {\n        return control.label + '不能多于' + errors[key].requiredLength + '个字符, 实际' + errors[key].actualLength + '个字符';\n      } else if (key === 'email') {\n        return '不是一个有效的电子邮件地址';\n      }\n    }\n    if (this.formatControlValidatorErrorsFn) {\n      return this.formatControlValidatorErrorsFn(control, errors);\n    }\n    return '';\n  }\n\n  // 格式化表单错误信息\n  public _formatFormValidatorErrors(): string {\n    const errors: ValidationErrors = this.formGroup.errors!;\n    if (this.formatFormValidatorErrorsFn) {\n      return this.formatFormValidatorErrorsFn(errors);\n    }\n    return '';\n  }\n\n}\n","<!--\n  ~ Copyright (c) 2022-2023. GlamTime All Rights Reserved.\n  -->\n\n<form [formGroup]=\"formGroup\">\n  <gui-v-stack>\n\n    <gui-grid [columns]=\"gridColumns\">\n      <ng-container *ngFor=\"let control of controls\">\n        <ng-container *ngIf=\"!control._hidden()\">\n          <gui-grid-item [size]=\"control.gridItemSize\">\n            <gui-v-stack [class.required]=\"control.required\" alignment=\"leading\">\n              <gui-h-stack>\n                <gui-typography class=\"label\" variant=\"body\" [attr.for]=\"control.key\">\n                  {{control._label()}}\n                </gui-typography>\n                <ng-container *ngIf=\"control.required\">\n                  <gui-typography class=\"label-required\" variant=\"body\" tint=\"blue\">\n                    *\n                  </gui-typography>\n                </ng-container>\n              </gui-h-stack>\n\n              <gui-typography *ngIf=\"control._caption()\"\n                              class=\"caption\"\n                              variant=\"caption\"\n                              hierarchy=\"secondary\"\n                              [attr.for]=\"control.key\">\n                {{control._caption()}}\n              </gui-typography>\n\n              <ng-container [ngSwitch]=\"control.controlType\">\n\n                <gui-input *ngSwitchCase=\"'text'\" [id]=\"control.key\"\n                           [readonly]=\"control.readonly\"\n                           [multiple]=\"control.multiple\"\n                           [formControlName]=\"control.key\"></gui-input>\n                <gui-input *ngSwitchCase=\"'number'\" type=\"number\" [id]=\"control.key\"\n                           [readonly]=\"control.readonly\"\n                           [formControlName]=\"control.key\"></gui-input>\n                <gui-input *ngSwitchCase=\"'password'\" type=\"password\" [id]=\"control.key\"\n                           [readonly]=\"control.readonly\"\n                           [formControlName]=\"control.key\"></gui-input>\n\n                <gui-select [id]=\"control.key\" *ngSwitchCase=\"'select'\"\n                            [readonly]=\"control.readonly\"\n                            [formControlName]=\"control.key\"\n                            [value]=\"control.value\"\n                            [multiple]=\"control.multiple\"\n                            [optionsUrl]=\"control.optionsUrl\"\n                            [optionsDataMapCallback]=\"control.optionsDataMapCallback\">\n                  <gui-option *ngFor=\"let opt of control.options\" [value]=\"opt.value\"\n                              [label]=\"opt.label\">{{opt.label}}</gui-option>\n                </gui-select>\n\n                <gui-switch *ngSwitchCase=\"'switch'\" [id]=\"control.key\" [formControlName]=\"control.key\"></gui-switch>\n\n                <gui-checkbox *ngSwitchCase=\"'checkbox'\" [formControlName]=\"control.key\"\n                              [id]=\"control.key\"></gui-checkbox>\n\n                <gui-segment [id]=\"control.key\" *ngSwitchCase=\"'segment'\" [formControlName]=\"control.key\">\n                  <gui-segment-button *ngFor=\"let opt of control.options\"\n                                      [value]=\"opt.value\">{{opt.label}}</gui-segment-button>\n                </gui-segment>\n\n                <gui-upload *ngSwitchCase=\"'file'\" [id]=\"control.key\" [formControlName]=\"control.key\"\n                            [multiple]=\"control.multiple\"></gui-upload>\n\n              </ng-container>\n\n              <ng-container *ngIf=\"formGroup.controls[control.key].invalid\">\n                <gui-typography variant=\"caption\" tint=\"red\">{{_formatControlValidatorErrors(control)}}</gui-typography>\n              </ng-container>\n\n            </gui-v-stack>\n          </gui-grid-item>\n        </ng-container>\n      </ng-container>\n    </gui-grid>\n\n    <ng-container *ngIf=\"formGroup.errors\">\n      <gui-typography variant=\"caption\" tint=\"red\">{{_formatFormValidatorErrors()}}</gui-typography>\n    </ng-container>\n\n  </gui-v-stack>\n</form>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './form-control';\nexport * from './form';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'gui-title',\n  templateUrl: './title.html',\n  styleUrls: ['./title.scss'],\n  host: {\n    'class': 'gui-title'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiTitle'\n})\nexport class GuiTitle {\n\n  constructor() {\n  }\n\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiTitle} from './title';\n\n\n@NgModule({\n  declarations: [\n    GuiTitle\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    GuiTitle\n  ]\n})\nexport class GuiTitleModule { }\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './title.module';\nexport * from './title';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\n\nexport * from './public-api';\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  forwardRef,\n  Inject,\n  Input,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiList} from './list';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\n\n@Component({\n  selector: 'gui-list-item',\n  templateUrl: './list-item.html',\n  styleUrls: ['./list-item.scss'],\n  host: {\n    'role': 'listitem',\n    'class': 'gui-list-item',\n    '[class.gui-disabled]': 'disabled',\n    '[attr.aria-disabled]': 'disabled',\n    '[style.padding-left]': 'inset'\n  },\n  inputs: ['disabled'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiListItem'\n})\nexport class GuiListItem {\n\n  // Component input 类型检查用, 去掉会报类型错误\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  disableRipple: boolean;\n\n  constructor(private _elementRef: ElementRef,\n              private _changeDetector: ChangeDetectorRef,\n              @Inject(forwardRef(() => GuiList)) public selectionList: GuiList) {\n  }\n\n  @Input()\n  get disabled() {\n    return this._disabled || (this.selectionList && this.selectionList.disabled);\n  }\n  set disabled(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this._disabled) {\n      this._disabled = newValue;\n      this._changeDetector.markForCheck();\n    }\n  }\n  private _disabled = false;\n\n  @Input()\n  public inset: string;\n\n}\n","<div class=\"gui-slot-start\">\n  <ng-content select=\"[guiSlotStart]\">\n  </ng-content>\n</div>\n\n<div class=\"gui-slot-content\">\n  <ng-content></ng-content>\n</div>\n\n<div class=\"gui-slot-end\">\n  <ng-content select=\"[guiSlotEnd]\"></ng-content>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  Input,\n  OnDestroy,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiListItem} from './list-item';\nimport {Subject} from 'rxjs';\nimport {coerceBooleanProperty} from '../coercion';\n\n@Component({\n  selector: 'gui-list',\n  templateUrl: './list.html',\n  styleUrls: ['./list.scss'],\n  host: {\n    'role': 'list',\n    'class': 'gui-list'\n  },\n  inputs: ['disableRipple', 'disabled'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiList'\n})\nexport class GuiList implements OnDestroy {\n\n  // 是否禁用\n  private _disabled = false;\n  // 是否已经销毁\n  private _isDestroyed: boolean;\n  // 销毁事件\n  private readonly _destroyed = new Subject<void>();\n\n  // Item 组件列表\n  @ContentChildren(GuiListItem, {descendants: true}) options: QueryList<GuiListItem>;\n\n  constructor(private _element: ElementRef<HTMLElement>,\n              private _changeDetector: ChangeDetectorRef) {\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n    this._isDestroyed = true;\n  }\n\n  /**\n   * Function used for comparing an option against the selected value when determining which\n   * options should appear as selected. The first argument is the value of an options. The second\n   * one is a value from the selected value. A boolean must be returned.\n   */\n  @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n\n  /** 是否禁用 */\n  @Input()\n  get disabled(): boolean { return this._disabled; }\n  set disabled(value: boolean) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n}\n","<ng-content></ng-content>\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'gui-list-subheader',\n  templateUrl: './list-subheader.html',\n  styleUrls: ['./list-subheader.scss'],\n  host: {\n    'class': 'gui-list-subheader',\n    '[style.padding-left]': 'inset'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiListSubheader'\n})\nexport class GuiListSubheader {\n\n  constructor() { }\n\n  @Input()\n  public inset: string;\n\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiCollapseAnimations, GuiCollapseState} from '../collapse';\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\n\n@Component({\n  selector: 'gui-list-collapse',\n  templateUrl: './list-collapse.html',\n  styleUrls: ['./list-collapse.scss'],\n  host: {\n    'class': 'gui-list-collapse',\n    '[attr.state]': 'expanded'\n  },\n  inputs: [\n    'disabled', 'expanded'\n  ],\n  animations: [\n    GuiCollapseAnimations.indicatorRotate90\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiListCollapse'\n})\nexport class GuiListCollapse {\n\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_expanded: BooleanInput;\n\n  /** 是否禁用 */\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  /** 展开状态变化是发出的时间流 */\n  @Output()\n  readonly expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  /** 是否已经展开内容 */\n  @Input()\n  get expanded(): boolean {\n    return this._expanded;\n  }\n\n  set expanded(value: BooleanInput) {\n    const expanded = coerceBooleanProperty(value);\n\n    if (this._expanded !== expanded) {\n      this._expanded = expanded;\n      this._changeDetectorRef.markForCheck();\n      this.expandedChange.emit(expanded);\n    }\n  }\n\n  private _expanded = false;\n\n  constructor(private _changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnDestroy() {\n    this.expandedChange.complete();\n  }\n\n  /** 折叠内容 */\n  public collapse(): void {\n    if (!this.disabled) {\n      this.expanded = false;\n    }\n  }\n\n  /** 展开内容 */\n  public expand(): void {\n    if (!this.disabled) {\n      this.expanded = true;\n    }\n  }\n\n  /** 展开/折叠内容 */\n  public toggle(): void {\n    if (!this.disabled) {\n      this.expanded = !this.expanded;\n    }\n  }\n\n  // 当前动画状态\n  get _animationState(): GuiCollapseState {\n    return this.expanded ? 'expanded' : 'collapsed';\n  }\n\n}\n","<div class=\"gui-list-item\" (click)=\"toggle()\">\n  <div class=\"gui-slot-start\">\n    <ng-content select=\"[guiSlotStart]\">\n    </ng-content>\n  </div>\n\n  <div class=\"gui-slot-content\">\n    <ng-content></ng-content>\n  </div>\n\n  <div class=\"gui-slot-end\" [@indicatorRotate90]=\"_animationState\">\n    <gui-icon name=\"chevron-right\">\n    </gui-icon>\n  </div>\n</div>\n\n<gui-collapse [expanded]=\"expanded\">\n  <ng-content select=\"[guiSlotCollapse]\">\n  </ng-content>\n</gui-collapse>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiCollapse} from '../collapse';\nimport {GuiIcon} from '../icon';\n\nimport {GuiList} from './list';\nimport {GuiListItem} from './list-item';\nimport {GuiListSubheader} from './list-subheader';\nimport {GuiListCollapse} from './list-collapse';\n\n@NgModule({\n  declarations: [\n    GuiList,\n    GuiListItem,\n    GuiListSubheader,\n    GuiListCollapse\n  ],\n  imports: [\n    CommonModule,\n    GuiCollapse,\n    GuiIcon,\n  ],\n  exports: [\n    GuiList,\n    GuiListItem,\n    GuiListSubheader,\n    GuiListCollapse\n  ]\n})\nexport class GuiListModule {\n}\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './list.module';\nexport * from './list-item';\nexport * from './list-collapse';\nexport * from './list-subheader';\nexport * from './list';\n\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {TemplateRef} from '@angular/core';\n\nexport class GuiDataGridColDef {\n  /** 数据对象中获取单元格数据的字段 */\n  field: string;\n  /**\n   * 给定列的唯一ID (可选)\n   * 如果缺少，ID 将默认为该字段\n   * 如果 field 和 colId 都缺失，则会生成一个唯一 ID\n   * 此 列ID 用于标识 API 中用于排序、过滤等\n   **/\n  colId?: string;\n  /** 列头显示名称 */\n  headerName?: string;\n  /**\n   * 包含 ColumnType 键的逗号分隔字符串或字符串数组，可用作列的模板。\n   * 当有很多常见的列属性时，这有助于减少属性的重复\n   */\n  type?: string | string[];\n\n  /** 初始化宽度 */\n  width?: number | string | null;\n  /** 最小宽度 */\n  minWidth?: number | string | null;\n  /** 最大宽度 */\n  maxWidth?: number | string | null;\n\n  /**\n   * 如果有默认排序，请在此处设置\n   * 设置为“asc”或“desc”\n   **/\n  sort?: string;\n\n  /** 如果默认排序多于一列，则在此处定义对列进行排序的顺序 */\n  sortedAt?: number;\n  /** 排序顺序，以任意顺序提供具有以下任意一项的数组 ['asc','desc',null] */\n  sortingOrder?: (string | null)[];\n\n\n  /**\n   * 此列是否隐藏 */\n  hide?: boolean;\n  /** 此列是否固定 */\n  pinned?: boolean | string;\n\n  /** 模版 */\n  templateRef?: TemplateRef<any>;\n}\n\n","import {Directive, Input, TemplateRef} from '@angular/core';\nimport {GuiDataGridColDef} from './col-def';\n\n@Directive({\n  selector: '[guiDataGridCol]',\n  standalone: true,\n  host: {\n    'class': 'gui-data-grid-heading'\n  }\n})\nexport class GuiDataGridCol extends GuiDataGridColDef {\n\n  constructor() {\n    super();\n  }\n\n  @Input()\n  override field: string;\n  @Input()\n  override colId: string;\n  @Input()\n  override headerName: string;\n  @Input()\n  override width: number | string | null;\n  @Input()\n  override templateRef: TemplateRef<any>;\n\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiDataGridColDef} from './col-def';\nimport {GuiDataGridCol} from './data-grid-col';\nimport {HttpClient, HttpClientModule, HttpParams} from '@angular/common/http';\nimport {GuiPagination} from '../pagination';\nimport {GuiSpringPageableResponse} from './responses/spring/spring-pageable-response';\nimport {GuiSelectionModel} from '../collections';\nimport {GuiCheckbox, GuiCheckboxChange} from '../checkbox';\nimport {CommonModule} from \"@angular/common\";\nimport {GuiPortalModule} from \"../portal\";\nimport {GuiVStack} from \"../stack\";\nimport {GuiButton} from \"../button\";\nimport {GuiIcon} from \"../icon\";\nimport {FormsModule} from \"@angular/forms\";\n\n/** 外观 */\nexport type GuiDataGridSelection = 'none' | 'checkbox';\n\nexport class GuiDataGridEvent {\n  source: GuiDataGrid;\n  rowData: any;\n  mouseEvent: MouseEvent | null = null;\n}\n\n@Component({\n  selector: 'gui-data-grid',\n  standalone: true,\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    GuiPortalModule,\n    GuiVStack,\n    GuiButton,\n    GuiIcon,\n    GuiPagination,\n    GuiCheckbox,\n    FormsModule,\n    GuiDataGridCol\n  ],\n  templateUrl: './data-grid.html',\n  styleUrls: ['./data-grid.scss'],\n  host: {\n    'class': 'gui-data-grid-container'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiDataGrid'\n})\nexport class GuiDataGrid implements AfterContentInit, OnDestroy {\n\n  @ContentChildren(GuiDataGridCol)\n  cols: QueryList<GuiDataGridCol>;\n\n  @ViewChild('pagination', {static: true})\n  private _pagination: GuiPagination;\n\n  /** 是否显示分页 */\n  @Input()\n  public showPagination: boolean = false;\n\n  /** 列定义 */\n  @Input()\n  get columns(): GuiDataGridColDef[] {\n    return this._columns;\n  }\n\n  private _columns: GuiDataGridColDef[] = [];\n\n  /** 单击行事件流 */\n  @Output()\n  public readonly clickRow: EventEmitter<GuiDataGridEvent> = new EventEmitter<GuiDataGridEvent>();\n\n  /** 双击行事件流 */\n  @Output()\n  public readonly dblclickRow: EventEmitter<GuiDataGridEvent> = new EventEmitter<GuiDataGridEvent>();\n\n  /** 行数据 */\n  @Input()\n  get rowData(): any[] {\n    return this._rowData;\n  }\n\n  set rowData(value: any[]) {\n    this._rowData = value;\n    this.selectionModel.clear();\n    this._changeDetectorRef.markForCheck();\n  }\n\n  private _rowData: any[] = [];\n\n  /** 接口地址 */\n  @Input()\n  get url(): string {\n    return this._url;\n  }\n\n  set url(value: string) {\n    this._url = value;\n    this.refreshData();\n  }\n\n  private _url: string;\n\n  @Input()\n  get httpParams(): HttpParams {\n    return this._httpParams;\n  }\n\n  set httpParams(value: HttpParams) {\n    this._httpParams = value;\n  }\n\n  private _httpParams: HttpParams;\n\n  // 选择模型\n  get selectionModel(): GuiSelectionModel<any> {\n    return this._selectionModel;\n  }\n\n  private _selectionModel: GuiSelectionModel<any> = new GuiSelectionModel<any>(true);\n\n  @Input()\n  public selection: GuiDataGridSelection = 'checkbox';\n\n  constructor(private _viewContainerRef: ViewContainerRef,\n              private _changeDetectorRef: ChangeDetectorRef,\n              private _httpClient: HttpClient) {\n  }\n\n  ngAfterContentInit(): void {\n    // 生成列定义\n    this.cols.forEach(col => {\n      this.columns.push(col);\n    });\n\n    // 如果提供了URL则调用数据接口\n    if (this._url) {\n      this.refreshData();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.dblclickRow.complete();\n  }\n\n  /** 调用API接口刷新数据 */\n  public refreshData<T>(pageNo?: number, pageSize?: number) {\n    let httpParams: HttpParams = this._httpParams ? this._httpParams : new HttpParams();\n    if (pageNo) {\n      httpParams = httpParams.set('pageNo', pageNo);\n    }\n    if (pageSize) {\n      httpParams = httpParams.set('pageSize', pageSize);\n    }\n    this._httpClient.get<GuiSpringPageableResponse<T>>(this._url, {params: httpParams}).subscribe(\n      (response) => {\n        if (response.content) {\n          this.rowData = response.content;\n          if (response.totalPages) {\n            this._pagination.count = response.totalPages;\n            this._pagination.currentPage = response.number + 1;\n            this.showPagination = true;\n          }\n        } else {\n          this.rowData = response as any;\n        }\n        this.selectionModel.clear();\n      }\n    )\n  }\n\n  /** 选中的行数据 */\n  public selectedRows(): any[] {\n    return this.selectionModel.selected;\n  }\n\n  /** 检测行是否已经被选中 */\n  public isRowSelected(row: any) {\n    return this.selectionModel.isSelected(row);\n  }\n\n  /** 选中某行 */\n  public selectRow(row: any) {\n    this.selectionModel.select(row);\n  }\n\n  /** 取消选中某行 */\n  public deselectRow(row: any) {\n    this.selectionModel.deselect(row);\n  }\n\n  /** 在选定和取消选定之间切换 */\n  public toggleSelectRow(row: any) {\n    this.selectionModel.toggle(row);\n  }\n\n  /** 选中几行 */\n  public selectRows(rows: any[]) {\n    if (rows) {\n      rows.forEach(row => {\n        this.selectRow(row);\n      })\n    }\n  }\n\n  /** 取消选中几行 */\n  public deselectRows(rows: any[]) {\n    if (rows) {\n      rows.forEach(row => {\n        this.deselectRow(row);\n      })\n    }\n  }\n\n  // 获取单元格数据\n  public _getCellData(rowData: object, colDef: GuiDataGridColDef): any {\n    if (!colDef.field) {\n      return '';\n    } else {\n      const fields = colDef.field.split('.');\n      let data = rowData;\n      for (let field of fields) {\n        data = this._getFieldData(data, field);\n        if (data === null) {\n          break;\n        }\n      }\n      return data === null ? '' : data;\n    }\n  }\n\n  // 获取字段数据\n  private _getFieldData(data: object, field: string) {\n    if (data.hasOwnProperty(field)) {\n      // @ts-ignore\n      return data[field];\n    } else {\n      return null;\n    }\n  }\n\n  // Grid布局的列宽度定义\n  get _gridTemplateColumns(): string {\n    let columnWidths: string[] = [];\n\n    if (this.selection === 'checkbox') {\n      columnWidths.push('36px');\n    }\n\n    for (let column of this.columns) {\n      if (column.width !== undefined && column.width !== null) {\n        if (typeof column.width === 'number') {\n          columnWidths.push(column.width + 'px');\n        } else {\n          columnWidths.push(column.width);\n        }\n      } else if (column.minWidth !== undefined && column.minWidth !== null &&\n        column.maxWidth !== null && column.maxWidth !== undefined) {\n        columnWidths.push(`minmax(${column.minWidth},${column.maxWidth})`);\n      } else {\n        columnWidths.push('auto');\n      }\n    }\n    return columnWidths.join(' ');\n  }\n\n  // 单击行事件处理程序\n  public _clickRowHandle(event: MouseEvent, row: any) {\n    const e = new GuiDataGridEvent();\n    e.source = this;\n    e.mouseEvent = event;\n    e.rowData = row;\n    this.clickRow.emit(e);\n  }\n\n  // 双击行事件处理程序\n  public _dblClickRowHandle(event: MouseEvent, rowData: any) {\n    const e = new GuiDataGridEvent();\n    e.source = this;\n    e.mouseEvent = event;\n    e.rowData = rowData;\n    this.dblclickRow.emit(e);\n  }\n\n  get _isIndeterminateSelectedAllRows(): boolean {\n    if (this.selectionModel.isEmpty()) {\n      return false;\n    }\n    let selectedCount = 0;\n    for (let i = 0; i < this._rowData.length; i++) {\n      if (this.selectionModel.isSelected(this._rowData[i])) {\n        selectedCount++;\n      }\n    }\n    return selectedCount !== this._rowData.length;\n  }\n\n  get _isSelectedAllRows(): boolean {\n    for (let i = 0; i < this._rowData.length; i++) {\n      if (!this.selectionModel.isSelected(this._rowData[i])) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  set _isSelectedAllRows(value: boolean) {\n    this._rowData.forEach(row => {\n      if (value) {\n        this.selectionModel.select(row);\n      } else {\n        this.selectionModel.deselect(row);\n      }\n    })\n  }\n\n  public _selectionCheckBoxChange(event: GuiCheckboxChange, row: any) {\n    if (event.checked) {\n      this.selectionModel.select(row);\n    } else {\n      this.selectionModel.deselect(row);\n    }\n  }\n}\n","<gui-v-stack>\n\n  <div class=\"gui-data-grid\" [style.grid-template-columns]=\"_gridTemplateColumns\">\n    <ng-container *ngIf=\"selection === 'checkbox'\">\n      <div guiDataGridCol>\n        <gui-checkbox size=\"small\" [(ngModel)]=\"_isSelectedAllRows\"\n                      [indeterminate]=\"_isIndeterminateSelectedAllRows\"></gui-checkbox>\n      </div>\n    </ng-container>\n    <ng-content></ng-content>\n    <ng-template ngFor let-row let-rowIndex=\"index\" let-odd=\"odd\" [ngForOf]=\"rowData\">\n      <div class=\"gui-data-grid-row\" [class.odd]=\"odd\" [attr.row-index]=\"rowIndex\"\n           (click)=\"_clickRowHandle($event, row)\"\n           (dblclick)=\"_dblClickRowHandle($event, row)\">\n        <ng-container *ngIf=\"selection === 'checkbox'\">\n          <div class=\"gui-data-grid-cell\">\n            <gui-checkbox\n              size=\"small\"\n              [checked]=\"isRowSelected(row)\"\n              (change)=\"_selectionCheckBoxChange($event, row)\">\n            </gui-checkbox>\n          </div>\n        </ng-container>\n        <ng-template ngFor let-col let-cellIndex=\"index\" [ngForOf]=\"columns\">\n          <div class=\"gui-data-grid-cell\" [attr.index]=\"cellIndex\">\n            <ng-container *ngTemplateOutlet=\"col.templateRef ? col.templateRef : dataTemplate; context: {row: row}\">\n            </ng-container>\n            <ng-template #dataTemplate>\n              {{_getCellData(row, col)}}\n            </ng-template>\n          </div>\n        </ng-template>\n      </div>\n    </ng-template>\n  </div>\n\n  <gui-pagination #pagination [style.display]=\"!showPagination ? 'none' : null\"\n                  (currentPageChange)=\"refreshData(pagination.currentPage)\"></gui-pagination>\n\n</gui-v-stack>\n\n\n\n\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './col-def';\nexport * from './data-grid-col';\nexport * from './data-grid';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Injector,\n  Input, OnDestroy,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef, ViewEncapsulation\n} from '@angular/core';\nimport {GuiOverlay, GuiOverlayRef} from '../overlay';\nimport {coerceBooleanProperty} from '../coercion';\nimport {GuiTemplatePortal} from '../portal';\n\n@Component({\n  selector: 'gui-backdrop',\n  templateUrl: './backdrop.html',\n  styleUrls: ['./backdrop.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiBackdrop'\n})\nexport class GuiBackdrop implements OnDestroy {\n\n  /** 模版 */\n  @ViewChild('backdropTemplate', {static: true})\n  private _templatePortalContent: TemplateRef<unknown>;\n\n  /** 叠加层引用 */\n  private _overlayRef: GuiOverlayRef;\n\n  /** 展开状态变化是发出的事件流 */\n  @Output()\n  readonly onClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n  /** Z轴索引 */\n  @Input()\n  zIndex: number = 1500;\n\n  /** 是否打开 */\n  @Input()\n  get opened(): boolean { return this._opened; }\n  set opened(value: any) {\n    const opened = coerceBooleanProperty(value);\n    if (opened !== this._opened) {\n      opened ? this.open() : this.close();\n    }\n  }\n  private _opened: boolean = false;\n\n  constructor(private _overlay: GuiOverlay,\n              private _viewControllerRef: ViewContainerRef,\n              private _injector: Injector) { }\n\n  ngOnDestroy(): void {\n    this.close();\n    this.onClick.complete();\n  }\n\n  /** 打开蒙版 */\n  public open() {\n    if (this._opened) {\n      return;\n    }\n\n    this._overlayRef = this._overlay.create();\n    const portal = new GuiTemplatePortal(this._templatePortalContent,\n      this._viewControllerRef, null, this._injector);\n    this._overlayRef.attach(portal);\n\n    this._opened = true;\n  }\n\n  /** 关闭蒙版 */\n  public close() {\n    if (!this._opened) {\n      return;\n    }\n\n    if (this._overlayRef) {\n      this._overlayRef.detach();\n    }\n\n    this._opened = false;\n  }\n\n  /** 打开或者关闭蒙版 */\n  public toggle() {\n    this.opened = !this.opened;\n  }\n\n  _click(event: MouseEvent) {\n    this.onClick.emit(event);\n  }\n}\n","<ng-template #backdropTemplate>\n  <div class=\"gui-backdrop\" [style.z-index]=\"zIndex\" (click)=\"_click($event)\">\n    <ng-content></ng-content>\n  </div>\n</ng-template>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiOverlayModule} from '../overlay';\nimport {GuiBackdrop} from './backdrop';\n\n\n@NgModule({\n  declarations: [\n    GuiBackdrop\n  ],\n  imports: [\n    CommonModule,\n    GuiOverlayModule\n  ],\n  exports: [\n    GuiBackdrop\n  ]\n})\nexport class GuiBackdropModule {\n}\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './backdrop.module';\nexport * from './backdrop';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Injector,\n  Input,\n  OnDestroy,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiOverlay, GuiOverlayModule, GuiOverlayRef} from '../overlay';\nimport {coerceBooleanProperty} from '../coercion';\nimport {GuiTemplatePortal} from '../portal';\nimport {CommonModule} from '@angular/common';\n\n/** 锚点 */\nexport type GuiDrawerAnchor = 'top' | 'left' | 'right' | 'bottom';\n\n@Component({\n  selector: 'gui-drawer',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiOverlayModule\n  ],\n  templateUrl: './drawer.html',\n  styleUrls: ['./drawer.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiDrawer'\n})\nexport class GuiDrawer implements OnDestroy {\n\n  @ViewChild('drawerTemplate', {static: true})\n  private _templatePortalContent: TemplateRef<unknown>;\n\n  // 叠加层引用\n  private _overlayRef: GuiOverlayRef;\n\n  /** 锚点 */\n  @Input()\n  anchor: GuiDrawerAnchor = 'left';\n\n  /** 是否打开 */\n  @Input()\n  get opened(): boolean { return this._opened; }\n  set opened(value: any) {\n    const opened = coerceBooleanProperty(value);\n    if (opened !== this._opened) {\n      opened ? this.open() : this.close();\n    }\n  }\n  private _opened: boolean = false;\n\n  constructor(private _overlay: GuiOverlay,\n              private _viewControllerRef: ViewContainerRef,\n              private _injector: Injector) {\n  }\n\n  ngOnDestroy(): void {\n    this._overlayRef?.dispose();\n  }\n\n  /** 打开面板 */\n  public open() {\n    if (this._opened) {\n      return;\n    }\n\n    this._overlayRef = this._overlay.create();\n    const portal = new GuiTemplatePortal(this._templatePortalContent, this._viewControllerRef,\n      null, this._injector);\n    this._overlayRef.attach(portal);\n\n    this._opened = true;\n  }\n\n  /** 关闭面板 */\n  public close() {\n    if (!this._opened) {\n      return;\n    }\n\n    if (this._overlayRef) {\n      this._overlayRef.detach();\n    }\n\n    this._opened = false;\n  }\n\n  /** 打开或者关闭面板 */\n  public toggle() {\n    this.opened = !this.opened;\n  }\n\n}\n","<ng-template #drawerTemplate>\n  <div class=\"gui-drawer-backdrop\" (click)=\"close()\">\n    <div class=\"gui-drawer\" [attr.anchor]=\"anchor\" (click)=\"$event.stopPropagation()\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</ng-template>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './drawer';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Injector,\n  Input,\n  OnDestroy,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiOverlay, GuiOverlayModule, GuiOverlayRef} from '../overlay';\nimport {coerceBooleanProperty} from '../coercion';\nimport {GuiTheme} from '../theme';\nimport {GuiTemplatePortal} from '../portal';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n  selector: 'gui-dialog',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiOverlayModule\n  ],\n  templateUrl: './dialog.html',\n  styleUrls: ['./dialog.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiDialog'\n})\nexport class GuiDialog implements OnDestroy {\n\n  @ViewChild('dialogTemplate', {static: true})\n  private _templatePortalContent: TemplateRef<unknown>;\n\n  /** 叠加层引用 */\n  private _overlayRef: GuiOverlayRef;\n\n  /** 是否打开 */\n  @Input()\n  get opened(): boolean { return this._opened; }\n  set opened(value: any) {\n    const opened = coerceBooleanProperty(value);\n    if (opened !== this._opened) {\n      opened ? this.open() : this.close();\n    }\n  }\n  private _opened: boolean = false;\n\n  constructor(private _theme: GuiTheme,\n              private _overlay: GuiOverlay,\n              private _viewControllerRef: ViewContainerRef,\n              private _injector: Injector) {\n  }\n\n  ngOnDestroy(): void {\n    this._overlayRef?.dispose();\n  }\n\n  /** 打开面板 */\n  public open() {\n    if (this._opened) {\n      return;\n    }\n\n    this._overlayRef = this._overlay.create();\n    const portal = new GuiTemplatePortal(this._templatePortalContent, this._viewControllerRef,\n      null, this._injector);\n    this._overlayRef.attach(portal);\n\n    this._opened = true;\n  }\n\n  /** 关闭面板 */\n  public close() {\n    if (!this._opened) {\n      return;\n    }\n\n    if (this._overlayRef) {\n      this._overlayRef.detach();\n    }\n\n    this._opened = false;\n  }\n\n  /** 打开或者关闭面板 */\n  public toggle() {\n    this.opened = !this.opened;\n  }\n\n}\n","<ng-template #dialogTemplate>\n  <div class=\"gui-dialog-backdrop\">\n    <div role=\"dialog\" class=\"gui-dialog\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</ng-template>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './dialog';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n  selector: 'gui-progress',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './progress.html',\n  styleUrls: ['./progress.scss'],\n  host: {\n    'role': 'progressbar',\n    'class': 'gui-progress',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiProgress'\n})\nexport class GuiProgress implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p role=\"progressbar\" appearance=\"\">progress works!</p>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './progress';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/** 可以覆盖的默认`ui-menu`选项 */\nimport {ChangeDetectionStrategy, Component, InjectionToken, ViewEncapsulation} from \"@angular/core\";\nimport {GuiAnchorOrigin} from '../core/anchor-origin';\nimport {GuiPopover, GuiPopoverModule} from '../popover';\nimport {GuiToolbar} from '../toolbar';\nimport {CommonModule} from \"@angular/common\";\nimport {GuiVStack} from \"../stack\";\n\nexport interface GuiMenuDefaultOptions {\n  // 锚点位置\n  anchorOrigin: GuiAnchorOrigin;\n}\n\n/** 用于覆盖 `ui-menu` 的默认选项的注入令牌 */\nexport const GUI_MENU_DEFAULT_OPTIONS =\n  new InjectionToken<GuiMenuDefaultOptions>('GUI_MENU_DEFAULT_OPTIONS', {\n    providedIn: 'root',\n    factory: GUI_MENU_DEFAULT_OPTIONS_FACTORY\n  });\n\nexport function GUI_MENU_DEFAULT_OPTIONS_FACTORY(): GuiMenuDefaultOptions {\n  return {\n    anchorOrigin: new GuiAnchorOrigin('left', 'bottom')\n  };\n}\n\nexport const GUI_MENU_PANEL = new InjectionToken<GuiToolbar>('GUI_MENU_PANEL');\n\nlet nextUniqueId = 0;\n\n/** 菜单被关闭的原因 */\nexport type GuiMenuCloseReason = void | 'click' | 'keydown' | 'tab';\n\n@Component({\n  selector: 'gui-menu',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiPopoverModule,\n    GuiVStack\n  ],\n  templateUrl: 'menu.html',\n  styleUrls: ['menu.scss'],\n  host: {\n    'appearance': 'menu',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n  },\n  providers: [\n    {provide: GUI_MENU_PANEL, useExisting: GuiMenu},\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  exportAs: 'guiMenu'\n})\nexport class GuiMenu extends GuiPopover {\n}\n","<ng-template #popoverTemplate>\n  <div class=\"gui-menu-backdrop\" (click)=\"close()\">\n    <div class=\"gui-menu\" [style.top.px]=\"_offsetTop\" [style.left.px]=\"_offsetLeft\">\n      <gui-v-stack spacing=\"0\">\n        <ng-content></ng-content>\n      </gui-v-stack>\n    </div>\n  </div>\n</ng-template>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  HostListener,\n  Inject,\n  Input,\n  OnDestroy,\n  Optional,\n  ViewEncapsulation\n} from '@angular/core';\nimport {Subject} from \"rxjs\";\nimport {BooleanInput, coerceBooleanProperty} from '../coercion';\nimport {GUI_MENU_PANEL, GuiMenu} from './menu';\nimport {CommonModule} from \"@angular/common\";\n\n@Component({\n  selector: 'gui-menu-item',\n  standalone: true,\n  imports: [\n    CommonModule\n  ],\n  templateUrl: './menu-item.html',\n  styleUrls: ['./menu-item.scss'],\n  host: {\n    'class': 'gui-menu-item',\n    '[attr.role]': 'role',\n    '[class.ui-menu-item-highlighted]': '_highlighted',\n    '[class.ui-menu-item-submenu-trigger]': '_triggersSubmenu',\n    '[attr.tabindex]': '_getTabIndex()',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[attr.disabled]': 'disabled || null',\n  },\n  inputs: [\n    'disabled', 'disableRipple'\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiMenuItem'\n})\nexport class GuiMenuItem implements OnDestroy {\n\n  // Component input 类型检查用, 去掉会报类型错误\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_disableRipple: BooleanInput;\n\n  /** 当菜单项悬停时发出的流 */\n  readonly _hovered: Subject<GuiMenuItem> = new Subject<GuiMenuItem>();\n\n  /** 当菜单项聚焦时发出的流 */\n  readonly _focused = new Subject<GuiMenuItem>();\n\n  /** 菜单项是否高亮 */\n  _highlighted: boolean = false;\n\n  /** 菜单项是否充当子菜单的触发器 */\n  _triggersSubmenu: boolean = false;\n\n  constructor(private elementRef: ElementRef<HTMLElement>,\n              @Inject(GUI_MENU_PANEL) @Optional() public parentMenu?: GuiMenu) {\n  }\n\n  ngOnDestroy() {\n    this._hovered.complete();\n    this._focused.complete();\n  }\n\n  /** 是否禁用 */\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  set disabled(value: any) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  private _disabled: boolean = false;\n\n  /** 是否禁用水波动画 */\n  get disableRipple() {\n    return this._disableRipple;\n  }\n\n  set disableRipple(value: any) {\n    this._disableRipple = coerceBooleanProperty(value);\n  }\n\n  private _disableRipple: boolean = false;\n\n  /** ARIA role for the menu item. */\n  @Input() role: 'menuitem' | 'menuItemRadio' | 'menuItemCheckbox' = 'menuitem';\n\n  /** 如果禁用，则阻止默认元素操作 */\n  @HostListener('click', ['$event'])\n  _handleClick(event: Event): void {\n    if (this.disabled) {\n      event.preventDefault();\n      event.stopPropagation();\n    }\n  }\n\n  /** 发射到悬停流 */\n  @HostListener('mouseenter')\n  _handleMouseEnter() {\n    this._hovered.next(this);\n  }\n\n  /** 获取在确定是否应该聚焦选项时要使用的标签 */\n  getLabel(): string {\n    const clone = this.elementRef.nativeElement.cloneNode(true) as HTMLElement;\n    const icons = clone.querySelectorAll('ui-icon');\n\n    // Strip away icons so they don't show up in the text.\n    for (let i = 0; i < icons.length; i++) {\n      icons[i].remove();\n    }\n\n    return clone.textContent?.trim() || '';\n  }\n\n  /** 用于设置`tabindex` */\n  _getTabIndex(): string {\n    return this.disabled ? '-1' : '0';\n  }\n\n  /** 返回宿主 DOM 元素 */\n  _getHostElement(): HTMLElement {\n    return this.elementRef.nativeElement;\n  }\n\n  /** 设置高亮 */\n  _setHighlighted(isHighlighted: boolean) {\n    this._highlighted = isHighlighted;\n  }\n}\n","<ng-content></ng-content>\n<svg\n  *ngIf=\"_triggersSubmenu\"\n  class=\"ui-menu-submenu-icon\"\n  viewBox=\"0 0 6 10\"\n  focusable=\"false\">\n  <path d=\"M0.672 0.655 C0.999 0.337 1.505 0.317 1.854 0.591 L1.945 0.672 5.545 4.372 C5.857 4.693 5.883 5.187 5.623 5.536 L5.545 5.628 1.945 9.328 C1.598 9.684 1.029 9.692 0.672 9.345 0.346 9.027 0.312 8.522 0.576 8.166 L0.655 8.072 3.643 5 0.655 1.928 C0.337 1.601 0.317 1.095 0.591 0.746 Z\"/>\n</svg>\n","\n/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './menu-item';\nexport * from './menu';\n\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","import {\n  ChangeDetectionStrategy,\n  Component, HostListener,\n  Injector,\n  Input, OnDestroy,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {GuiOverlay, GuiOverlayRef} from '../overlay';\nimport {coerceBooleanProperty} from '../coercion';\nimport {GuiTheme} from '../theme';\nimport {GuiTemplatePortal} from '../portal';\nimport {GuiTint} from '../core';\n\n/** 锚点 */\nexport type GuiSnackbarAnchor = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\n\n@Component({\n  selector: 'gui-snackbar',\n  templateUrl: './snackbar.html',\n  styleUrls: ['./snackbar.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiSnackbar'\n})\nexport class GuiSnackbar implements OnDestroy {\n\n  @ViewChild('snackbarTemplate', {static: true})\n  private _templatePortalContent: TemplateRef<unknown>;\n\n  /** 叠加层引用 */\n  private _overlayRef: GuiOverlayRef;\n\n  /** 锚点 */\n  @Input()\n  anchor: GuiSnackbarAnchor = 'top-right';\n\n  /** 色调 */\n  @Input()\n  public tint: GuiTint = 'default';\n\n  /** 是否打开 */\n  @Input()\n  get opened(): boolean { return this._opened; }\n  set opened(value: any) {\n    const opened = coerceBooleanProperty(value);\n    if (opened !== this._opened) {\n      opened ? this.open() : this.close();\n    }\n  }\n  private _opened: boolean = false;\n\n  constructor(private _theme: GuiTheme,\n              private _overlay: GuiOverlay,\n              private _viewControllerRef: ViewContainerRef,\n              private _injector: Injector) {\n  }\n\n  ngOnDestroy(): void {\n    this.close();\n  }\n\n  /** 打开面板 */\n  public open() {\n    if (this._opened) {\n      return;\n    }\n\n    this._overlayRef = this._overlay.create();\n    const portal = new GuiTemplatePortal(this._templatePortalContent, this._viewControllerRef,\n      null, this._injector);\n    this._overlayRef.attach(portal);\n\n    this._opened = true;\n  }\n\n  /** 关闭面板 */\n  public close() {\n    if (!this._opened) {\n      return;\n    }\n\n    if (this._overlayRef) {\n      this._overlayRef.detach();\n    }\n\n    this._opened = false;\n  }\n\n  /** 打开或者关闭面板 */\n  public toggle() {\n    this.opened = !this.opened;\n  }\n\n}\n","<ng-template #snackbarTemplate>\n  <div class=\"gui-snackbar\" [attr.anchor]=\"anchor\" [attr.tint]=\"tint\">\n    <ng-content></ng-content>\n  </div>\n</ng-template>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GuiThemeModule} from '../theme';\nimport {GuiOverlayModule} from '../overlay';\nimport {GuiSnackbar} from './snackbar';\n\n\n@NgModule({\n  declarations: [\n    GuiSnackbar\n  ],\n  imports: [\n    CommonModule,\n    GuiThemeModule,\n    GuiOverlayModule\n  ],\n  exports: [\n    GuiSnackbar\n  ]\n})\nexport class GuiSnackbarModule { }\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './snackbar.module';\nexport * from './snackbar';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {ChangeDetectionStrategy, Component, ElementRef, Renderer2, ViewEncapsulation} from '@angular/core';\nimport {GuiScrollDispatcher, GuiScrollModule} from '../scroll';\nimport {CommonModule} from '@angular/common';\nimport {GuiButton} from '../button';\nimport {GuiIcon} from '../icon';\n\n@Component({\n  selector: 'gui-back-to-top',\n  standalone: true,\n  imports: [\n    CommonModule,\n    GuiScrollModule,\n    GuiButton,\n    GuiIcon\n  ],\n  templateUrl: './back-to-top.html',\n  styleUrls: ['./back-to-top.scss'],\n  host: {\n    'class': 'gui-back-to-top',\n    'appearance': 'button'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'guiBackToTop'\n})\nexport class GuiBackToTop {\n\n  constructor(private _scrollDispatcher: GuiScrollDispatcher,\n              _elementRef: ElementRef,\n              _renderer: Renderer2) {\n    _scrollDispatcher.scrolled().subscribe(() => {\n      let scrollTop = Math.max(document.body.scrollTop, document.documentElement.scrollTop);\n      _renderer.setAttribute(_elementRef.nativeElement, 'showing', (scrollTop > 300) + '');\n    });\n  }\n\n  public _handleClick() {\n    window.scrollTo({top: 0, behavior: 'smooth'});\n  }\n\n}\n","<button gui-button facade=\"filled\" shape=\"circle\"\n        (click)=\"_handleClick()\">\n  <gui-icon name=\"arrow-up\"></gui-icon>\n</button>\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from \"./back-to-top\";\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './public-api';\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nimport {NgModule} from '@angular/core';\nimport {GuiPlatformModule} from './platform';\nimport {GuiDirectionModule} from './direction';\nimport {GuiObserversModule} from './observers';\nimport {GuiClipboardModule} from './clipboard';\nimport {GuiMediaMatchModule} from './media-match';\nimport {GuiAppearanceModule} from './appearance';\nimport {GuiOverlayModule} from './overlay';\nimport {GuiScreenSizeModule} from './screen-size';\nimport {GuiScrollModule} from './scroll';\nimport {GuiTheme, GuiThemeModule} from './theme';\nimport {GuiPortalModule} from './portal';\nimport {GuiTypography} from './typography';\nimport {GuiGrid, GuiGridItem} from './grid';\nimport {GuiContainer} from './container';\nimport {GuiHStack, GuiSpacer, GuiVStack} from './stack';\nimport {GuiCollapse} from './collapse';\nimport {GuiButton} from './button';\nimport {GuiDivider} from './divider';\nimport {GuiIcon} from './icon';\nimport {GuiCheckbox} from './checkbox';\nimport {GuiInput} from './input';\nimport {GuiLink} from './link';\nimport {GuiPagination} from './pagination';\nimport {GuiSwitch} from './switch';\nimport {GuiSelectModule} from './select';\nimport {GuiForm} from './form';\nimport {GuiTitleModule} from './title';\nimport {GuiDataGrid, GuiDataGridCol} from './data-grid';\nimport {GuiDrawer} from './drawer';\nimport {GuiPopoverModule} from './popover';\nimport {GuiSliderModule} from './slider';\nimport {GuiToolbar} from './toolbar';\nimport {GuiListModule} from './list';\nimport {GuiBackdropModule} from './backdrop';\nimport {GuiDialog} from './dialog';\nimport {GuiMenu, GuiMenuItem} from './menu';\nimport {GuiSnackbarModule} from './snackbar';\nimport {GuiBackToTop} from './back-to-top';\nimport {GuiSegment, GuiSegmentButton} from './segment';\nimport {GuiUpload} from './upload';\nimport {GuiBadge} from './badge';\nimport {GuiAvatar} from \"./avatar\";\nimport {GuiCardModule} from \"./card\";\nimport {GuiProgress} from \"./progress\";\nimport {GuiDot} from \"./dot\";\nimport {GuiBox} from './box';\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    GuiPlatformModule,\n    GuiDirectionModule,\n    GuiObserversModule,\n    GuiClipboardModule,\n    GuiMediaMatchModule,\n    GuiScreenSizeModule,\n    GuiScrollModule,\n    GuiAppearanceModule,\n    GuiThemeModule,\n    GuiPortalModule,\n    GuiOverlayModule,\n    GuiTypography,\n    GuiBox,\n    GuiContainer,\n    GuiGrid,\n    GuiGridItem,\n    GuiSpacer,\n    GuiHStack,\n    GuiVStack,\n    GuiDivider,\n    GuiAvatar,\n    GuiBadge,\n    GuiCardModule,\n    GuiCollapse,\n    GuiIcon,\n    GuiDot,\n    GuiLink,\n    GuiPagination,\n    GuiButton,\n    GuiCheckbox,\n    GuiSwitch,\n    GuiInput,\n    GuiUpload,\n    GuiSelectModule,\n    GuiSliderModule,\n    GuiForm,\n    GuiToolbar,\n    GuiTitleModule,\n    GuiListModule,\n    GuiDataGrid,\n    GuiDataGridCol,\n    GuiBackdropModule,\n    GuiDrawer,\n    GuiDialog,\n    GuiProgress,\n    GuiPopoverModule,\n    GuiMenu,\n    GuiMenuItem,\n    GuiSnackbarModule,\n    GuiSegmentButton,\n    GuiSegment,\n    GuiBackToTop,\n  ],\n  exports: [\n    GuiPlatformModule,\n    GuiDirectionModule,\n    GuiObserversModule,\n    GuiClipboardModule,\n    GuiMediaMatchModule,\n    GuiScreenSizeModule,\n    GuiScrollModule,\n    GuiAppearanceModule,\n    GuiThemeModule,\n    GuiPortalModule,\n    GuiOverlayModule,\n    GuiTypography,\n    GuiBox,\n    GuiContainer,\n    GuiGrid,\n    GuiGridItem,\n    GuiSpacer,\n    GuiHStack,\n    GuiVStack,\n    GuiDivider,\n    GuiAvatar,\n    GuiBadge,\n    GuiCardModule,\n    GuiCollapse,\n    GuiIcon,\n    GuiDot,\n    GuiLink,\n    GuiPagination,\n    GuiButton,\n    GuiCheckbox,\n    GuiSwitch,\n    GuiInput,\n    GuiUpload,\n    GuiSelectModule,\n    GuiSliderModule,\n    GuiForm,\n    GuiToolbar,\n    GuiTitleModule,\n    GuiListModule,\n    GuiDataGrid,\n    GuiDataGridCol,\n    GuiBackdropModule,\n    GuiDrawer,\n    GuiDialog,\n    GuiProgress,\n    GuiPopoverModule,\n    GuiMenu,\n    GuiMenuItem,\n    GuiSnackbarModule,\n    GuiSegmentButton,\n    GuiSegment,\n    GuiBackToTop,\n  ],\n  providers: [\n    GuiTheme\n  ]\n})\nexport class GuiModule {\n}\n","/*\n * Copyright (c) 2022. GlamTime All Rights Reserved.\n */\n\nexport * from './lib/theme';\nexport * from './lib/platform';\nexport * from './lib/keycodes';\nexport * from './lib/coercion';\nexport * from './lib/core';\nexport * from './lib/direction';\nexport * from './lib/observers';\nexport * from './lib/clipboard';\nexport * from './lib/media-match';\nexport * from './lib/screen-size';\nexport * from './lib/scroll';\nexport * from './lib/appearance';\nexport * from './lib/theme';\nexport * from './lib/portal';\nexport * from './lib/overlay';\nexport * from './lib/typography';\nexport * from './lib/box';\nexport * from './lib/container';\nexport * from './lib/grid';\nexport * from './lib/stack';\nexport * from './lib/divider';\nexport * from './lib/avatar';\nexport * from './lib/badge';\nexport * from './lib/card';\nexport * from './lib/collapse';\nexport * from './lib/dot';\nexport * from './lib/icon';\nexport * from './lib/link';\nexport * from './lib/pagination';\nexport * from './lib/button';\nexport * from './lib/checkbox';\nexport * from './lib/switch';\nexport * from './lib/input';\nexport * from './lib/upload';\nexport * from './lib/select';\nexport * from './lib/slider';\nexport * from './lib/form';\nexport * from './lib/toolbar';\nexport * from './lib/title';\nexport * from './lib/list';\nexport * from './lib/data-grid';\nexport * from './lib/backdrop';\nexport * from './lib/drawer';\nexport * from './lib/dialog';\nexport * from './lib/progress';\nexport * from './lib/popover';\nexport * from './lib/menu';\nexport * from './lib/snackbar';\nexport * from './lib/segment';\nexport * from './lib/back-to-top';\nexport * from './lib/gui.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GuiPlatform","i1.GuiMediaMatch","i1.GuiScreenSize","i1.GuiScrollDispatcher","i2.GuiDirectionality","i2.GuiTheme","i1.GuiSvgIconRegistry","i1.GuiTheme","nextUniqueId","i2","i2.GuiOverlay","observableOf","i1","i3.GuiIcon","i4.GuiPopover","i5.GuiOption","i1.GuiDirectionality","i1.GuiSegment","i1.GuiCollapse","i2.GuiIcon","i1.GuiOverlay"],"mappings":"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,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EA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"}