ngx-tethys 18.0.4 → 18.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [18.0.5](https://github.com/atinc/ngx-tethys/compare/18.0.4...18.0.5) (2024-09-11)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **core:** set input use templateName #TINFR-589 ([#3198](https://github.com/atinc/ngx-tethys/issues/3198)) ([0a6b246](https://github.com/atinc/ngx-tethys/commit/0a6b24617a2cad2daeb6b83256b935457741fbda)), closes [#TINFR-589](https://github.com/atinc/ngx-tethys/issues/TINFR-589)
11
+
12
+
13
+
5
14
  ## [18.0.4](https://github.com/atinc/ngx-tethys/compare/18.0.3...18.0.4) (2024-09-09)
6
15
 
7
16
 
@@ -40,11 +40,13 @@ export class ThyAbstractOverlayService {
40
40
  const contentRef = containerInstance.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));
41
41
  if (config.initialState) {
42
42
  const metadata = reflectComponentType(componentOrTemplateRef);
43
- const inputsByKey = keyBy(metadata.inputs, 'propName');
43
+ const inputsByTemplateName = keyBy(metadata.inputs, 'templateName');
44
+ const inputsByPropName = keyBy(metadata.inputs, 'propName');
44
45
  Object.keys(config.initialState).forEach(key => {
45
46
  const value = config.initialState[key];
46
- if (inputsByKey[key]) {
47
- contentRef.setInput(key, value);
47
+ const input = inputsByTemplateName[key] || inputsByPropName[key];
48
+ if (input) {
49
+ contentRef.setInput(input.templateName, value);
48
50
  }
49
51
  else {
50
52
  contentRef.instance[key] = value;
@@ -153,4 +155,4 @@ export class ThyAbstractOverlayService {
153
155
  this._afterOpened.complete();
154
156
  }
155
157
  }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtb3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvcmUvb3ZlcmxheS9hYnN0cmFjdC1vdmVybGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWdCLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUEwQixhQUFhLEVBQThCLE1BQU0sc0JBQXNCLENBQUM7QUFDekcsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQVksV0FBVyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzVFLE1BQU0sT0FBZ0IseUJBQXlCO0lBTzNDLFlBQ2MsT0FBa0MsRUFBRSxnREFBZ0Q7SUFDcEYsT0FBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsYUFBc0IsRUFDekIsY0FBNkM7UUFKMUMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUErQjtRQVhoRCxtQkFBYyxHQUFpRCxFQUFFLENBQUM7UUFFekQsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXRDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQTBDLENBQUM7SUFRbkYsQ0FBQztJQXNCSiw0REFBNEQ7SUFDbEQsb0JBQW9CLENBQzFCLHNCQUFxRCxFQUNyRCxpQkFBNkIsRUFDN0IsVUFBc0IsRUFDdEIsTUFBZTtRQUVmLHNGQUFzRjtRQUN0RiwwQkFBMEI7UUFDMUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMs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OztPQUdHO0lBQ0gsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBSSxNQUFVLEVBQUUsS0FBZTtRQUNoQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDM0UsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDakIsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ0osSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDbkMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1QscURBQXFEO1lBQ3JELCtCQUErQjtZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQXJyYXksIGNvbmNhdEFycmF5LCBGdW5jdGlvblByb3AsIGtleUJ5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBJbmplY3RvciwgVGVtcGxhdGVSZWYsIHJlZmxlY3RDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRoeUFic3RyYWN0T3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJy4vYWJzdHJhY3Qtb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgVGh5QWJzdHJhY3RPdmVybGF5UmVmIH0gZnJvbSAnLi9hYnN0cmFjdC1vdmVybGF5LXJlZic7XG5pbXBvcnQgeyBUaHlBYnN0cmFjdE92ZXJsYXlDb25maWcsIFRoeUFic3RyYWN0T3ZlcmxheU9wdGlvbnMgfSBmcm9tICcuL2Fic3RyYWN0LW92ZXJsYXkuY29uZmlnJztcbmltcG9ydCB7IFNhZmVBbnkgfSBmcm9tICduZ3gtdGV0aHlzL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50VHlwZU9yVGVtcGxhdGVSZWY8VD4gPSBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD47XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUaHlBYnN0cmFjdE92ZXJsYXlTZXJ2aWNlPFRDb25maWcgZXh0ZW5kcyBUaHlBYnN0cmFjdE92ZXJsYXlDb25maWcsIFRDb250YWluZXIgZXh0ZW5kcyBUaHlBYnN0cmFjdE92ZXJsYXlDb250YWluZXI+IHtcbiAgICBwcml2YXRlIG9wZW5lZE92ZXJsYXlzOiBUaHlBYnN0cmFjdE92ZXJsYXlSZWY8dW5rbm93biwgVENvbnRhaW5lcj5bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJPcGVuZWQgPSBuZXcgU3ViamVjdDxUaHlBYnN0cmFjdE92ZXJsYXlSZWY8YW55LCBUQ29udGFpbmVyPj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgb3B0aW9uczogVGh5QWJzdHJhY3RPdmVybGF5T3B0aW9ucywgLy8gY29tcG9uZW50IG5hbWUsIGUuZzogZGlhbG9nIHwgcG9wb3ZlciB8IHNsaWRlXG4gICAgICAgIHByb3RlY3RlZCBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcm90ZWN0ZWQgZGVmYXVsdENvbmZpZzogVENvbmZpZyxcbiAgICAgICAgcHVibGljIHNjcm9sbFN0cmF0ZWd5PzogRnVuY3Rpb25Qcm9wPFNjcm9sbFN0cmF0ZWd5PlxuICAgICkge31cblxuICAgIC8qKiBCdWlsZCBjZGsgb3ZlcmxheSBjb25maWcgYnkgY29uZmlnICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkT3ZlcmxheUNvbmZpZyhjb25maWc6IFRDb25maWcpOiBPdmVybGF5Q29uZmlnO1xuXG4gICAgLyoqIEF0dGFjaCBvdmVybGF5IGNvbnRhaW5lciB0byBvdmVybGF5Ki9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYXR0YWNoT3ZlcmxheUNvbnRhaW5lcihvdmVybGF5OiBPdmVybGF5UmVmLCBjb25maWc6IFRDb25maWcpOiBUQ29udGFpbmVyO1xuXG4gICAgLyoqIENyZWF0ZSBhYnN0cmFjdCBvdmVybGF5IHJlZiBieSBjZGsgb3ZlcmxheSwgY29udGFpbmVyIGFuZCBjb25maWcgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUFic3RyYWN0T3ZlcmxheVJlZjxULCBUUmVzdWx0PihcbiAgICAgICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICAgICAgY29udGFpbmVySW5zdGFuY2U6IFRDb250YWluZXIsXG4gICAgICAgIGNvbmZpZzogVENvbmZpZ1xuICAgICk6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxULCBUQ29udGFpbmVyLCBUUmVzdWx0PjtcblxuICAgIC8qKiBDcmVhdGUgaW5qZWN0b3IgZm9yIGNvbXBvbmVudCBjb250ZW50ICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUluamVjdG9yPFQ+KFxuICAgICAgICBjb25maWc6IFRDb25maWcsXG4gICAgICAgIG92ZXJsYXlSZWY6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxULCBUQ29udGFpbmVyPixcbiAgICAgICAgY29udGFpbmVySW5zdGFuY2U6IFRDb250YWluZXJcbiAgICApOiBJbmplY3RvcjtcblxuICAgIC8qKiBBdHRhY2ggY29tcG9uZW50IG9yIHRlbXBsYXRlIHJlZiB0byBvdmVybGF5IGNvbnRhaW5lciAqL1xuICAgIHByb3RlY3RlZCBhdHRhY2hPdmVybGF5Q29udGVudDxULCBUUmVzdWx0PihcbiAgICAgICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZU9yVGVtcGxhdGVSZWY8VD4sXG4gICAgICAgIGNvbnRhaW5lckluc3RhbmNlOiBUQ29udGFpbmVyLFxuICAgICAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgICAgICBjb25maWc6IFRDb25maWdcbiAgICApOiBUaHlBYnN0cmFjdE92ZXJsYXlSZWY8VCwgVENvbnRhaW5lciwgVFJlc3VsdD4ge1xuICAgICAgICAvLyBDcmVhdGUgYSByZWZlcmVuY2UgdG8gdGhlIG92ZXJsYXkgd2UncmUgY3JlYXRpbmcgaW4gb3JkZXIgdG8gZ2l2ZSB0aGUgdXNlciBhIGhhbmRsZVxuICAgICAgICAvLyB0byBtb2RpZnkgYW5kIGNsb3NlIGl0LlxuICAgICAgICBjb25zdCBhYnN0cmFjdE92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZUFic3RyYWN0T3ZlcmxheVJlZjxULCBUUmVzdWx0PihvdmVybGF5UmVmLCBjb250YWluZXJJbnN0YW5jZSwgY29uZmlnKTtcblxuICAgICAgICAvLyBXaGVuIHRoZSBiYWNrZHJvcCBpcyBjbGlja2VkLCB3ZSB3YW50IHRvIGNsb3NlIGl0LlxuICAgICAgICBpZiAoY29uZmlnLmhhc0JhY2tkcm9wKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKGFic3RyYWN0T3ZlcmxheVJlZi5kaXNhYmxlQ2xvc2UgIT09IHVuZGVmaW5lZCAmJiAhYWJzdHJhY3RPdmVybGF5UmVmLmRpc2FibGVDbG9zZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RPdmVybGF5UmVmLmJhY2tkcm9wQ2xvc2FibGVcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgY29udGFpbmVySW5zdGFuY2UuYXR0YWNoVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgICAgICAgICAgbmV3IFRlbXBsYXRlUG9ydGFsPFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIG51bGwsIDxhbnk+e1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbmZpZy5pbml0aWFsU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLm9wdGlvbnMubmFtZX1SZWZgXTogYWJzdHJhY3RPdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3I8VD4oY29uZmlnLCBhYnN0cmFjdE92ZXJsYXlSZWYsIGNvbnRhaW5lckluc3RhbmNlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBjb250YWluZXJJbnN0YW5jZS5hdHRhY2hDb21wb25lbnRQb3J0YWw8VD4oXG4gICAgICAgICAgICAgICAgbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnRPclRlbXBsYXRlUmVmLCBjb25maWcudmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3IpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5pbml0aWFsU3RhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0c0J5S2V5ID0ga2V5QnkobWV0YWRhdGEuaW5wdXRzIGFzIFNhZmVBbnksICdwcm9wTmFtZScpO1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbmZpZy5pbml0aWFsU3RhdGUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoY29uZmlnLmluaXRpYWxTdGF0ZSBhcyBTYWZlQW55KVtrZXldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXRzQnlLZXlba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFJlZi5zZXRJbnB1dChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50UmVmLmluc3RhbmNlIGFzIFNhZmVBbnkpW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbmZpZy5ob3N0Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBob3N0Q2xhc3MgPSBjb2VyY2VBcnJheShjb25maWcuaG9zdENsYXNzKTtcbiAgICAgICAgICAgICAgICBjb250ZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi5ob3N0Q2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWJzdHJhY3RPdmVybGF5UmVmLmNvbXBvbmVudEluc3RhbmNlID0gY29udGVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhYnN0cmFjdE92ZXJsYXlSZWY7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbW92ZU9wZW5lZE92ZXJsYXkob3ZlcmxheVJlZjogVGh5QWJzdHJhY3RPdmVybGF5UmVmPGFueSwgVENvbnRhaW5lcj4pIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5lZE92ZXJsYXlzLmluZGV4T2Yob3ZlcmxheVJlZik7XG5cbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbmVkT3ZlcmxheXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLm9wZW5lZE92ZXJsYXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRBYnN0cmFjdE92ZXJsYXlCeUlkKGlkOiBzdHJpbmcpOiBUaHlBYnN0cmFjdE92ZXJsYXlSZWY8YW55LCBUQ29udGFpbmVyPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5lZE92ZXJsYXlzLmZpbmQob3ZlcmxheSA9PiBvdmVybGF5LmlkID09PSBpZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEFic3RyYWN0T3ZlcmxheXMoKTogVGh5QWJzdHJhY3RPdmVybGF5UmVmPGFueSwgVENvbnRhaW5lcj5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5lZE92ZXJsYXlzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBidWlsZEJhc2VPdmVybGF5Q29uZmlnKGNvbmZpZzogVENvbmZpZywgZGVmYXVsdFBhbmVsQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IE92ZXJsYXlDb25maWcge1xuICAgICAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgICAgICAgd2lkdGg6IGNvbmZpZy53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogY29uZmlnLmhlaWdodCxcbiAgICAgICAgICAgIG1pbldpZHRoOiBjb25maWcubWluV2lkdGgsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IGNvbmZpZy5taW5IZWlnaHQsXG4gICAgICAgICAgICBtYXhXaWR0aDogY29uZmlnLm1heFdpZHRoLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiBjb25maWcubWF4SGVpZ2h0LFxuICAgICAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogY29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjb25maWcuYmFja2Ryb3BDbGFzcykge1xuICAgICAgICAgICAgb3ZlcmxheUNvbmZpZy5iYWNrZHJvcENsYXNzID0gY29uZmlnLmJhY2tkcm9wQ2xhc3M7XG4gICAgICAgIH1cblxuICAgICAgICBvdmVybGF5Q29uZmlnLnBhbmVsQ2xhc3MgPSBjb25jYXRBcnJheShjb25maWcucGFuZWxDbGFzcywgZGVmYXVsdFBhbmVsQ2xhc3MpO1xuXG4gICAgICAgIHJldHVybiBvdmVybGF5Q29uZmlnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVuT3ZlcmxheTxULCBUUmVzdWx0ID0gdW5rbm93bj4oXG4gICAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGVPclRlbXBsYXRlUmVmPFQ+LFxuICAgICAgICBjb25maWc/OiBUQ29uZmlnXG4gICAgKTogVGh5QWJzdHJhY3RPdmVybGF5UmVmPFQsIFRDb250YWluZXIsIFRSZXN1bHQ+IHtcbiAgICAgICAgY29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9O1xuICAgICAgICBpZiAoY29uZmlnLmlkICYmIHRoaXMuZ2V0QWJzdHJhY3RPdmVybGF5QnlJZChjb25maWcuaWQpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgJHt0aGlzLm9wdGlvbnMubmFtZX0gd2l0aCBpZCAke2NvbmZpZy5pZH0gZXhpc3RzIGFscmVhZHkuIFRoZSAke3RoaXMub3B0aW9ucy5uYW1lfSBpZCBtdXN0IGJlIHVuaXF1ZS5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdmVybGF5Q29uZmlnOiBPdmVybGF5Q29uZmlnID0gdGhpcy5idWlsZE92ZXJsYXlDb25maWcoY29uZmlnKTtcbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbnRhaW5lciA9IHRoaXMuYXR0YWNoT3ZlcmxheUNvbnRhaW5lcihvdmVybGF5UmVmLCBjb25maWcpO1xuICAgICAgICBjb25zdCBhYnN0cmFjdE92ZXJsYXlSZWYgPSB0aGlzLmF0dGFjaE92ZXJsYXlDb250ZW50PFQsIFRSZXN1bHQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIG92ZXJsYXlDb250YWluZXIsIG92ZXJsYXlSZWYsIGNvbmZpZyk7XG5cbiAgICAgICAgdGhpcy5vcGVuZWRPdmVybGF5cy5wdXNoKGFic3RyYWN0T3ZlcmxheVJlZik7XG4gICAgICAgIGFic3RyYWN0T3ZlcmxheVJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZU9wZW5lZE92ZXJsYXkoYWJzdHJhY3RPdmVybGF5UmVmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2FmdGVyT3BlbmVkLm5leHQoYWJzdHJhY3RPdmVybGF5UmVmKTtcblxuICAgICAgICByZXR1cm4gYWJzdHJhY3RPdmVybGF5UmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaJgOacieW8ueWHuuahhuWujOWFqOWFs+mXreWQjueahOWbnuiwg1xuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgYWZ0ZXJBbGxDbG9zZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZnRlckFsbENsb3NlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmiZPlvIDlvLnlh7rmoYbkuYvlkI7nmoTlm57osINcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGFmdGVyT3BlbmVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJPcGVuZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5YWz6Zet5by55Ye65qGG77yM6IulZm9yY2XkuLp0cnVl77yM5YiZY2FuQ2xvc2Xml6DmlYjvvIzlvLrliLblhbPpl61cbiAgICAgKiBAcGFyYW0gcmVzdWx0XG4gICAgICogQHBhcmFtIGZvcmNlXG4gICAgICovXG4gICAgY2xvc2U8VD4ocmVzdWx0PzogVCwgZm9yY2U/OiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLm9wZW5lZE92ZXJsYXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RPdmVybGF5UmVmID0gdGhpcy5vcGVuZWRPdmVybGF5c1t0aGlzLm9wZW5lZE92ZXJsYXlzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKGxhc3RPdmVybGF5UmVmKSB7XG4gICAgICAgICAgICAgICAgbGFzdE92ZXJsYXlSZWYuY2xvc2UocmVzdWx0LCBmb3JjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlhbPpl63miYDmnInmiZPlvIDnmoTlvLnlh7rmoYZcbiAgICAgKi9cbiAgICBjbG9zZUFsbCgpIHtcbiAgICAgICAgbGV0IGkgPSB0aGlzLm9wZW5lZE92ZXJsYXlzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICAgICAgLy8g5LiN6ZyA6KaB5pON5L2cIG9wZW5lZE92ZXJsYXlzLCDlm6DkuLogY2xvc2Ug5Lya6Kem5Y+RIGFmdGVyQ2xvc2VkIOeahOiuoumYhVxuICAgICAgICAgICAgLy8g6Kem5Y+R6K6i6ZiF5ZCO5Lya6Ieq5Yqo5LuOIG9wZW5lZE92ZXJsYXlzIOS4reenu+mZpFxuICAgICAgICAgICAgdGhpcy5vcGVuZWRPdmVybGF5c1tpXS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZUFsbCgpO1xuICAgICAgICB0aGlzLl9hZnRlckFsbENsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtb3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvcmUvb3ZlcmxheS9hYnN0cmFjdC1vdmVybGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWdCLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUEwQixhQUFhLEVBQThCLE1BQU0sc0JBQXNCLENBQUM7QUFDekcsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQVksV0FBVyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzVFLE1BQU0sT0FBZ0IseUJBQXlCO0lBTzNDLFlBQ2MsT0FBa0MsRUFBRSxnREFBZ0Q7SUFDcEYsT0FBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsYUFBc0IsRUFDekIsY0FBNkM7UUFKMUMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUErQjtRQVhoRCxtQkFBYyxHQUFpRCxFQUFFLENBQUM7UUFFekQsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXRDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQTBDLENBQUM7SUFRbkYsQ0FBQztJQXNCSiw0REFBNEQ7SUFDbEQsb0JBQW9CLENBQzFCLHNCQUFxRCxFQUNyRCxpQkFBNkIsRUFDN0IsVUFBc0IsRUFDdEIsTUFBZTtRQUVmLHNGQUFzRjtRQUN0RiwwQkFBMEI7UUFDMUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMs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UHJvcCwga2V5QnkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmLCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgcmVmbGVjdENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGh5QWJzdHJhY3RPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnLi9hYnN0cmFjdC1vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBUaHlBYnN0cmFjdE92ZXJsYXlSZWYgfSBmcm9tICcuL2Fic3RyYWN0LW92ZXJsYXktcmVmJztcbmltcG9ydCB7IFRoeUFic3RyYWN0T3ZlcmxheUNvbmZpZywgVGh5QWJzdHJhY3RPdmVybGF5T3B0aW9ucyB9IGZyb20gJy4vYWJzdHJhY3Qtb3ZlcmxheS5jb25maWcnO1xuaW1wb3J0IHsgU2FmZUFueSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRUeXBlT3JUZW1wbGF0ZVJlZjxUPiA9IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRoeUFic3RyYWN0T3ZlcmxheVNlcnZpY2U8VENvbmZpZyBleHRlbmRzIFRoeUFic3RyYWN0T3ZlcmxheUNvbmZpZywgVENvbnRhaW5lciBleHRlbmRzIFRoeUFic3RyYWN0T3ZlcmxheUNvbnRhaW5lcj4ge1xuICAgIHByaXZhdGUgb3BlbmVkT3ZlcmxheXM6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjx1bmtub3duLCBUQ29udGFpbmVyPltdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlckFsbENsb3NlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZCA9IG5ldyBTdWJqZWN0PFRoeUFic3RyYWN0T3ZlcmxheVJlZjxhbnksIFRDb250YWluZXI+PigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBvcHRpb25zOiBUaHlBYnN0cmFjdE92ZXJsYXlPcHRpb25zLCAvLyBjb21wb25lbnQgbmFtZSwgZS5nOiBkaWFsb2cgfCBwb3BvdmVyIHwgc2xpZGVcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBkZWZhdWx0Q29uZmlnOiBUQ29uZmlnLFxuICAgICAgICBwdWJsaWMgc2Nyb2xsU3RyYXRlZ3k/OiBGdW5jdGlvblByb3A8U2Nyb2xsU3RyYXRlZ3k+XG4gICAgKSB7fVxuXG4gICAgLyoqIEJ1aWxkIGNkayBvdmVybGF5IGNvbmZpZyBieSBjb25maWcgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYnVpbGRPdmVybGF5Q29uZmlnKGNvbmZpZzogVENvbmZpZyk6IE92ZXJsYXlDb25maWc7XG5cbiAgICAvKiogQXR0YWNoIG92ZXJsYXkgY29udGFpbmVyIHRvIG92ZXJsYXkqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBhdHRhY2hPdmVybGF5Q29udGFpbmVyKG92ZXJsYXk6IE92ZXJsYXlSZWYsIGNvbmZpZzogVENvbmZpZyk6IFRDb250YWluZXI7XG5cbiAgICAvKiogQ3JlYXRlIGFic3RyYWN0IG92ZXJsYXkgcmVmIGJ5IGNkayBvdmVybGF5LCBjb250YWluZXIgYW5kIGNvbmZpZyAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlQWJzdHJhY3RPdmVybGF5UmVmPFQsIFRSZXN1bHQ+KFxuICAgICAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgICAgICBjb250YWluZXJJbnN0YW5jZTogVENvbnRhaW5lcixcbiAgICAgICAgY29uZmlnOiBUQ29uZmlnXG4gICAgKTogVGh5QWJzdHJhY3RPdmVybGF5UmVmPFQsIFRDb250YWluZXIsIFRSZXN1bHQ+O1xuXG4gICAgLyoqIENyZWF0ZSBpbmplY3RvciBmb3IgY29tcG9uZW50IGNvbnRlbnQgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgICAgIGNvbmZpZzogVENvbmZpZyxcbiAgICAgICAgb3ZlcmxheVJlZjogVGh5QWJzdHJhY3RPdmVybGF5UmVmPFQsIFRDb250YWluZXI+LFxuICAgICAgICBjb250YWluZXJJbnN0YW5jZTogVENvbnRhaW5lclxuICAgICk6IEluamVjdG9yO1xuXG4gICAgLyoqIEF0dGFjaCBjb21wb25lbnQgb3IgdGVtcGxhdGUgcmVmIHRvIG92ZXJsYXkgY29udGFpbmVyICovXG4gICAgcHJvdGVjdGVkIGF0dGFjaE92ZXJsYXlDb250ZW50PFQsIFRSZXN1bHQ+KFxuICAgICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlT3JUZW1wbGF0ZVJlZjxUPixcbiAgICAgICAgY29udGFpbmVySW5zdGFuY2U6IFRDb250YWluZXIsXG4gICAgICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICAgIGNvbmZpZzogVENvbmZpZ1xuICAgICk6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxULCBUQ29udGFpbmVyLCBUUmVzdWx0PiB7XG4gICAgICAgIC8vIENyZWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSB3ZSdyZSBjcmVhdGluZyBpbiBvcmRlciB0byBnaXZlIHRoZSB1c2VyIGEgaGFuZGxlXG4gICAgICAgIC8vIHRvIG1vZGlmeSBhbmQgY2xvc2UgaXQuXG4gICAgICAgIGNvbnN0IGFic3RyYWN0T3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlQWJzdHJhY3RPdmVybGF5UmVmPFQsIFRSZXN1bHQ+KG92ZXJsYXlSZWYsIGNvbnRhaW5lckluc3RhbmNlLCBjb25maWcpO1xuXG4gICAgICAgIC8vIFdoZW4gdGhlIGJhY2tkcm9wIGlzIGNsaWNrZWQsIHdlIHdhbnQgdG8gY2xvc2UgaXQuXG4gICAgICAgIGlmIChjb25maWcuaGFzQmFja2Ryb3ApIHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAoYWJzdHJhY3RPdmVybGF5UmVmLmRpc2FibGVDbG9zZSAhPT0gdW5kZWZpbmVkICYmICFhYnN0cmFjdE92ZXJsYXlSZWYuZGlzYWJsZUNsb3NlKSB8fFxuICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdE92ZXJsYXlSZWYuYmFja2Ryb3BDbG9zYWJsZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICBjb250YWluZXJJbnN0YW5jZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICBuZXcgVGVtcGxhdGVQb3J0YWw8VD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgbnVsbCwgPGFueT57XG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29uZmlnLmluaXRpYWxTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMub3B0aW9ucy5uYW1lfVJlZmBdOiBhYnN0cmFjdE92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5jcmVhdGVJbmplY3RvcjxUPihjb25maWcsIGFic3RyYWN0T3ZlcmxheVJlZiwgY29udGFpbmVySW5zdGFuY2UpO1xuICAgICAgICAgICAgY29uc3QgY29udGVudFJlZiA9IGNvbnRhaW5lckluc3RhbmNlLmF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihcbiAgICAgICAgICAgICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLCBpbmplY3RvcilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmluaXRpYWxTdGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gcmVmbGVjdENvbXBvbmVudFR5cGUoY29tcG9uZW50T3JUZW1wbGF0ZVJlZik7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXRzQnlUZW1wbGF0ZU5hbWUgPSBrZXlCeShtZXRhZGF0YS5pbnB1dHMgYXMgU2FmZUFueSwgJ3RlbXBsYXRlTmFtZScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0c0J5UHJvcE5hbWUgPSBrZXlCeShtZXRhZGF0YS5pbnB1dHMgYXMgU2FmZUFueSwgJ3Byb3BOYW1lJyk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoY29uZmlnLmluaXRpYWxTdGF0ZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChjb25maWcuaW5pdGlhbFN0YXRlIGFzIFNhZmVBbnkpW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0OiB7IHRlbXBsYXRlTmFtZT86IHN0cmluZzsgcHJvcE5hbWU/OiBzdHJpbmcgfSA9IGlucHV0c0J5VGVtcGxhdGVOYW1lW2tleV0gfHwgaW5wdXRzQnlQcm9wTmFtZVtrZXldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRSZWYuc2V0SW5wdXQoaW5wdXQudGVtcGxhdGVOYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudFJlZi5pbnN0YW5jZSBhcyBTYWZlQW55KVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25maWcuaG9zdENsYXNzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaG9zdENsYXNzID0gY29lcmNlQXJyYXkoY29uZmlnLmhvc3RDbGFzcyk7XG4gICAgICAgICAgICAgICAgY29udGVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uaG9zdENsYXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFic3RyYWN0T3ZlcmxheVJlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbnRlbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWJzdHJhY3RPdmVybGF5UmVmO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW1vdmVPcGVuZWRPdmVybGF5KG92ZXJsYXlSZWY6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxhbnksIFRDb250YWluZXI+KSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVuZWRPdmVybGF5cy5pbmRleE9mKG92ZXJsYXlSZWYpO1xuXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5lZE92ZXJsYXlzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcGVuZWRPdmVybGF5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZnRlckFsbENsb3NlZC5uZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QWJzdHJhY3RPdmVybGF5QnlJZChpZDogc3RyaW5nKTogVGh5QWJzdHJhY3RPdmVybGF5UmVmPGFueSwgVENvbnRhaW5lcj4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWRPdmVybGF5cy5maW5kKG92ZXJsYXkgPT4gb3ZlcmxheS5pZCA9PT0gaWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRBYnN0cmFjdE92ZXJsYXlzKCk6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxhbnksIFRDb250YWluZXI+W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWRPdmVybGF5cztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYnVpbGRCYXNlT3ZlcmxheUNvbmZpZyhjb25maWc6IFRDb25maWcsIGRlZmF1bHRQYW5lbENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10pOiBPdmVybGF5Q29uZmlnIHtcbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGNvbmZpZy5oYXNCYWNrZHJvcCxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogY29uZmlnLmRpcmVjdGlvbixcbiAgICAgICAgICAgIHdpZHRoOiBjb25maWcud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IGNvbmZpZy5oZWlnaHQsXG4gICAgICAgICAgICBtaW5XaWR0aDogY29uZmlnLm1pbldpZHRoLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiBjb25maWcubWluSGVpZ2h0LFxuICAgICAgICAgICAgbWF4V2lkdGg6IGNvbmZpZy5tYXhXaWR0aCxcbiAgICAgICAgICAgIG1heEhlaWdodDogY29uZmlnLm1heEhlaWdodCxcbiAgICAgICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IGNvbmZpZy5jbG9zZU9uTmF2aWdhdGlvblxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY29uZmlnLmJhY2tkcm9wQ2xhc3MpIHtcbiAgICAgICAgICAgIG92ZXJsYXlDb25maWcuYmFja2Ryb3BDbGFzcyA9IGNvbmZpZy5iYWNrZHJvcENsYXNzO1xuICAgICAgICB9XG5cbiAgICAgICAgb3ZlcmxheUNvbmZpZy5wYW5lbENsYXNzID0gY29uY2F0QXJyYXkoY29uZmlnLnBhbmVsQ2xhc3MsIGRlZmF1bHRQYW5lbENsYXNzKTtcblxuICAgICAgICByZXR1cm4gb3ZlcmxheUNvbmZpZztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3Blbk92ZXJsYXk8VCwgVFJlc3VsdCA9IHVua25vd24+KFxuICAgICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlT3JUZW1wbGF0ZVJlZjxUPixcbiAgICAgICAgY29uZmlnPzogVENvbmZpZ1xuICAgICk6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxULCBUQ29udGFpbmVyLCBUUmVzdWx0PiB7XG4gICAgICAgIGNvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfTtcbiAgICAgICAgaWYgKGNvbmZpZy5pZCAmJiB0aGlzLmdldEFic3RyYWN0T3ZlcmxheUJ5SWQoY29uZmlnLmlkKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYCR7dGhpcy5vcHRpb25zLm5hbWV9IHdpdGggaWQgJHtjb25maWcuaWR9IGV4aXN0cyBhbHJlYWR5LiBUaGUgJHt0aGlzLm9wdGlvbnMubmFtZX0gaWQgbXVzdCBiZSB1bmlxdWUuYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHRoaXMuYnVpbGRPdmVybGF5Q29uZmlnKGNvbmZpZyk7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb250YWluZXIgPSB0aGlzLmF0dGFjaE92ZXJsYXlDb250YWluZXIob3ZlcmxheVJlZiwgY29uZmlnKTtcbiAgICAgICAgY29uc3QgYWJzdHJhY3RPdmVybGF5UmVmID0gdGhpcy5hdHRhY2hPdmVybGF5Q29udGVudDxULCBUUmVzdWx0Pihjb21wb25lbnRPclRlbXBsYXRlUmVmLCBvdmVybGF5Q29udGFpbmVyLCBvdmVybGF5UmVmLCBjb25maWcpO1xuXG4gICAgICAgIHRoaXMub3BlbmVkT3ZlcmxheXMucHVzaChhYnN0cmFjdE92ZXJsYXlSZWYpO1xuICAgICAgICBhYnN0cmFjdE92ZXJsYXlSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVPcGVuZWRPdmVybGF5KGFic3RyYWN0T3ZlcmxheVJlZik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5uZXh0KGFic3RyYWN0T3ZlcmxheVJlZik7XG5cbiAgICAgICAgcmV0dXJuIGFic3RyYWN0T3ZlcmxheVJlZjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmiYDmnInlvLnlh7rmoYblrozlhajlhbPpl63lkI7nmoTlm57osINcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGFmdGVyQWxsQ2xvc2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJBbGxDbG9zZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5omT5byA5by55Ye65qGG5LmL5ZCO55qE5Zue6LCDXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBhZnRlck9wZW5lZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FmdGVyT3BlbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWFs+mXreW8ueWHuuahhu+8jOiLpWZvcmNl5Li6dHJ1Ze+8jOWImWNhbkNsb3Nl5peg5pWI77yM5by65Yi25YWz6ZetXG4gICAgICogQHBhcmFtIHJlc3VsdFxuICAgICAqIEBwYXJhbSBmb3JjZVxuICAgICAqL1xuICAgIGNsb3NlPFQ+KHJlc3VsdD86IFQsIGZvcmNlPzogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5vcGVuZWRPdmVybGF5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBsYXN0T3ZlcmxheVJlZiA9IHRoaXMub3BlbmVkT3ZlcmxheXNbdGhpcy5vcGVuZWRPdmVybGF5cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChsYXN0T3ZlcmxheVJlZikge1xuICAgICAgICAgICAgICAgIGxhc3RPdmVybGF5UmVmLmNsb3NlKHJlc3VsdCwgZm9yY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5YWz6Zet5omA5pyJ5omT5byA55qE5by55Ye65qGGXG4gICAgICovXG4gICAgY2xvc2VBbGwoKSB7XG4gICAgICAgIGxldCBpID0gdGhpcy5vcGVuZWRPdmVybGF5cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgICAgIC8vIOS4jemcgOimgeaTjeS9nCBvcGVuZWRPdmVybGF5cywg5Zug5Li6IGNsb3NlIOS8muinpuWPkSBhZnRlckNsb3NlZCDnmoTorqLpmIVcbiAgICAgICAgICAgIC8vIOinpuWPkeiuoumYheWQjuS8muiHquWKqOS7jiBvcGVuZWRPdmVybGF5cyDkuK3np7vpmaRcbiAgICAgICAgICAgIHRoaXMub3BlbmVkT3ZlcmxheXNbaV0uY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VBbGwoKTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJBbGxDbG9zZWQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('18.0.4');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4wLjQnKTtcbiJdfQ==
2
+ export const VERSION = new Version('18.0.5');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4wLjUnKTtcbiJdfQ==
@@ -1130,11 +1130,13 @@ class ThyAbstractOverlayService {
1130
1130
  const contentRef = containerInstance.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));
1131
1131
  if (config.initialState) {
1132
1132
  const metadata = reflectComponentType(componentOrTemplateRef);
1133
- const inputsByKey = keyBy(metadata.inputs, 'propName');
1133
+ const inputsByTemplateName = keyBy(metadata.inputs, 'templateName');
1134
+ const inputsByPropName = keyBy(metadata.inputs, 'propName');
1134
1135
  Object.keys(config.initialState).forEach(key => {
1135
1136
  const value = config.initialState[key];
1136
- if (inputsByKey[key]) {
1137
- contentRef.setInput(key, value);
1137
+ const input = inputsByTemplateName[key] || inputsByPropName[key];
1138
+ if (input) {
1139
+ contentRef.setInput(input.templateName, value);
1138
1140
  }
1139
1141
  else {
1140
1142
  contentRef.instance[key] = value;
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-core.mjs","sources":["../../../src/core/behaviors/constructor.ts","../../../src/core/behaviors/decorators.ts","../../../src/core/behaviors/disabled.ts","../../../src/core/behaviors/initialized.ts","../../../src/core/behaviors/loading-done.ts","../../../src/core/behaviors/tabindex.ts","../../../src/core/behaviors/unsubscribe.ts","../../../src/core/behaviors/control-value-accessor.ts","../../../src/core/behaviors/focus-control.ts","../../../src/core/behaviors/mixin.ts","../../../src/core/scroll-to.service.ts","../../../src/core/click-positioner.ts","../../../src/core/request-animation.ts","../../../src/core/scroll.ts","../../../src/core/animation/animation-consts.ts","../../../src/core/animation/fade.ts","../../../src/core/animation/collapse.ts","../../../src/core/animation/thumb.ts","../../../src/core/animation/zoom.ts","../../../src/core/overlay/overlay-position-map.ts","../../../src/core/overlay/utils.ts","../../../src/core/overlay/overlay.directive.ts","../../../src/core/overlay/abstract-overlay-ref.ts","../../../src/core/overlay/abstract-overlay.config.ts","../../../src/core/overlay/abstract-overlay-container.ts","../../../src/core/overlay/abstract-overlay.service.ts","../../../src/core/overlay/portal-directives.ts","../../../src/core/update-host-class.service.ts","../../../src/core/translate.ts","../../../src/core/store/types.ts","../../../src/core/store/utils.ts","../../../src/core/store/action-state.ts","../../../src/core/store/action.ts","../../../src/core/store/store.ts","../../../src/core/color/color.ts","../../../src/core/spacing/spacing.ts","../../../src/core/debounce-time.ts","../../../src/core/ngx-tethys-core.ts"],"sourcesContent":["export type Constructor<T> = new (...args: any[]) => T;\n\nexport class AnonymousClass {}\n\nexport class MixinBase {}\n","import { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, coerceCssPixelValue, coerceNumberValue } from 'ngx-tethys/util';\n\n/**\n * @deprecated Please use {transform: coerceBooleanProperty} in Input instead\n */\nexport function InputBoolean(): PropertyDecorator {\n return makePropDecorator('InputBoolean', coerceBooleanProperty);\n}\n\nexport function InputCssPixel(): PropertyDecorator {\n return makePropDecorator('InputCssPixel', coerceCssPixelValue);\n}\n\n/**\n * @deprecated Please use {transform: numberAttribute} in Input instead\n */\nexport function InputNumber(): PropertyDecorator {\n return makePropDecorator('InputNumber', (value: number) => {\n return coerceNumberValue(value, null);\n });\n}\n\nfunction makePropDecorator<T, D>(\n name: string,\n transform: (v: T, target?: SafeAny) => D,\n initialize?: PropertyDecorator\n): PropertyDecorator {\n function propDecorator(target: SafeAny, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\n initialize && initialize(target, propName);\n const privatePropName = `$$__${propName}`;\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\n console.warn(`The property \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\n }\n }\n\n Object.defineProperty(target, privatePropName, {\n configurable: true,\n writable: true\n });\n\n return {\n get(): string {\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\n },\n set(value: T): void {\n const finalValue = transform(value, target);\n if (originalDescriptor && originalDescriptor.set) {\n originalDescriptor.set.bind(this)(finalValue);\n }\n this[privatePropName] = finalValue;\n }\n };\n }\n\n return propDecorator;\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Constructor } from './constructor';\n\nexport interface ThyCanDisable {\n thyDisabled: boolean;\n}\n\nexport type ThyCanDisableCtor = Constructor<ThyCanDisable>;\n\n/** Mixin to augment a directive with a `disable` property. */\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): ThyCanDisableCtor & T {\n return class extends base {\n private _thyDisabled = false;\n\n get thyDisabled() {\n return this._thyDisabled;\n }\n\n set thyDisabled(value: any) {\n this._thyDisabled = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { OnInit } from '@angular/core';\nimport { Constructor } from './constructor';\n\nexport interface ThyInitialized extends OnInit {\n initialized: boolean;\n}\n\nexport function mixinInitialized<T extends Constructor<{}>>(base: T): Constructor<ThyInitialized> & T {\n return class Mixin extends base {\n initialized = false;\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n ngOnInit(): void {\n this.initialized = true;\n }\n };\n}\n","import { Subject, Observable } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { Constructor } from './constructor';\n\nexport interface ThyLoadingDone {\n loadingDone: boolean;\n}\n\nexport function mixinLoadingDone<T extends Constructor<{}>>(base: T): Constructor<ThyLoadingDone> & T {\n return class Mixin extends base {\n loadingDone = false;\n\n setLoadingDone(value: boolean) {\n this.loadingDone = value;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Constructor, MixinBase } from './constructor';\nimport { mixinDisabled, ThyCanDisable } from './disabled';\n\nexport interface ThyHasTabIndex {\n tabIndex: number;\n\n defaultTabIndex: number;\n}\n\ntype HasTabIndexCtor = Constructor<ThyHasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends Constructor<ThyCanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n return class extends base implements ThyHasTabIndex {\n private _tabIndex: number = defaultTabIndex;\n\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.thyDisabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n\nexport const TabIndexMixinBase: Constructor<ThyHasTabIndex> & Constructor<ThyCanDisable> & typeof MixinBase = mixinTabIndex(\n mixinDisabled(MixinBase)\n);\n","import { Subject } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { Constructor } from './constructor';\n\nexport interface ThyUnsubscribe extends OnDestroy {\n ngUnsubscribe$: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with a `disableRipple` property.\n * @deprecated please use `takeUntilDestroyed`\n */\nexport function mixinUnsubscribe<T extends Constructor<{}>>(base: T): Constructor<ThyUnsubscribe> & T {\n return class Mixin extends base {\n ngUnsubscribe$ = new Subject<void>();\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n ngUnsubscribeReinitialize() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n this.ngUnsubscribe$ = new Subject();\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n };\n}\n","export class AbstractControlValueAccessor<TValue = unknown> {\n protected onChangeFn: (value: TValue) => void = () => {};\n protected onTouchedFn: () => void = () => {};\n\n private __onBlurValidation: () => void = () => {};\n\n registerOnChange(fn: (value: TValue) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = () => {\n fn();\n this.__onBlurValidation();\n };\n }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { ElementRef, inject } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nclass HostFocusControl {\n private ngUnsubscribe$ = new Subject<void>();\n\n private monitorElement: HTMLElement | ElementRef<HTMLElement>;\n\n elementRef = inject(ElementRef);\n\n focusMonitor = inject(FocusMonitor);\n\n focusChanged: (origin: FocusOrigin) => void = () => {};\n\n constructor(checkChildren: boolean = true, element?: HTMLElement | ElementRef<HTMLElement>) {\n this.monitorElement = element || this.elementRef.nativeElement;\n\n this.focusMonitor\n .monitor(this.monitorElement as SafeAny, checkChildren)\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((origin: FocusOrigin) => {\n this.focusChanged(origin);\n });\n }\n\n focusVia(element: HTMLElement | ElementRef<HTMLElement>, origin: FocusOrigin, options?: FocusOptions): void {\n this.focusMonitor.focusVia(element as SafeAny, origin, options);\n }\n\n destroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n this.focusMonitor.stopMonitoring(this.monitorElement as SafeAny);\n }\n}\n\nexport function useHostFocusControl(checkChildren?: boolean, element?: HTMLElement | ElementRef<HTMLElement>): HostFocusControl {\n return new HostFocusControl(checkChildren, element);\n}\n","import { Constructor } from './constructor';\nimport { AbstractControlValueAccessor } from './control-value-accessor';\nimport { ThyCanDisable, mixinDisabled } from './disabled';\nimport { ThyHasTabIndex, mixinTabIndex } from './tabindex';\n\nexport const TabIndexDisabledControlValueAccessorMixin: Constructor<ThyHasTabIndex> &\n Constructor<ThyCanDisable> &\n typeof AbstractControlValueAccessor = mixinTabIndex(mixinDisabled(AbstractControlValueAccessor));\n","import { Injectable } from '@angular/core';\nimport { dom } from 'ngx-tethys/util';\n\nexport class ScrollToService {\n static _customScrollToElement(targetElement: HTMLElement, containerElement: HTMLElement) {\n const containerOffset = dom.getElementOffset(containerElement);\n const targetOffset = dom.getElementOffset(targetElement);\n // 选择项在顶部隐藏的偏移量 > 0 表示被顶部遮住隐藏\n const topOffset = containerOffset.top - targetOffset.top;\n // 选择项在底部隐藏的偏移量 > 0 表示被底部遮住隐藏\n const bottomOffset = targetOffset.top + targetOffset.height - (containerOffset.top + containerOffset.height);\n // 隐藏后滚动展示 targetElement 的偏移量,避免紧挨着头部或者底部\n const viewOffset = targetOffset.height;\n if (topOffset > 0) {\n containerElement.scrollTop = containerElement.scrollTop - topOffset - viewOffset;\n } else if (bottomOffset > 0) {\n containerElement.scrollTop = containerElement.scrollTop + bottomOffset + viewOffset;\n }\n }\n static scrollToElement(targetElement: HTMLElement, containerElement: HTMLElement) {\n if (targetElement) {\n this._customScrollToElement(targetElement, containerElement);\n // if (targetElement.scrollIntoView) {\n // targetElement.scrollIntoView({\n // behavior: 'smooth',\n // block: 'center'\n // });\n // } else {\n // this._customScrollToElement(targetElement, containerElement);\n // }\n }\n }\n}\n","import { Injectable, Inject, NgZone } from '@angular/core';\nimport { ThyClickDispatcher } from './event-dispatchers/index';\n\nexport interface ThyClickPosition {\n x: number;\n y: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyClickPositioner {\n private lastPosition: ThyClickPosition = null;\n\n private initialized = false;\n\n constructor(private clickDispatcher: ThyClickDispatcher) {}\n\n get lastClickPosition(): ThyClickPosition | null {\n return this.lastPosition;\n }\n\n runTaskUseLastPosition(task: (position?: ThyClickPosition) => void) {\n setTimeout(() => {\n task(this.lastClickPosition);\n });\n }\n\n initialize(): void {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n this.clickDispatcher.clicked(0).subscribe((event: MouseEvent) => {\n this.lastPosition = { x: event.clientX, y: event.clientY };\n });\n }\n}\n","const availablePrefixes = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n return function (callback: FrameRequestCallback): number {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall) as any; // setTimeout type warn\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter(key => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\nexport function cancelRequestAnimationFrame(id: number): any {\n if (typeof window === 'undefined') {\n return null;\n }\n if (window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(id);\n }\n const prefix = availablePrefixes.filter(\n key => `${key}CancelAnimationFrame` in window || `${key}CancelRequestAnimationFrame` in window\n )[0];\n\n return prefix\n ? ((window as any)[`${prefix}CancelAnimationFrame`] || (window as any)[`${prefix}CancelRequestAnimationFrame`])\n // @ts-ignore\n .call(this, id)\n : clearTimeout(id);\n}\n\nexport const reqAnimFrame = getRequestAnimationFrame();\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone } from '@angular/core';\nimport { reqAnimFrame } from './request-animation';\n\nexport type EasyingFn = (t: number, b: number, c: number, d: number) => number;\n\nfunction easeInOutCubic(t: number, b: number, c: number, d: number): number {\n const cc = c - b;\n let tt = t / (d / 2);\n if (tt < 1) {\n return (cc / 2) * tt * tt * tt + b;\n } else {\n return (cc / 2) * ((tt -= 2) * tt * tt + 2) + b;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyScrollService {\n private document: Document;\n\n constructor(\n @Inject(DOCUMENT) document: any,\n private ngZone: NgZone\n ) {\n this.document = document;\n }\n\n /** Set the position of the scroll bar of `element`. */\n setScrollTop(element: Element | Window, topValue: number = 0): void {\n if (element === window) {\n this.document.body.scrollTop = topValue;\n this.document.documentElement.scrollTop = topValue;\n } else {\n (element as Element).scrollTop = topValue;\n }\n }\n\n /** Get the position of the scoll bar of `element`. */\n getScroll(element?: Element | Window, top: boolean = true): number {\n const target = element ? element : window;\n const prop = top ? 'pageYOffset' : 'pageXOffset';\n const method = top ? 'scrollTop' : 'scrollLeft';\n const isWindow = target === window;\n let ret = isWindow ? target[prop] : target[method];\n if (isWindow && typeof ret !== 'number') {\n ret = this.document.documentElement[method];\n }\n return ret;\n }\n\n /**\n * Scroll `element` to some position with animation.\n *\n * @param container container, `window` by default\n * @param topValue Scroll to `top`, 0 by default\n * @param easing Transition curve, `easeInOutCubic` by default\n * @param callback callback invoked when transition is done\n */\n scrollTo(container: Element | Window, topValue: number = 0, easing?: EasyingFn, callback?: () => void): void {\n const target = container ? container : window;\n const scrollTop = this.getScroll(target);\n const startTime = Date.now();\n const frameFunc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n this.setScrollTop(target, (easing || easeInOutCubic)(time, scrollTop, topValue, 450));\n if (time < 450) {\n this.ngZone.runOutsideAngular(() => reqAnimFrame(frameFunc));\n } else {\n if (callback) {\n // The `frameFunc` is called within the `<root>` zone, but we have to re-enter\n // the Angular zone when calling custom callback to be backwards-compatible.\n this.ngZone.run(() => callback());\n }\n }\n };\n // The `requestAnimationFrame` triggers change detection, but setting\n // `document.scrollTop` doesn't require Angular to run `ApplicationRef.tick()`.\n this.ngZone.runOutsideAngular(() => reqAnimFrame(frameFunc));\n }\n}\n","export class AnimationDuration {\n static SLOW = '0.3s'; // Modal\n static BASE = '0.2s';\n static FAST = '0.1s'; // Tooltip\n}\n\nexport class AnimationCurves {\n static EASE_BASE_OUT = 'cubic-bezier(0.7, 0.3, 0.1, 1)';\n static EASE_BASE_IN = 'cubic-bezier(0.9, 0, 0.3, 0.7)';\n static EASE_OUT = 'cubic-bezier(0.215, 0.61, 0.355, 1)';\n static EASE_IN = 'cubic-bezier(0.55, 0.055, 0.675, 0.19)';\n static EASE_IN_OUT = 'cubic-bezier(0.645, 0.045, 0.355, 1)';\n static EASE_OUT_BACK = 'cubic-bezier(0.12, 0.4, 0.29, 1.46)';\n static EASE_IN_BACK = 'cubic-bezier(0.71, -0.46, 0.88, 0.6)';\n static EASE_IN_OUT_BACK = 'cubic-bezier(0.71, -0.46, 0.29, 1.46)';\n static EASE_OUT_CIRC = 'cubic-bezier(0.08, 0.82, 0.17, 1)';\n static EASE_IN_CIRC = 'cubic-bezier(0.6, 0.04, 0.98, 0.34)';\n static EASE_IN_OUT_CIRC = 'cubic-bezier(0.78, 0.14, 0.15, 0.86)';\n static EASE_OUT_QUINT = 'cubic-bezier(0.23, 1, 0.32, 1)';\n static EASE_IN_QUINT = 'cubic-bezier(0.755, 0.05, 0.855, 0.06)';\n static EASE_IN_OUT_QUINT = 'cubic-bezier(0.86, 0, 0.07, 1)';\n static EASE_IN_OUT_STANDARD = 'cubic-bezier(0.34, 0.69, 0.1, 1)';\n}\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\nimport { AnimationDuration } from './animation-consts';\n\nexport const fadeMotion: AnimationTriggerMetadata = trigger('fadeMotion', [\n transition(':enter', [style({ opacity: 0 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 0 }))])\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nimport { AnimationCurves } from './animation-consts';\n\nexport const collapseMotion: AnimationTriggerMetadata = trigger('collapseMotion', [\n state('expanded', style({ height: '*' })),\n state('collapsed', style({ height: 0, overflow: 'hidden' })),\n state('hidden', style({ height: 0, overflow: 'hidden', borderTopWidth: '0' })),\n transition('expanded => collapsed', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('expanded => hidden', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('collapsed => expanded', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('hidden => expanded', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`))\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from './animation-consts';\n\nexport interface ThumbAnimationProps {\n transform: number;\n width: number;\n}\n\nexport const thumbMotion: AnimationTriggerMetadata = trigger('thumbMotion', [\n state('from', style({ transform: 'translateX({{ transform }}px)', width: '{{ width }}px' }), {\n params: { transform: 0, width: 0 }\n }),\n\n state('to', style({ transform: 'translateX({{ transform }}px)', width: '{{ width }}px' }), {\n params: { transform: 100, width: 0 }\n }),\n\n transition('from => to', animate(`300ms ${AnimationCurves.EASE_IN_OUT}`))\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animation-consts';\n\n// The animation starts from the line and eases in and out to the left or right.\nexport const scaleXMotion: AnimationTriggerMetadata = trigger('scaleXMotion', [\n transition('* => enter', [\n style({\n opacity: 0,\n transform: 'scaleX(0.9)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scaleX(1)'\n })\n )\n ]),\n transition('enter => *', [\n style({\n opacity: 1,\n transform: 'scaleX(1)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scaleX(0.9)'\n })\n )\n ])\n]);\n\n// The animation starts from the line and eases in and out upward or downward.\nexport const scaleYMotion: AnimationTriggerMetadata = trigger('scaleYMotion', [\n transition('* => enter', [\n style({\n opacity: 0,\n transform: 'scaleY(0.9)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scaleY(1)'\n })\n )\n ]),\n transition('enter => *', [\n style({\n opacity: 1,\n transform: 'scaleY(1)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scaleY(0.9)'\n })\n )\n ])\n]);\n\n// The animation starts from the point and eases in and out.\nexport const scaleMotion: AnimationTriggerMetadata = trigger('scaleMotion', [\n transition('* => enter', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('enter => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n]);\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport const POSITION_MAP: { [key: string]: ConnectionPositionPair } = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topCenter: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topLeft: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n topRight: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n rightTop: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n rightBottom: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomCenter: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomLeft: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n bottomRight: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n leftTop: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n leftBottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n} as {} as { [key: string]: ConnectionPositionPair };\n\nexport const EXPANDED_DROPDOWN_POSITIONS = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topLeft, POSITION_MAP.topRight];\n","import { ThyPlacement, ConnectedPositionOffset } from './interface';\nimport { POSITION_MAP } from './overlay-position-map';\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nconst connectionFallbackPositionsMap: { [key: string]: ThyPlacement[] } = {\n top: ['topLeft', 'topRight', 'bottom', 'bottomLeft', 'bottomRight'],\n topLeft: ['top', 'topRight', 'bottomLeft', 'bottom', 'bottomRight'],\n topRight: ['top', 'topLeft', 'bottomRight', 'bottom', 'bottomLeft'],\n bottom: ['bottomLeft', 'bottomRight', 'top', 'topLeft', 'topRight'],\n bottomLeft: ['bottom', 'bottomRight', 'topLeft', 'top', 'topRight'],\n bottomRight: ['bottom', 'bottomLeft', 'topRight', 'top', 'topLeft'],\n left: ['leftTop', 'leftBottom', 'right', 'rightTop', 'rightBottom'],\n leftTop: ['left', 'leftBottom', 'rightTop', 'right', 'rightBottom'],\n leftBottom: ['left', 'leftTop', 'rightBottom', 'right', 'rightTop'],\n right: ['rightTop', 'rightBottom', 'left', 'leftTop', 'leftBottom'],\n rightTop: ['right', 'rightBottom', 'leftTop', 'left', 'leftBottom'],\n rightBottom: ['right', 'rightTop', 'leftBottom', 'left', 'leftTop']\n};\n\nexport function buildConnectedPositionOffset(placement: ThyPlacement, offset: number): ConnectedPositionOffset {\n const connectedPositionOffset: ConnectedPositionOffset = {};\n if (placement.startsWith('top')) {\n connectedPositionOffset.offsetY = -offset;\n } else if (placement.startsWith('bottom')) {\n connectedPositionOffset.offsetY = offset;\n } else if (placement.startsWith('left')) {\n connectedPositionOffset.offsetX = -offset;\n } else if (placement.startsWith('right')) {\n connectedPositionOffset.offsetX = offset;\n } else {\n // do nothings\n }\n return connectedPositionOffset;\n}\n\nexport function buildConnectedPositionPair(placement: ThyPlacement, offset?: number, panelClassPrefix?: string): ConnectionPositionPair {\n const position: ConnectionPositionPair = {\n ...POSITION_MAP[placement],\n ...(offset ? buildConnectedPositionOffset(placement, offset) : null)\n };\n if (panelClassPrefix) {\n position.panelClass = `${panelClassPrefix}-${placement}`;\n }\n return position;\n}\n\nexport function getFallbackPlacements(placement: ThyPlacement): ThyPlacement[] {\n return connectionFallbackPositionsMap[placement] || [];\n}\n\n/**\n * get flexible positions by placement, return placement position and it's fallback connection position\n * @example\n * getFlexiblePositions('top', 10, 'thy-overlay')\n * [{topPosition}, {topLeftPosition}, {topRightPosition}, {bottomPosition}, {bottomLeftPosition}, {bottomRightPosition},]\n * @returns [ConnectionPositionPair]\n */\nexport function getFlexiblePositions(placement: ThyPlacement, offset?: number, panelClassPrefix?: string): ConnectionPositionPair[] {\n const fallbackPlacements = getFallbackPlacements(placement);\n\n return [placement, ...fallbackPlacements].map(placementName => {\n return buildConnectedPositionPair(placementName, offset, panelClassPrefix);\n });\n}\n\nexport function getPlacementByPosition(position: ConnectionPositionPair) {\n const keyList = ['originX', 'originY', 'overlayX', 'overlayY'];\n for (const placement in POSITION_MAP) {\n if (keyList.every(key => position[key] === POSITION_MAP[placement][key])) {\n return placement;\n }\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Platform, normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nexport type ThyOverlayTrigger = 'hover' | 'focus' | 'click';\n\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });\n\nconst longPressTime = 500;\n\nexport abstract class ThyOverlayDirectiveBase {\n protected elementRef: ElementRef;\n private initialized = false;\n /** Trigger Overlay */\n protected _trigger: ThyOverlayTrigger = 'click';\n public get trigger() {\n return this._trigger;\n }\n public set trigger(value: ThyOverlayTrigger) {\n this._trigger = value;\n // Trigger reinitialize when trigger changed which can't contain first\n if (this.initialized) {\n this.clearEventListeners();\n this.initialize();\n }\n }\n\n protected overlayRef: OverlayRef;\n protected manualListeners = new Map<string, EventListenerOrEventListenerObject>();\n protected ngUnsubscribe$ = new Subject<void>();\n protected focusMonitor: FocusMonitor;\n protected platform: Platform;\n protected ngZone: NgZone;\n protected showDelay? = 100;\n protected hideDelay? = 100;\n protected touchendHideDelay? = 0;\n protected disabled = false;\n protected showTimeoutId: number | null | SafeAny;\n protected hideTimeoutId: number | null | SafeAny;\n protected changeDetectorRef: ChangeDetectorRef;\n protected isAutoCloseOnMobileTouch: boolean = false;\n\n /**\n * The overlay keep opened when the mouse moves to the overlay container\n */\n protected overlayPin: boolean;\n\n /** create overlay, you can use popover service or overlay*/\n // abstract createOverlay(): OverlayRef;\n\n abstract show(delay?: number): void;\n abstract hide(delay?: number): void;\n\n private clearEventListeners() {\n this.manualListeners.forEach((listener, event) => {\n this.elementRef.nativeElement.removeEventListener(event, listener);\n });\n this.manualListeners.clear();\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n private clearTimer() {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n }\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n }\n\n if (this.longPressTimeoutId) {\n clearTimeout(this.longPressTimeoutId);\n }\n }\n\n private touchStartTime: number;\n\n private longPressTimeoutId: number | null | SafeAny;\n\n private isTouchMoving: boolean = false;\n\n constructor(\n elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n overlayPin?: boolean,\n changeDetectorRef?: ChangeDetectorRef\n ) {\n this.elementRef = elementRef;\n this.platform = platform;\n this.focusMonitor = focusMonitor;\n this.ngZone = ngZone;\n this.overlayPin = overlayPin;\n this.changeDetectorRef = changeDetectorRef;\n }\n\n initialize() {\n this.initialized = true;\n const element: HTMLElement = this.elementRef.nativeElement;\n if (!this.platform.IOS && !this.platform.ANDROID) {\n if (this.trigger === 'hover') {\n this.manualListeners\n .set('mouseenter', () => {\n this.show();\n })\n .set('mouseleave', (event: MouseEvent) => {\n // Delay 100ms to avoid the overlay being closed immediately when the cursor is moved to the overlay container\n this.hide();\n const overlayElement: HTMLElement = this.overlayRef && this.overlayRef.overlayElement;\n if (overlayElement && this.overlayPin) {\n fromEvent(overlayElement, 'mouseenter')\n .pipe(take(1))\n .subscribe(() => {\n this.clearTimer();\n fromEvent(overlayElement, 'mouseleave')\n .pipe(take(1))\n .subscribe(() => {\n this.hide();\n });\n });\n }\n // if showDelay is too long and mouseleave immediately, overlayRef is not exist, we should clearTimeout\n if (!this.overlayRef) {\n this.clearTimer();\n }\n });\n } else if (this.trigger === 'focus') {\n this.focusMonitor\n .monitor(this.elementRef)\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n this.ngZone.run(() => this.hide(0));\n } else {\n this.ngZone.run(() => this.show());\n }\n });\n // this.manualListeners.set('focus', () => this.show());\n // this.manualListeners.set('blur', () => this.hide());\n } else if (this.trigger === 'click') {\n this.manualListeners.set('click', () => {\n this.show();\n });\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw new Error(`${this.trigger} is not supporteed, possible values are: hover | focus | click.`);\n }\n } else {\n const touchendListener = () => {\n const touchEndTime = Date.now();\n const touchDuration = touchEndTime - this.touchStartTime;\n\n if (touchDuration < longPressTime && !this.isTouchMoving) {\n // tap\n this.handleTouch();\n }\n\n clearTimeout(this.longPressTimeoutId);\n this.isTouchMoving = false;\n };\n // Reserve extensions for mobile in the future\n this.manualListeners\n .set('touchend', touchendListener)\n .set('touchcancel', touchendListener)\n .set('touchmove', () => {\n this.isTouchMoving = true;\n clearTimeout(this.longPressTimeoutId);\n })\n .set('touchstart', () => {\n this.touchStartTime = Date.now();\n this.isTouchMoving = false;\n\n // 设置一个定时器,如果在一定时间内没有触发 touchend 事件,则判断为长按\n this.longPressTimeoutId = setTimeout(() => {\n // long press\n if (!this.isTouchMoving) {\n this.handleTouch();\n }\n }, longPressTime);\n });\n }\n\n this.manualListeners.forEach((listener, event) =>\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // Element touch listeners are not passive by default.\n // We never call `preventDefault()` on events, so we're safe making them passive.\n element.addEventListener(event, listener, passiveEventListenerOptions)\n );\n }\n\n private handleTouch() {\n this.show();\n\n if (this.isAutoCloseOnMobileTouch) {\n setTimeout(\n () => {\n this.hide(0);\n },\n this.touchendHideDelay + (isNumber(this.showDelay) ? this.showDelay : 0)\n );\n }\n }\n\n /**\n * Marks that the overlay needs to be checked in the next change detection run.\n * Mainly used for rendering before positioning a overlay, which\n * can be problematic in components with OnPush change detection.\n */\n markForCheck() {\n this.changeDetectorRef?.markForCheck();\n }\n\n dispose(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.clearEventListeners();\n this.clearTimer();\n }\n}\n","import { ESCAPE, helpers } from 'ngx-tethys/util';\nimport { Observable, of, Subject } from 'rxjs';\nimport { filter, finalize, take } from 'rxjs/operators';\n\nimport { GlobalPositionStrategy, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\n\nimport { ThyAbstractOverlayContainer } from './abstract-overlay-container';\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions, ThyAbstractOverlayPosition } from './abstract-overlay.config';\n\nexport abstract class ThyAbstractOverlayRef<\n TComponent = unknown,\n TContainer extends ThyAbstractOverlayContainer = ThyAbstractOverlayContainer,\n TResult = unknown\n> {\n id: string;\n componentInstance: TComponent;\n backdropClosable: boolean;\n disableClose: boolean;\n containerInstance: TContainer;\n\n /**\n * 获取 OverlayRef\n */\n abstract getOverlayRef(): OverlayRef;\n\n /**\n * 关闭当前模态框,若force为true,则canClose无效,强制关闭\n * @param dialogResult\n * @param force\n */\n abstract close(dialogResult?: TResult, force?: boolean): void;\n\n /**\n * 模态框打开后的回调\n */\n abstract afterOpened(): Observable<void>;\n\n /**\n * 模态框关闭后的回调\n */\n abstract afterClosed(): Observable<TResult | undefined>;\n\n /**\n * 模态框关闭前的回调\n */\n abstract beforeClosed(): Observable<TResult | undefined>;\n\n abstract keydownEvents(): Observable<KeyboardEvent>;\n\n /**\n * 点击模态框遮罩层的回调\n */\n abstract backdropClick(): Observable<MouseEvent>;\n\n /**\n * 更新模态框的位置\n * @param position\n */\n abstract updatePosition(position?: ThyAbstractOverlayPosition): this;\n}\n\n// Counter for unique overlay ids.\nconst uniqueIdMap: { [key: string]: number } = {};\n\nfunction getUniqueId(name: string) {\n if (uniqueIdMap[name] !== undefined) {\n uniqueIdMap[name] = uniqueIdMap[name] + 1;\n } else {\n uniqueIdMap[name] = 0;\n }\n return uniqueIdMap[name];\n}\n\nexport abstract class ThyAbstractInternalOverlayRef<\n T,\n TContainer extends ThyAbstractOverlayContainer,\n TResult = undefined\n> extends ThyAbstractOverlayRef<T, TContainer, TResult> {\n /** The instance of component opened into the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n backdropClosable: boolean = this.config.backdropClosable;\n\n /** Whether the user is not allowed to close the dialog. */\n disableClose: boolean = this.config.disableClose;\n\n /** Subject for notifying the user that the dialog has finished opening. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private readonly _afterClosed = new Subject<TResult | undefined>();\n\n /** Subject for notifying the user that the dialog has started closing. */\n private readonly _beforeClosed = new Subject<TResult | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: TResult | undefined;\n\n /** Fetches the position strategy object from the overlay ref. */\n protected getPositionStrategy(): PositionStrategy {\n return this.overlayRef.getConfig().positionStrategy;\n }\n\n constructor(\n private options: ThyAbstractOverlayOptions,\n protected overlayRef: OverlayRef,\n containerInstance: TContainer,\n protected config: ThyAbstractOverlayConfig\n ) {\n super();\n this.containerInstance = containerInstance;\n // Pass the id along to the container.\n this.id = containerInstance.id = config.id ? config.id : `thy-${this.options.name}-${getUniqueId(this.options.name)}`;\n // Emit when opening animation completes\n containerInstance.animationOpeningDone.pipe(take(1)).subscribe(() => {\n this._afterOpened.next();\n if (this.options.disposeWhenClose) {\n this._afterOpened.complete();\n }\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationClosingDone.pipe(take(1)).subscribe(() => {\n if (this.options.disposeWhenClose) {\n this.overlayRef.dispose();\n }\n });\n\n // Dispose overlay when container after destroy\n containerInstance.containerDestroy.pipe(take(1)).subscribe(() => {\n if (this.options.disposeWhenClose) {\n // component element has not been deleted when the component destroy, so use promise wait for component element destroyed\n Promise.resolve().then(() => {\n this.overlayRef.dispose();\n });\n }\n });\n\n overlayRef\n .detachments()\n .pipe(\n finalize(() => {\n this.overlayRef.dispose();\n })\n )\n .subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null;\n });\n\n // ESC close\n overlayRef\n .keydownEvents()\n .pipe(filter(event => event.keyCode === ESCAPE))\n .subscribe(() => {\n if ((this.disableClose !== undefined && !this.disableClose) || this.backdropClosable) {\n this.close();\n }\n });\n }\n\n /**\n * Close the overlay.\n * @param overlayResult Optional result to return to the dialog opener.\n */\n close(overlayResult?: TResult, force?: boolean): void {\n if (force || !this.config.canClose || !!this.config.canClose(overlayResult)) {\n this._result = overlayResult;\n // Transition the backdrop in parallel to the overlay.\n this._beforeClosed.next(overlayResult);\n if (this.options.disposeWhenClose) {\n this._beforeClosed.complete();\n }\n\n this.overlayRef.detachBackdrop();\n this.containerInstance.startExitAnimation();\n }\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished opening.\n */\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<TResult | undefined> {\n return this._afterClosed.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog has started closing.\n */\n beforeClosed(): Observable<TResult | undefined> {\n return this._beforeClosed.asObservable();\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n return this.overlayRef.backdropClick();\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this.overlayRef.keydownEvents();\n }\n\n /** Get overlay ref */\n getOverlayRef() {\n return this.overlayRef;\n }\n\n /**\n * Updates the overlay's position when is GlobalPositionStrategy\n * @param position New overlay position.\n */\n updateGlobalPosition(position?: ThyAbstractOverlayPosition): this {\n const strategy = this.getPositionStrategy() as GlobalPositionStrategy;\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !(strategy instanceof GlobalPositionStrategy)) {\n throw new Error(`current strategy is not GlobalPositionStrategy`);\n }\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this.overlayRef.updatePosition();\n\n return this;\n }\n}\n","import { Direction } from '@angular/cdk/bidi';\nimport { ViewContainerRef } from '@angular/core';\n\nexport interface ThyAbstractOverlayPosition {\n /** Override for the overlay's top position. */\n top?: string;\n\n /** Override for the overlay's bottom position. */\n bottom?: string;\n\n /** Override for the overlay's left position. */\n left?: string;\n\n /** Override for the overlay's right position. */\n right?: string;\n}\n\nexport class ThyAbstractOverlayConfig<TData = unknown> {\n /**\n * 当前的组件的 viewContainerRef,指定后弹出的组件的父注入器为当前组件的注入器\n * @description.en-us Where the attached component should live in Angular's *logical* component tree.This affects what is available for injection and the change detection order for the component instantiated inside of the overlay. This does not affect where the overlay content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /**\n * 弹出框的唯一标识\n * @description.en-us ID for the overlay. If omitted, a unique one will be generated.\n */\n id?: string;\n\n /**\n * overlay panel 类名\n * @description.en-us Custom class for the overlay pane.\n */\n panelClass?: string | string[] = '';\n\n /** Custom class for the overlay component's host element. */\n hostClass?: string | string[];\n\n /**\n * 是否有幕布\n * @description.en-us Whether the overlay has a backdrop.\n */\n hasBackdrop? = true;\n\n /**\n * 自定义幕布的样式\n * @description.en-us Custom class for the backdrop.\n */\n backdropClass?: string | string[] = '';\n\n /**\n * @description 点击幕布或者按ESC键是否自动关闭弹出框,hasBackdrop=true 时该参数起作用\n * @description.en-us Whether the user can use escape or clicking on the backdrop to close the overlay.\n */\n backdropClosable? = true;\n\n /** Whether the user can use escape or clicking on the backdrop to close the overlay. */\n disableClose? = false;\n\n /**\n * 自定义弹出框的宽度\n * @default 660px\n * @description.en-us Width of the overlay.\n */\n width? = '';\n\n /**\n * 自定义弹出框的高度\n * @default 85vh\n * @description.en-us Height of the overlay.\n */\n height? = '';\n\n /**\n * 弹出框最小宽度\n * @description.en-us Min-width of the overlay. If a number is provided, pixel units are assumed.\n */\n minWidth?: number | string;\n\n /**\n * 弹出框最小高度\n * @description.en-us Min-height of the overlay. If a number is provided, pixel units are assumed.\n */\n minHeight?: number | string;\n\n /**\n * 弹出框最大宽度\n * @description.en-us Max-width of the overlay. If a number is provided, pixel units are assumed. Defaults to 80vw\n */\n maxWidth?: number | string;\n\n /**\n * 弹出框最大高度\n * @default 85vh\n * @description.en-us Max-height of the overlay. If a number is provided, pixel units are assumed.\n */\n maxHeight?: number | string;\n\n /**\n * 传入的初始化状态,弹出组件的变量会自动赋值,在 ngOnInit 生命周期钩子可以获取到,构造函数获取不到\n * @description.en-us Data being injected into the child component.\n */\n initialState?: TData | null = null;\n\n /** Layout direction for the overlay's content. */\n direction?: Direction;\n\n /** ID of the element that describes the overlay. */\n ariaDescribedBy?: string | null = null;\n\n /** Aria label to assign to the overlay element */\n ariaLabel?: string | null = null;\n\n /** Whether the overlay should focus the first focusable element on open. */\n autoFocus? = true;\n\n /**\n * Whether the overlay should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus? = true;\n\n /**\n * Control the previously-focused element focusing process.\n */\n restoreFocusOptions?: FocusOptions = { preventScroll: true };\n\n /**\n * 切换浏览器导航是否自动关闭弹出框\n * @description.en-us Whether the overlay should close when the user goes backwards/forwards in history.Note that this usually doesn't include clicking on links (unless the user is using the `HashLocationStrategy`).\n */\n closeOnNavigation? = true;\n\n /**\n * 关闭弹窗前的回调函数,返回 false 可阻止关闭弹窗\n */\n canClose?: (result?: unknown) => boolean;\n\n /**\n * 设置当提供的位置均不适合时是否可以将覆盖层推到屏幕上\n * @description.en-us Sets whether the overlay can be pushed on-screen if none of the provided positions fit\n * @default true\n */\n canPush? = true;\n}\n\nexport interface ThyAbstractOverlayOptions {\n /** component name, e.g. dialog | popover | slide */\n name: string;\n /** Whether enable animation */\n animationEnabled: boolean;\n /** Whether dispose cdk overlay ref when close upper overlay */\n disposeWhenClose: boolean;\n}\n","import { Observable, Subject } from 'rxjs';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, ComponentRef, EmbeddedViewRef, EventEmitter } from '@angular/core';\n\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from './abstract-overlay.config';\nimport { ThyPortalOutlet } from './portal-directives';\n\nexport function throwPopoverContentAlreadyAttachedError(name: string) {\n throw Error(`Attempting to attach ${name} content after content is already attached`);\n}\n\nexport abstract class ThyAbstractOverlayContainer<TData = unknown> {\n id?: string;\n\n animationState: string;\n\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n containerDestroy = new Subject<void>();\n\n abstract config: ThyAbstractOverlayConfig<TData>;\n\n /**portal outlet */\n abstract portalOutlet: ThyPortalOutlet;\n\n /**\n * Opening overlay animation done\n */\n abstract animationOpeningDone: Observable<AnimationEvent>;\n\n /**\n * Closing overlay animation done\n */\n abstract animationClosingDone: Observable<AnimationEvent>;\n\n /** Before attach content(TemplatePortal or ComponentPortal) portal to portalOutlet*/\n abstract beforeAttachPortal(): void;\n\n /** Before detach content*/\n beforeDetachPortal() {}\n\n constructor(\n private options: ThyAbstractOverlayOptions,\n protected changeDetectorRef: ChangeDetectorRef\n ) {}\n\n /**\n * Attach a TemplatePortal as content to this overlay container.\n * @param portal Portal to be attached as the overlay content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (this.portalOutlet.hasAttached()) {\n throwPopoverContentAlreadyAttachedError(this.options.name);\n }\n\n this.beforeAttachPortal();\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /**\n * Attach a ComponentPortal as content to this overlay container.\n * @param portal Portal to be attached as the overlay content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwPopoverContentAlreadyAttachedError(this.options.name);\n }\n this.beforeAttachPortal();\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n startExitAnimation() {\n if (this.options.animationEnabled) {\n this.animationState = 'exit';\n } else {\n // this.animationClosingDone.\n }\n this.beforeDetachPortal();\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n destroy() {\n this.containerDestroy.next();\n }\n}\n","import { coerceArray, concatArray, FunctionProp, keyBy } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\n\nimport { ComponentType, Overlay, OverlayConfig, OverlayRef, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { Injector, TemplateRef, reflectComponentType } from '@angular/core';\n\nimport { ThyAbstractOverlayContainer } from './abstract-overlay-container';\nimport { ThyAbstractOverlayRef } from './abstract-overlay-ref';\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from './abstract-overlay.config';\nimport { SafeAny } from 'ngx-tethys/types';\n\nexport type ComponentTypeOrTemplateRef<T> = ComponentType<T> | TemplateRef<T>;\n\nexport abstract class ThyAbstractOverlayService<TConfig extends ThyAbstractOverlayConfig, TContainer extends ThyAbstractOverlayContainer> {\n private openedOverlays: ThyAbstractOverlayRef<unknown, TContainer>[] = [];\n\n private readonly _afterAllClosed = new Subject<void>();\n\n private readonly _afterOpened = new Subject<ThyAbstractOverlayRef<any, TContainer>>();\n\n constructor(\n protected options: ThyAbstractOverlayOptions, // component name, e.g: dialog | popover | slide\n protected overlay: Overlay,\n protected injector: Injector,\n protected defaultConfig: TConfig,\n public scrollStrategy?: FunctionProp<ScrollStrategy>\n ) {}\n\n /** Build cdk overlay config by config */\n protected abstract buildOverlayConfig(config: TConfig): OverlayConfig;\n\n /** Attach overlay container to overlay*/\n protected abstract attachOverlayContainer(overlay: OverlayRef, config: TConfig): TContainer;\n\n /** Create abstract overlay ref by cdk overlay, container and config */\n protected abstract createAbstractOverlayRef<T, TResult>(\n overlayRef: OverlayRef,\n containerInstance: TContainer,\n config: TConfig\n ): ThyAbstractOverlayRef<T, TContainer, TResult>;\n\n /** Create injector for component content */\n protected abstract createInjector<T>(\n config: TConfig,\n overlayRef: ThyAbstractOverlayRef<T, TContainer>,\n containerInstance: TContainer\n ): Injector;\n\n /** Attach component or template ref to overlay container */\n protected attachOverlayContent<T, TResult>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n containerInstance: TContainer,\n overlayRef: OverlayRef,\n config: TConfig\n ): ThyAbstractOverlayRef<T, TContainer, TResult> {\n // Create a reference to the overlay we're creating in order to give the user a handle\n // to modify and close it.\n const abstractOverlayRef = this.createAbstractOverlayRef<T, TResult>(overlayRef, containerInstance, config);\n\n // When the backdrop is clicked, we want to close it.\n if (config.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => {\n if (\n (abstractOverlayRef.disableClose !== undefined && !abstractOverlayRef.disableClose) ||\n abstractOverlayRef.backdropClosable\n ) {\n this.close();\n }\n });\n }\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n containerInstance.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null, <any>{\n $implicit: config.initialState,\n [`${this.options.name}Ref`]: abstractOverlayRef\n })\n );\n } else {\n const injector = this.createInjector<T>(config, abstractOverlayRef, containerInstance);\n const contentRef = containerInstance.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector)\n );\n if (config.initialState) {\n const metadata = reflectComponentType(componentOrTemplateRef);\n const inputsByKey = keyBy(metadata.inputs as SafeAny, 'propName');\n Object.keys(config.initialState).forEach(key => {\n const value = (config.initialState as SafeAny)[key];\n if (inputsByKey[key]) {\n contentRef.setInput(key, value);\n } else {\n (contentRef.instance as SafeAny)[key] = value;\n }\n });\n }\n if (config.hostClass) {\n const hostClass = coerceArray(config.hostClass);\n contentRef.location.nativeElement.classList.add(...hostClass);\n }\n abstractOverlayRef.componentInstance = contentRef.instance;\n }\n\n return abstractOverlayRef;\n }\n\n protected removeOpenedOverlay(overlayRef: ThyAbstractOverlayRef<any, TContainer>) {\n const index = this.openedOverlays.indexOf(overlayRef);\n\n if (index > -1) {\n this.openedOverlays.splice(index, 1);\n\n if (!this.openedOverlays.length) {\n this._afterAllClosed.next();\n }\n }\n }\n\n protected getAbstractOverlayById(id: string): ThyAbstractOverlayRef<any, TContainer> | undefined {\n return this.openedOverlays.find(overlay => overlay.id === id);\n }\n\n protected getAbstractOverlays(): ThyAbstractOverlayRef<any, TContainer>[] {\n return this.openedOverlays;\n }\n\n protected buildBaseOverlayConfig(config: TConfig, defaultPanelClass?: string | string[]): OverlayConfig {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.overlay.position().global(),\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n width: config.width,\n height: config.height,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n disposeOnNavigation: config.closeOnNavigation\n });\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass;\n }\n\n overlayConfig.panelClass = concatArray(config.panelClass, defaultPanelClass);\n\n return overlayConfig;\n }\n\n protected openOverlay<T, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: TConfig\n ): ThyAbstractOverlayRef<T, TContainer, TResult> {\n config = { ...this.defaultConfig, ...config };\n if (config.id && this.getAbstractOverlayById(config.id)) {\n throw Error(`${this.options.name} with id ${config.id} exists already. The ${this.options.name} id must be unique.`);\n }\n const overlayConfig: OverlayConfig = this.buildOverlayConfig(config);\n const overlayRef = this.overlay.create(overlayConfig);\n\n const overlayContainer = this.attachOverlayContainer(overlayRef, config);\n const abstractOverlayRef = this.attachOverlayContent<T, TResult>(componentOrTemplateRef, overlayContainer, overlayRef, config);\n\n this.openedOverlays.push(abstractOverlayRef);\n abstractOverlayRef.afterClosed().subscribe(() => {\n this.removeOpenedOverlay(abstractOverlayRef);\n });\n this._afterOpened.next(abstractOverlayRef);\n\n return abstractOverlayRef;\n }\n\n /**\n * 所有弹出框完全关闭后的回调\n * @returns\n */\n afterAllClosed() {\n return this._afterAllClosed;\n }\n\n /**\n * 打开弹出框之后的回调\n * @returns\n */\n afterOpened() {\n return this._afterOpened;\n }\n\n /**\n * 关闭弹出框,若force为true,则canClose无效,强制关闭\n * @param result\n * @param force\n */\n close<T>(result?: T, force?: boolean) {\n if (this.openedOverlays.length > 0) {\n const lastOverlayRef = this.openedOverlays[this.openedOverlays.length - 1];\n if (lastOverlayRef) {\n lastOverlayRef.close(result, force);\n }\n }\n }\n\n /**\n * 关闭所有打开的弹出框\n */\n closeAll() {\n let i = this.openedOverlays.length;\n while (i--) {\n // 不需要操作 openedOverlays, 因为 close 会触发 afterClosed 的订阅\n // 触发订阅后会自动从 openedOverlays 中移除\n this.openedOverlays[i].close();\n }\n }\n\n dispose(): void {\n this.closeAll();\n this._afterAllClosed.complete();\n this._afterOpened.complete();\n }\n}\n","/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n/* eslint-disable @angular-eslint/directive-class-suffix */\nimport { CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Directive, EmbeddedViewRef } from '@angular/core';\n\n@Directive({\n selector: '[thyPortalOutlet]',\n exportAs: 'thyPortalOutlet',\n standalone: true,\n inputs: ['portal: thyPortalOutlet']\n})\nexport class ThyPortalOutlet extends CdkPortalOutlet {\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this['_viewContainerRef'];\n\n const ref = viewContainerRef.createComponent(portal.component, {\n index: viewContainerRef.length,\n injector: portal.injector || viewContainerRef.injector,\n projectableNodes: portal.projectableNodes || undefined\n });\n\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this['_viewContainerRef']) {\n this['_getRootNode']().appendChild((ref.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n }\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this['_attachedRef'] = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n}\n","import { Injectable, Renderer2, ElementRef } from '@angular/core';\nimport { Dictionary } from 'ngx-tethys/types';\n\n@Injectable()\nexport class UpdateHostClassService {\n private _classNames: string[] = [];\n\n private _hostElement: HTMLElement;\n\n constructor(private renderer: Renderer2) {}\n\n initializeElement(element: HTMLElement | ElementRef<HTMLElement>) {\n if (element instanceof ElementRef) {\n this._hostElement = element.nativeElement;\n } else {\n this._hostElement = element;\n }\n return this;\n }\n\n updateClass(classNames: string[]) {\n if (this._classNames) {\n this._classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this._classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this._classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Dictionary<boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this._hostElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this._hostElement, className);\n return this;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyTranslate {\n instant(key: string | Array<string>, interpolateParams?: object): string | any {\n return key;\n }\n\n get(key: string | Array<string>, interpolateParams?: object): Observable<string | any> {\n return new Observable((observer: Observer<any>) => {\n observer.next(key);\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const META_KEY = '__THY_META__';\nexport const ROOT_STATE_TOKEN = new InjectionToken<any>('ROOT_STATE_TOKEN');\nexport const FEATURE_STATE_TOKEN = new InjectionToken<any>('FEATURE_STATE_TOKEN');\n\nexport interface StoreMetaInfo {\n actions: any;\n path: string;\n children: any[];\n instance: any;\n}\n\nexport interface ActionResult {}\n\n// export type Newable<T> = { new (...args: any[]): T };\n","import { StoreMetaInfo, META_KEY } from './types';\n\nexport function findAndCreateStoreMetadata(target: any): StoreMetaInfo {\n if (!target.hasOwnProperty(META_KEY)) {\n const defaultMetadata: StoreMetaInfo = {\n actions: {},\n path: null,\n children: [],\n instance: null\n };\n target[META_KEY] = defaultMetadata;\n }\n return target[META_KEY];\n}\n","// @dynamic\nexport class MiniActionState {\n private static actionName = '';\n\n public static changeAction(actionName: string) {\n this.actionName = actionName;\n }\n\n public static getActionName() {\n return this.actionName;\n }\n}\n","import { META_KEY } from './types';\nimport { findAndCreateStoreMetadata } from './utils';\nimport { Observable, Observer, of, throwError } from 'rxjs';\nimport { map, shareReplay, catchError, exhaustMap } from 'rxjs/operators';\nimport { MiniActionState } from './action-state';\nimport { ActionContext, ActionStatus } from './actions-stream';\n\n/**\n * Decorates a method with a action information.\n */\nexport function MiniAction() {\n return function (target: any, name: string, descriptor: TypedPropertyDescriptor<any>) {\n const meta = findAndCreateStoreMetadata(target);\n let action: { type: string };\n // default use function name as action type\n if (!action) {\n action = {\n type: name\n };\n }\n const type = action.type;\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !action.type) {\n throw new Error(`Action ${action.type} is missing a static \"type\" property`);\n }\n\n const originalFn = descriptor.value;\n meta.actions[type] = {\n fn: name,\n originalFn: originalFn,\n type\n };\n\n descriptor.value = function (...args: any[]) {\n MiniActionState.changeAction(`${target.constructor.name}-${name}`);\n let result = originalFn.call(this, ...args);\n if (result instanceof Observable) {\n result = result.pipe(\n catchError(error => {\n return of({ status: ActionStatus.Errored, action: action, error: error });\n }),\n shareReplay(),\n exhaustMap((result: ActionContext | any) => {\n if (result && result.status === ActionStatus.Errored) {\n return throwError(result.error);\n } else {\n return of(result);\n }\n })\n );\n result.subscribe();\n }\n return result;\n };\n };\n}\n","import { helpers } from 'ngx-tethys/util';\nimport { BehaviorSubject, from, Observable, Observer, Subscription } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\n\nimport { Directive, isDevMode, OnDestroy } from '@angular/core';\n\nimport { MiniAction } from './action';\nimport { MiniActionState } from './action-state';\nimport { META_KEY, StoreMetaInfo } from './types';\n\n@Directive()\nexport class MiniStore<T = unknown> implements Observer<T>, OnDestroy {\n initialStateCache: any;\n\n public state$: BehaviorSubject<T>;\n\n public reduxToolEnabled = isDevMode();\n\n private _defaultStoreInstanceId: string;\n\n constructor(initialState: any) {\n this._defaultStoreInstanceId = this._getClassName();\n this.state$ = new BehaviorSubject<T>(initialState);\n this.initialStateCache = { ...initialState };\n }\n\n get snapshot() {\n return this.state$.getValue();\n }\n\n public dispatch(type: string, payload?: any): Observable<any> {\n MiniActionState.changeAction(`${this._defaultStoreInstanceId}-${type}`);\n const result = this._dispatch({\n type: type,\n payload: payload\n });\n result.subscribe();\n return result;\n }\n\n private _dispatch(action: any): Observable<any> {\n const meta = this[META_KEY] as StoreMetaInfo;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !meta) {\n throw new Error(`${META_KEY} is not found, current store has not action`);\n }\n const actionMeta = meta.actions[action.type];\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !actionMeta) {\n throw new Error(`${action.type} is not found`);\n }\n // let result: any = this[actionMeta.fn](this.snapshot, action.payload);\n let result: any = actionMeta.originalFn.call(this, this.snapshot, action.payload);\n\n if (result instanceof Promise) {\n result = from(result);\n }\n\n if (result instanceof Observable) {\n result = result.pipe(map(r => r));\n } else {\n result = new Observable((observer: Observer<any>) => {\n observer.next({});\n });\n }\n return result.pipe(shareReplay());\n }\n\n select<TResult>(selector: (state: T) => TResult): Observable<TResult> | Observable<TResult>;\n select(selector: string | any): Observable<any> {\n return this.state$.pipe(map(selector), distinctUntilChanged());\n }\n\n next(state: T) {\n this.state$.next(state);\n }\n\n error(error: any) {\n this.state$.error(error);\n }\n\n complete() {\n this.state$.complete();\n }\n\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription {\n return this.state$.subscribe(next, error, complete);\n }\n\n /**\n * set store new state\n *\n * @example\n * this.setState(newState);\n * this.setState({ users: produce(this.snapshot.users).add(user) });\n * this.setState((state) => {\n * return {\n * users: produce(state.users).add(user)\n * }\n * });\n * @param fn\n */\n setState(fn: Partial<T> | ((newState: T) => Partial<T>)): void {\n if (helpers.isFunction(fn)) {\n this.next({\n ...this.snapshot,\n ...(fn as any)(this.snapshot)\n });\n } else {\n this.next({\n ...this.snapshot,\n ...(fn as T)\n });\n }\n }\n\n getState(): T {\n return this.snapshot;\n }\n\n @MiniAction()\n clearState() {\n this.setState(this.initialStateCache);\n }\n\n ngOnDestroy() {}\n\n /**\n * You can override this method if you want to give your container instance a custom id.\n * The returned id must be unique in the application.\n */\n getStoreInstanceId(): string {\n return this._defaultStoreInstanceId;\n }\n\n private _getClassName(): string {\n const name = this.constructor.name || /function (.+)\\(/.exec(this.constructor + '')[1];\n return name;\n }\n}\n","export const presetThemeColors = ['primary', 'success', 'info', 'warning', 'danger', 'default', 'light'] as const;\n\nexport type ThyThemeColor = (typeof presetThemeColors)[number];\n\nexport function isThemeColor(color: ThyThemeColor | string): boolean {\n return presetThemeColors.includes(color as ThyThemeColor);\n}\n\nexport const presetTextColors = [...presetThemeColors, 'secondary', 'muted', 'desc', 'placeholder', 'white', 'body'] as const;\n\nexport type ThyTextColor = (typeof presetTextColors)[number];\n\nexport function isTextColor(color: ThyTextColor | string): boolean {\n return presetTextColors.includes(color as ThyTextColor);\n}\n\nexport const presetBgColors = [...presetThemeColors, 'secondary', 'dark', 'lighter', 'bright', 'content', 'white', 'transparent'] as const;\n\nexport type ThyBgColor = (typeof presetBgColors)[number];\n\nexport function isBgColor(color: ThyBgColor | string): boolean {\n return presetBgColors.includes(color as ThyBgColor);\n}\n","import { isNumber } from 'ngx-tethys/util';\nexport type ThySpacingSize = 'zero' | 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xlg' | number;\n\nconst SPACING_SIZES_MAP = {\n zero: 0,\n xxs: 4,\n xs: 8,\n sm: 12,\n md: 16,\n lg: 20,\n xlg: 24\n};\n\nexport function getNumericSize(size: ThySpacingSize, defaultSize?: ThySpacingSize): number {\n if (isNumber(size)) {\n return size;\n }\n return SPACING_SIZES_MAP[size] !== undefined ? SPACING_SIZES_MAP[size] : SPACING_SIZES_MAP[defaultSize];\n}\n","import { MonoTypeOperatorFunction, SchedulerLike } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * for issue: https://github.com/angular/angular/issues/44351\n * only for test mock debounceTime\n */\nexport class DebounceTimeWrapper {\n public static debounceTime<T>(dueTime: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T> {\n return debounceTime(dueTime, scheduler);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty","i1.ThyClickDispatcher"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-core.mjs","sources":["../../../src/core/behaviors/constructor.ts","../../../src/core/behaviors/decorators.ts","../../../src/core/behaviors/disabled.ts","../../../src/core/behaviors/initialized.ts","../../../src/core/behaviors/loading-done.ts","../../../src/core/behaviors/tabindex.ts","../../../src/core/behaviors/unsubscribe.ts","../../../src/core/behaviors/control-value-accessor.ts","../../../src/core/behaviors/focus-control.ts","../../../src/core/behaviors/mixin.ts","../../../src/core/scroll-to.service.ts","../../../src/core/click-positioner.ts","../../../src/core/request-animation.ts","../../../src/core/scroll.ts","../../../src/core/animation/animation-consts.ts","../../../src/core/animation/fade.ts","../../../src/core/animation/collapse.ts","../../../src/core/animation/thumb.ts","../../../src/core/animation/zoom.ts","../../../src/core/overlay/overlay-position-map.ts","../../../src/core/overlay/utils.ts","../../../src/core/overlay/overlay.directive.ts","../../../src/core/overlay/abstract-overlay-ref.ts","../../../src/core/overlay/abstract-overlay.config.ts","../../../src/core/overlay/abstract-overlay-container.ts","../../../src/core/overlay/abstract-overlay.service.ts","../../../src/core/overlay/portal-directives.ts","../../../src/core/update-host-class.service.ts","../../../src/core/translate.ts","../../../src/core/store/types.ts","../../../src/core/store/utils.ts","../../../src/core/store/action-state.ts","../../../src/core/store/action.ts","../../../src/core/store/store.ts","../../../src/core/color/color.ts","../../../src/core/spacing/spacing.ts","../../../src/core/debounce-time.ts","../../../src/core/ngx-tethys-core.ts"],"sourcesContent":["export type Constructor<T> = new (...args: any[]) => T;\n\nexport class AnonymousClass {}\n\nexport class MixinBase {}\n","import { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, coerceCssPixelValue, coerceNumberValue } from 'ngx-tethys/util';\n\n/**\n * @deprecated Please use {transform: coerceBooleanProperty} in Input instead\n */\nexport function InputBoolean(): PropertyDecorator {\n return makePropDecorator('InputBoolean', coerceBooleanProperty);\n}\n\nexport function InputCssPixel(): PropertyDecorator {\n return makePropDecorator('InputCssPixel', coerceCssPixelValue);\n}\n\n/**\n * @deprecated Please use {transform: numberAttribute} in Input instead\n */\nexport function InputNumber(): PropertyDecorator {\n return makePropDecorator('InputNumber', (value: number) => {\n return coerceNumberValue(value, null);\n });\n}\n\nfunction makePropDecorator<T, D>(\n name: string,\n transform: (v: T, target?: SafeAny) => D,\n initialize?: PropertyDecorator\n): PropertyDecorator {\n function propDecorator(target: SafeAny, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\n initialize && initialize(target, propName);\n const privatePropName = `$$__${propName}`;\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\n console.warn(`The property \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\n }\n }\n\n Object.defineProperty(target, privatePropName, {\n configurable: true,\n writable: true\n });\n\n return {\n get(): string {\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\n },\n set(value: T): void {\n const finalValue = transform(value, target);\n if (originalDescriptor && originalDescriptor.set) {\n originalDescriptor.set.bind(this)(finalValue);\n }\n this[privatePropName] = finalValue;\n }\n };\n }\n\n return propDecorator;\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Constructor } from './constructor';\n\nexport interface ThyCanDisable {\n thyDisabled: boolean;\n}\n\nexport type ThyCanDisableCtor = Constructor<ThyCanDisable>;\n\n/** Mixin to augment a directive with a `disable` property. */\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): ThyCanDisableCtor & T {\n return class extends base {\n private _thyDisabled = false;\n\n get thyDisabled() {\n return this._thyDisabled;\n }\n\n set thyDisabled(value: any) {\n this._thyDisabled = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { OnInit } from '@angular/core';\nimport { Constructor } from './constructor';\n\nexport interface ThyInitialized extends OnInit {\n initialized: boolean;\n}\n\nexport function mixinInitialized<T extends Constructor<{}>>(base: T): Constructor<ThyInitialized> & T {\n return class Mixin extends base {\n initialized = false;\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n ngOnInit(): void {\n this.initialized = true;\n }\n };\n}\n","import { Subject, Observable } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { Constructor } from './constructor';\n\nexport interface ThyLoadingDone {\n loadingDone: boolean;\n}\n\nexport function mixinLoadingDone<T extends Constructor<{}>>(base: T): Constructor<ThyLoadingDone> & T {\n return class Mixin extends base {\n loadingDone = false;\n\n setLoadingDone(value: boolean) {\n this.loadingDone = value;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Constructor, MixinBase } from './constructor';\nimport { mixinDisabled, ThyCanDisable } from './disabled';\n\nexport interface ThyHasTabIndex {\n tabIndex: number;\n\n defaultTabIndex: number;\n}\n\ntype HasTabIndexCtor = Constructor<ThyHasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends Constructor<ThyCanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n return class extends base implements ThyHasTabIndex {\n private _tabIndex: number = defaultTabIndex;\n\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.thyDisabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n\nexport const TabIndexMixinBase: Constructor<ThyHasTabIndex> & Constructor<ThyCanDisable> & typeof MixinBase = mixinTabIndex(\n mixinDisabled(MixinBase)\n);\n","import { Subject } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { Constructor } from './constructor';\n\nexport interface ThyUnsubscribe extends OnDestroy {\n ngUnsubscribe$: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with a `disableRipple` property.\n * @deprecated please use `takeUntilDestroyed`\n */\nexport function mixinUnsubscribe<T extends Constructor<{}>>(base: T): Constructor<ThyUnsubscribe> & T {\n return class Mixin extends base {\n ngUnsubscribe$ = new Subject<void>();\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n ngUnsubscribeReinitialize() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n this.ngUnsubscribe$ = new Subject();\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n };\n}\n","export class AbstractControlValueAccessor<TValue = unknown> {\n protected onChangeFn: (value: TValue) => void = () => {};\n protected onTouchedFn: () => void = () => {};\n\n private __onBlurValidation: () => void = () => {};\n\n registerOnChange(fn: (value: TValue) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = () => {\n fn();\n this.__onBlurValidation();\n };\n }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { ElementRef, inject } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nclass HostFocusControl {\n private ngUnsubscribe$ = new Subject<void>();\n\n private monitorElement: HTMLElement | ElementRef<HTMLElement>;\n\n elementRef = inject(ElementRef);\n\n focusMonitor = inject(FocusMonitor);\n\n focusChanged: (origin: FocusOrigin) => void = () => {};\n\n constructor(checkChildren: boolean = true, element?: HTMLElement | ElementRef<HTMLElement>) {\n this.monitorElement = element || this.elementRef.nativeElement;\n\n this.focusMonitor\n .monitor(this.monitorElement as SafeAny, checkChildren)\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((origin: FocusOrigin) => {\n this.focusChanged(origin);\n });\n }\n\n focusVia(element: HTMLElement | ElementRef<HTMLElement>, origin: FocusOrigin, options?: FocusOptions): void {\n this.focusMonitor.focusVia(element as SafeAny, origin, options);\n }\n\n destroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n this.focusMonitor.stopMonitoring(this.monitorElement as SafeAny);\n }\n}\n\nexport function useHostFocusControl(checkChildren?: boolean, element?: HTMLElement | ElementRef<HTMLElement>): HostFocusControl {\n return new HostFocusControl(checkChildren, element);\n}\n","import { Constructor } from './constructor';\nimport { AbstractControlValueAccessor } from './control-value-accessor';\nimport { ThyCanDisable, mixinDisabled } from './disabled';\nimport { ThyHasTabIndex, mixinTabIndex } from './tabindex';\n\nexport const TabIndexDisabledControlValueAccessorMixin: Constructor<ThyHasTabIndex> &\n Constructor<ThyCanDisable> &\n typeof AbstractControlValueAccessor = mixinTabIndex(mixinDisabled(AbstractControlValueAccessor));\n","import { Injectable } from '@angular/core';\nimport { dom } from 'ngx-tethys/util';\n\nexport class ScrollToService {\n static _customScrollToElement(targetElement: HTMLElement, containerElement: HTMLElement) {\n const containerOffset = dom.getElementOffset(containerElement);\n const targetOffset = dom.getElementOffset(targetElement);\n // 选择项在顶部隐藏的偏移量 > 0 表示被顶部遮住隐藏\n const topOffset = containerOffset.top - targetOffset.top;\n // 选择项在底部隐藏的偏移量 > 0 表示被底部遮住隐藏\n const bottomOffset = targetOffset.top + targetOffset.height - (containerOffset.top + containerOffset.height);\n // 隐藏后滚动展示 targetElement 的偏移量,避免紧挨着头部或者底部\n const viewOffset = targetOffset.height;\n if (topOffset > 0) {\n containerElement.scrollTop = containerElement.scrollTop - topOffset - viewOffset;\n } else if (bottomOffset > 0) {\n containerElement.scrollTop = containerElement.scrollTop + bottomOffset + viewOffset;\n }\n }\n static scrollToElement(targetElement: HTMLElement, containerElement: HTMLElement) {\n if (targetElement) {\n this._customScrollToElement(targetElement, containerElement);\n // if (targetElement.scrollIntoView) {\n // targetElement.scrollIntoView({\n // behavior: 'smooth',\n // block: 'center'\n // });\n // } else {\n // this._customScrollToElement(targetElement, containerElement);\n // }\n }\n }\n}\n","import { Injectable, Inject, NgZone } from '@angular/core';\nimport { ThyClickDispatcher } from './event-dispatchers/index';\n\nexport interface ThyClickPosition {\n x: number;\n y: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyClickPositioner {\n private lastPosition: ThyClickPosition = null;\n\n private initialized = false;\n\n constructor(private clickDispatcher: ThyClickDispatcher) {}\n\n get lastClickPosition(): ThyClickPosition | null {\n return this.lastPosition;\n }\n\n runTaskUseLastPosition(task: (position?: ThyClickPosition) => void) {\n setTimeout(() => {\n task(this.lastClickPosition);\n });\n }\n\n initialize(): void {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n this.clickDispatcher.clicked(0).subscribe((event: MouseEvent) => {\n this.lastPosition = { x: event.clientX, y: event.clientY };\n });\n }\n}\n","const availablePrefixes = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n return function (callback: FrameRequestCallback): number {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall) as any; // setTimeout type warn\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter(key => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\nexport function cancelRequestAnimationFrame(id: number): any {\n if (typeof window === 'undefined') {\n return null;\n }\n if (window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(id);\n }\n const prefix = availablePrefixes.filter(\n key => `${key}CancelAnimationFrame` in window || `${key}CancelRequestAnimationFrame` in window\n )[0];\n\n return prefix\n ? ((window as any)[`${prefix}CancelAnimationFrame`] || (window as any)[`${prefix}CancelRequestAnimationFrame`])\n // @ts-ignore\n .call(this, id)\n : clearTimeout(id);\n}\n\nexport const reqAnimFrame = getRequestAnimationFrame();\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone } from '@angular/core';\nimport { reqAnimFrame } from './request-animation';\n\nexport type EasyingFn = (t: number, b: number, c: number, d: number) => number;\n\nfunction easeInOutCubic(t: number, b: number, c: number, d: number): number {\n const cc = c - b;\n let tt = t / (d / 2);\n if (tt < 1) {\n return (cc / 2) * tt * tt * tt + b;\n } else {\n return (cc / 2) * ((tt -= 2) * tt * tt + 2) + b;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyScrollService {\n private document: Document;\n\n constructor(\n @Inject(DOCUMENT) document: any,\n private ngZone: NgZone\n ) {\n this.document = document;\n }\n\n /** Set the position of the scroll bar of `element`. */\n setScrollTop(element: Element | Window, topValue: number = 0): void {\n if (element === window) {\n this.document.body.scrollTop = topValue;\n this.document.documentElement.scrollTop = topValue;\n } else {\n (element as Element).scrollTop = topValue;\n }\n }\n\n /** Get the position of the scoll bar of `element`. */\n getScroll(element?: Element | Window, top: boolean = true): number {\n const target = element ? element : window;\n const prop = top ? 'pageYOffset' : 'pageXOffset';\n const method = top ? 'scrollTop' : 'scrollLeft';\n const isWindow = target === window;\n let ret = isWindow ? target[prop] : target[method];\n if (isWindow && typeof ret !== 'number') {\n ret = this.document.documentElement[method];\n }\n return ret;\n }\n\n /**\n * Scroll `element` to some position with animation.\n *\n * @param container container, `window` by default\n * @param topValue Scroll to `top`, 0 by default\n * @param easing Transition curve, `easeInOutCubic` by default\n * @param callback callback invoked when transition is done\n */\n scrollTo(container: Element | Window, topValue: number = 0, easing?: EasyingFn, callback?: () => void): void {\n const target = container ? container : window;\n const scrollTop = this.getScroll(target);\n const startTime = Date.now();\n const frameFunc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n this.setScrollTop(target, (easing || easeInOutCubic)(time, scrollTop, topValue, 450));\n if (time < 450) {\n this.ngZone.runOutsideAngular(() => reqAnimFrame(frameFunc));\n } else {\n if (callback) {\n // The `frameFunc` is called within the `<root>` zone, but we have to re-enter\n // the Angular zone when calling custom callback to be backwards-compatible.\n this.ngZone.run(() => callback());\n }\n }\n };\n // The `requestAnimationFrame` triggers change detection, but setting\n // `document.scrollTop` doesn't require Angular to run `ApplicationRef.tick()`.\n this.ngZone.runOutsideAngular(() => reqAnimFrame(frameFunc));\n }\n}\n","export class AnimationDuration {\n static SLOW = '0.3s'; // Modal\n static BASE = '0.2s';\n static FAST = '0.1s'; // Tooltip\n}\n\nexport class AnimationCurves {\n static EASE_BASE_OUT = 'cubic-bezier(0.7, 0.3, 0.1, 1)';\n static EASE_BASE_IN = 'cubic-bezier(0.9, 0, 0.3, 0.7)';\n static EASE_OUT = 'cubic-bezier(0.215, 0.61, 0.355, 1)';\n static EASE_IN = 'cubic-bezier(0.55, 0.055, 0.675, 0.19)';\n static EASE_IN_OUT = 'cubic-bezier(0.645, 0.045, 0.355, 1)';\n static EASE_OUT_BACK = 'cubic-bezier(0.12, 0.4, 0.29, 1.46)';\n static EASE_IN_BACK = 'cubic-bezier(0.71, -0.46, 0.88, 0.6)';\n static EASE_IN_OUT_BACK = 'cubic-bezier(0.71, -0.46, 0.29, 1.46)';\n static EASE_OUT_CIRC = 'cubic-bezier(0.08, 0.82, 0.17, 1)';\n static EASE_IN_CIRC = 'cubic-bezier(0.6, 0.04, 0.98, 0.34)';\n static EASE_IN_OUT_CIRC = 'cubic-bezier(0.78, 0.14, 0.15, 0.86)';\n static EASE_OUT_QUINT = 'cubic-bezier(0.23, 1, 0.32, 1)';\n static EASE_IN_QUINT = 'cubic-bezier(0.755, 0.05, 0.855, 0.06)';\n static EASE_IN_OUT_QUINT = 'cubic-bezier(0.86, 0, 0.07, 1)';\n static EASE_IN_OUT_STANDARD = 'cubic-bezier(0.34, 0.69, 0.1, 1)';\n}\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\nimport { AnimationDuration } from './animation-consts';\n\nexport const fadeMotion: AnimationTriggerMetadata = trigger('fadeMotion', [\n transition(':enter', [style({ opacity: 0 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 0 }))])\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nimport { AnimationCurves } from './animation-consts';\n\nexport const collapseMotion: AnimationTriggerMetadata = trigger('collapseMotion', [\n state('expanded', style({ height: '*' })),\n state('collapsed', style({ height: 0, overflow: 'hidden' })),\n state('hidden', style({ height: 0, overflow: 'hidden', borderTopWidth: '0' })),\n transition('expanded => collapsed', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('expanded => hidden', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('collapsed => expanded', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('hidden => expanded', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`))\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from './animation-consts';\n\nexport interface ThumbAnimationProps {\n transform: number;\n width: number;\n}\n\nexport const thumbMotion: AnimationTriggerMetadata = trigger('thumbMotion', [\n state('from', style({ transform: 'translateX({{ transform }}px)', width: '{{ width }}px' }), {\n params: { transform: 0, width: 0 }\n }),\n\n state('to', style({ transform: 'translateX({{ transform }}px)', width: '{{ width }}px' }), {\n params: { transform: 100, width: 0 }\n }),\n\n transition('from => to', animate(`300ms ${AnimationCurves.EASE_IN_OUT}`))\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animation-consts';\n\n// The animation starts from the line and eases in and out to the left or right.\nexport const scaleXMotion: AnimationTriggerMetadata = trigger('scaleXMotion', [\n transition('* => enter', [\n style({\n opacity: 0,\n transform: 'scaleX(0.9)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scaleX(1)'\n })\n )\n ]),\n transition('enter => *', [\n style({\n opacity: 1,\n transform: 'scaleX(1)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scaleX(0.9)'\n })\n )\n ])\n]);\n\n// The animation starts from the line and eases in and out upward or downward.\nexport const scaleYMotion: AnimationTriggerMetadata = trigger('scaleYMotion', [\n transition('* => enter', [\n style({\n opacity: 0,\n transform: 'scaleY(0.9)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scaleY(1)'\n })\n )\n ]),\n transition('enter => *', [\n style({\n opacity: 1,\n transform: 'scaleY(1)'\n }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scaleY(0.9)'\n })\n )\n ])\n]);\n\n// The animation starts from the point and eases in and out.\nexport const scaleMotion: AnimationTriggerMetadata = trigger('scaleMotion', [\n transition('* => enter', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('enter => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n]);\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport const POSITION_MAP: { [key: string]: ConnectionPositionPair } = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topCenter: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topLeft: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n topRight: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n rightTop: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n rightBottom: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomCenter: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomLeft: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n bottomRight: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n leftTop: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n leftBottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n} as {} as { [key: string]: ConnectionPositionPair };\n\nexport const EXPANDED_DROPDOWN_POSITIONS = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topLeft, POSITION_MAP.topRight];\n","import { ThyPlacement, ConnectedPositionOffset } from './interface';\nimport { POSITION_MAP } from './overlay-position-map';\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nconst connectionFallbackPositionsMap: { [key: string]: ThyPlacement[] } = {\n top: ['topLeft', 'topRight', 'bottom', 'bottomLeft', 'bottomRight'],\n topLeft: ['top', 'topRight', 'bottomLeft', 'bottom', 'bottomRight'],\n topRight: ['top', 'topLeft', 'bottomRight', 'bottom', 'bottomLeft'],\n bottom: ['bottomLeft', 'bottomRight', 'top', 'topLeft', 'topRight'],\n bottomLeft: ['bottom', 'bottomRight', 'topLeft', 'top', 'topRight'],\n bottomRight: ['bottom', 'bottomLeft', 'topRight', 'top', 'topLeft'],\n left: ['leftTop', 'leftBottom', 'right', 'rightTop', 'rightBottom'],\n leftTop: ['left', 'leftBottom', 'rightTop', 'right', 'rightBottom'],\n leftBottom: ['left', 'leftTop', 'rightBottom', 'right', 'rightTop'],\n right: ['rightTop', 'rightBottom', 'left', 'leftTop', 'leftBottom'],\n rightTop: ['right', 'rightBottom', 'leftTop', 'left', 'leftBottom'],\n rightBottom: ['right', 'rightTop', 'leftBottom', 'left', 'leftTop']\n};\n\nexport function buildConnectedPositionOffset(placement: ThyPlacement, offset: number): ConnectedPositionOffset {\n const connectedPositionOffset: ConnectedPositionOffset = {};\n if (placement.startsWith('top')) {\n connectedPositionOffset.offsetY = -offset;\n } else if (placement.startsWith('bottom')) {\n connectedPositionOffset.offsetY = offset;\n } else if (placement.startsWith('left')) {\n connectedPositionOffset.offsetX = -offset;\n } else if (placement.startsWith('right')) {\n connectedPositionOffset.offsetX = offset;\n } else {\n // do nothings\n }\n return connectedPositionOffset;\n}\n\nexport function buildConnectedPositionPair(placement: ThyPlacement, offset?: number, panelClassPrefix?: string): ConnectionPositionPair {\n const position: ConnectionPositionPair = {\n ...POSITION_MAP[placement],\n ...(offset ? buildConnectedPositionOffset(placement, offset) : null)\n };\n if (panelClassPrefix) {\n position.panelClass = `${panelClassPrefix}-${placement}`;\n }\n return position;\n}\n\nexport function getFallbackPlacements(placement: ThyPlacement): ThyPlacement[] {\n return connectionFallbackPositionsMap[placement] || [];\n}\n\n/**\n * get flexible positions by placement, return placement position and it's fallback connection position\n * @example\n * getFlexiblePositions('top', 10, 'thy-overlay')\n * [{topPosition}, {topLeftPosition}, {topRightPosition}, {bottomPosition}, {bottomLeftPosition}, {bottomRightPosition},]\n * @returns [ConnectionPositionPair]\n */\nexport function getFlexiblePositions(placement: ThyPlacement, offset?: number, panelClassPrefix?: string): ConnectionPositionPair[] {\n const fallbackPlacements = getFallbackPlacements(placement);\n\n return [placement, ...fallbackPlacements].map(placementName => {\n return buildConnectedPositionPair(placementName, offset, panelClassPrefix);\n });\n}\n\nexport function getPlacementByPosition(position: ConnectionPositionPair) {\n const keyList = ['originX', 'originY', 'overlayX', 'overlayY'];\n for (const placement in POSITION_MAP) {\n if (keyList.every(key => position[key] === POSITION_MAP[placement][key])) {\n return placement;\n }\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Platform, normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nexport type ThyOverlayTrigger = 'hover' | 'focus' | 'click';\n\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });\n\nconst longPressTime = 500;\n\nexport abstract class ThyOverlayDirectiveBase {\n protected elementRef: ElementRef;\n private initialized = false;\n /** Trigger Overlay */\n protected _trigger: ThyOverlayTrigger = 'click';\n public get trigger() {\n return this._trigger;\n }\n public set trigger(value: ThyOverlayTrigger) {\n this._trigger = value;\n // Trigger reinitialize when trigger changed which can't contain first\n if (this.initialized) {\n this.clearEventListeners();\n this.initialize();\n }\n }\n\n protected overlayRef: OverlayRef;\n protected manualListeners = new Map<string, EventListenerOrEventListenerObject>();\n protected ngUnsubscribe$ = new Subject<void>();\n protected focusMonitor: FocusMonitor;\n protected platform: Platform;\n protected ngZone: NgZone;\n protected showDelay? = 100;\n protected hideDelay? = 100;\n protected touchendHideDelay? = 0;\n protected disabled = false;\n protected showTimeoutId: number | null | SafeAny;\n protected hideTimeoutId: number | null | SafeAny;\n protected changeDetectorRef: ChangeDetectorRef;\n protected isAutoCloseOnMobileTouch: boolean = false;\n\n /**\n * The overlay keep opened when the mouse moves to the overlay container\n */\n protected overlayPin: boolean;\n\n /** create overlay, you can use popover service or overlay*/\n // abstract createOverlay(): OverlayRef;\n\n abstract show(delay?: number): void;\n abstract hide(delay?: number): void;\n\n private clearEventListeners() {\n this.manualListeners.forEach((listener, event) => {\n this.elementRef.nativeElement.removeEventListener(event, listener);\n });\n this.manualListeners.clear();\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n private clearTimer() {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n }\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n }\n\n if (this.longPressTimeoutId) {\n clearTimeout(this.longPressTimeoutId);\n }\n }\n\n private touchStartTime: number;\n\n private longPressTimeoutId: number | null | SafeAny;\n\n private isTouchMoving: boolean = false;\n\n constructor(\n elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n overlayPin?: boolean,\n changeDetectorRef?: ChangeDetectorRef\n ) {\n this.elementRef = elementRef;\n this.platform = platform;\n this.focusMonitor = focusMonitor;\n this.ngZone = ngZone;\n this.overlayPin = overlayPin;\n this.changeDetectorRef = changeDetectorRef;\n }\n\n initialize() {\n this.initialized = true;\n const element: HTMLElement = this.elementRef.nativeElement;\n if (!this.platform.IOS && !this.platform.ANDROID) {\n if (this.trigger === 'hover') {\n this.manualListeners\n .set('mouseenter', () => {\n this.show();\n })\n .set('mouseleave', (event: MouseEvent) => {\n // Delay 100ms to avoid the overlay being closed immediately when the cursor is moved to the overlay container\n this.hide();\n const overlayElement: HTMLElement = this.overlayRef && this.overlayRef.overlayElement;\n if (overlayElement && this.overlayPin) {\n fromEvent(overlayElement, 'mouseenter')\n .pipe(take(1))\n .subscribe(() => {\n this.clearTimer();\n fromEvent(overlayElement, 'mouseleave')\n .pipe(take(1))\n .subscribe(() => {\n this.hide();\n });\n });\n }\n // if showDelay is too long and mouseleave immediately, overlayRef is not exist, we should clearTimeout\n if (!this.overlayRef) {\n this.clearTimer();\n }\n });\n } else if (this.trigger === 'focus') {\n this.focusMonitor\n .monitor(this.elementRef)\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n this.ngZone.run(() => this.hide(0));\n } else {\n this.ngZone.run(() => this.show());\n }\n });\n // this.manualListeners.set('focus', () => this.show());\n // this.manualListeners.set('blur', () => this.hide());\n } else if (this.trigger === 'click') {\n this.manualListeners.set('click', () => {\n this.show();\n });\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw new Error(`${this.trigger} is not supporteed, possible values are: hover | focus | click.`);\n }\n } else {\n const touchendListener = () => {\n const touchEndTime = Date.now();\n const touchDuration = touchEndTime - this.touchStartTime;\n\n if (touchDuration < longPressTime && !this.isTouchMoving) {\n // tap\n this.handleTouch();\n }\n\n clearTimeout(this.longPressTimeoutId);\n this.isTouchMoving = false;\n };\n // Reserve extensions for mobile in the future\n this.manualListeners\n .set('touchend', touchendListener)\n .set('touchcancel', touchendListener)\n .set('touchmove', () => {\n this.isTouchMoving = true;\n clearTimeout(this.longPressTimeoutId);\n })\n .set('touchstart', () => {\n this.touchStartTime = Date.now();\n this.isTouchMoving = false;\n\n // 设置一个定时器,如果在一定时间内没有触发 touchend 事件,则判断为长按\n this.longPressTimeoutId = setTimeout(() => {\n // long press\n if (!this.isTouchMoving) {\n this.handleTouch();\n }\n }, longPressTime);\n });\n }\n\n this.manualListeners.forEach((listener, event) =>\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // Element touch listeners are not passive by default.\n // We never call `preventDefault()` on events, so we're safe making them passive.\n element.addEventListener(event, listener, passiveEventListenerOptions)\n );\n }\n\n private handleTouch() {\n this.show();\n\n if (this.isAutoCloseOnMobileTouch) {\n setTimeout(\n () => {\n this.hide(0);\n },\n this.touchendHideDelay + (isNumber(this.showDelay) ? this.showDelay : 0)\n );\n }\n }\n\n /**\n * Marks that the overlay needs to be checked in the next change detection run.\n * Mainly used for rendering before positioning a overlay, which\n * can be problematic in components with OnPush change detection.\n */\n markForCheck() {\n this.changeDetectorRef?.markForCheck();\n }\n\n dispose(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.clearEventListeners();\n this.clearTimer();\n }\n}\n","import { ESCAPE, helpers } from 'ngx-tethys/util';\nimport { Observable, of, Subject } from 'rxjs';\nimport { filter, finalize, take } from 'rxjs/operators';\n\nimport { GlobalPositionStrategy, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\n\nimport { ThyAbstractOverlayContainer } from './abstract-overlay-container';\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions, ThyAbstractOverlayPosition } from './abstract-overlay.config';\n\nexport abstract class ThyAbstractOverlayRef<\n TComponent = unknown,\n TContainer extends ThyAbstractOverlayContainer = ThyAbstractOverlayContainer,\n TResult = unknown\n> {\n id: string;\n componentInstance: TComponent;\n backdropClosable: boolean;\n disableClose: boolean;\n containerInstance: TContainer;\n\n /**\n * 获取 OverlayRef\n */\n abstract getOverlayRef(): OverlayRef;\n\n /**\n * 关闭当前模态框,若force为true,则canClose无效,强制关闭\n * @param dialogResult\n * @param force\n */\n abstract close(dialogResult?: TResult, force?: boolean): void;\n\n /**\n * 模态框打开后的回调\n */\n abstract afterOpened(): Observable<void>;\n\n /**\n * 模态框关闭后的回调\n */\n abstract afterClosed(): Observable<TResult | undefined>;\n\n /**\n * 模态框关闭前的回调\n */\n abstract beforeClosed(): Observable<TResult | undefined>;\n\n abstract keydownEvents(): Observable<KeyboardEvent>;\n\n /**\n * 点击模态框遮罩层的回调\n */\n abstract backdropClick(): Observable<MouseEvent>;\n\n /**\n * 更新模态框的位置\n * @param position\n */\n abstract updatePosition(position?: ThyAbstractOverlayPosition): this;\n}\n\n// Counter for unique overlay ids.\nconst uniqueIdMap: { [key: string]: number } = {};\n\nfunction getUniqueId(name: string) {\n if (uniqueIdMap[name] !== undefined) {\n uniqueIdMap[name] = uniqueIdMap[name] + 1;\n } else {\n uniqueIdMap[name] = 0;\n }\n return uniqueIdMap[name];\n}\n\nexport abstract class ThyAbstractInternalOverlayRef<\n T,\n TContainer extends ThyAbstractOverlayContainer,\n TResult = undefined\n> extends ThyAbstractOverlayRef<T, TContainer, TResult> {\n /** The instance of component opened into the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n backdropClosable: boolean = this.config.backdropClosable;\n\n /** Whether the user is not allowed to close the dialog. */\n disableClose: boolean = this.config.disableClose;\n\n /** Subject for notifying the user that the dialog has finished opening. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private readonly _afterClosed = new Subject<TResult | undefined>();\n\n /** Subject for notifying the user that the dialog has started closing. */\n private readonly _beforeClosed = new Subject<TResult | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: TResult | undefined;\n\n /** Fetches the position strategy object from the overlay ref. */\n protected getPositionStrategy(): PositionStrategy {\n return this.overlayRef.getConfig().positionStrategy;\n }\n\n constructor(\n private options: ThyAbstractOverlayOptions,\n protected overlayRef: OverlayRef,\n containerInstance: TContainer,\n protected config: ThyAbstractOverlayConfig\n ) {\n super();\n this.containerInstance = containerInstance;\n // Pass the id along to the container.\n this.id = containerInstance.id = config.id ? config.id : `thy-${this.options.name}-${getUniqueId(this.options.name)}`;\n // Emit when opening animation completes\n containerInstance.animationOpeningDone.pipe(take(1)).subscribe(() => {\n this._afterOpened.next();\n if (this.options.disposeWhenClose) {\n this._afterOpened.complete();\n }\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationClosingDone.pipe(take(1)).subscribe(() => {\n if (this.options.disposeWhenClose) {\n this.overlayRef.dispose();\n }\n });\n\n // Dispose overlay when container after destroy\n containerInstance.containerDestroy.pipe(take(1)).subscribe(() => {\n if (this.options.disposeWhenClose) {\n // component element has not been deleted when the component destroy, so use promise wait for component element destroyed\n Promise.resolve().then(() => {\n this.overlayRef.dispose();\n });\n }\n });\n\n overlayRef\n .detachments()\n .pipe(\n finalize(() => {\n this.overlayRef.dispose();\n })\n )\n .subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null;\n });\n\n // ESC close\n overlayRef\n .keydownEvents()\n .pipe(filter(event => event.keyCode === ESCAPE))\n .subscribe(() => {\n if ((this.disableClose !== undefined && !this.disableClose) || this.backdropClosable) {\n this.close();\n }\n });\n }\n\n /**\n * Close the overlay.\n * @param overlayResult Optional result to return to the dialog opener.\n */\n close(overlayResult?: TResult, force?: boolean): void {\n if (force || !this.config.canClose || !!this.config.canClose(overlayResult)) {\n this._result = overlayResult;\n // Transition the backdrop in parallel to the overlay.\n this._beforeClosed.next(overlayResult);\n if (this.options.disposeWhenClose) {\n this._beforeClosed.complete();\n }\n\n this.overlayRef.detachBackdrop();\n this.containerInstance.startExitAnimation();\n }\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished opening.\n */\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<TResult | undefined> {\n return this._afterClosed.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog has started closing.\n */\n beforeClosed(): Observable<TResult | undefined> {\n return this._beforeClosed.asObservable();\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n return this.overlayRef.backdropClick();\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this.overlayRef.keydownEvents();\n }\n\n /** Get overlay ref */\n getOverlayRef() {\n return this.overlayRef;\n }\n\n /**\n * Updates the overlay's position when is GlobalPositionStrategy\n * @param position New overlay position.\n */\n updateGlobalPosition(position?: ThyAbstractOverlayPosition): this {\n const strategy = this.getPositionStrategy() as GlobalPositionStrategy;\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !(strategy instanceof GlobalPositionStrategy)) {\n throw new Error(`current strategy is not GlobalPositionStrategy`);\n }\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this.overlayRef.updatePosition();\n\n return this;\n }\n}\n","import { Direction } from '@angular/cdk/bidi';\nimport { ViewContainerRef } from '@angular/core';\n\nexport interface ThyAbstractOverlayPosition {\n /** Override for the overlay's top position. */\n top?: string;\n\n /** Override for the overlay's bottom position. */\n bottom?: string;\n\n /** Override for the overlay's left position. */\n left?: string;\n\n /** Override for the overlay's right position. */\n right?: string;\n}\n\nexport class ThyAbstractOverlayConfig<TData = unknown> {\n /**\n * 当前的组件的 viewContainerRef,指定后弹出的组件的父注入器为当前组件的注入器\n * @description.en-us Where the attached component should live in Angular's *logical* component tree.This affects what is available for injection and the change detection order for the component instantiated inside of the overlay. This does not affect where the overlay content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /**\n * 弹出框的唯一标识\n * @description.en-us ID for the overlay. If omitted, a unique one will be generated.\n */\n id?: string;\n\n /**\n * overlay panel 类名\n * @description.en-us Custom class for the overlay pane.\n */\n panelClass?: string | string[] = '';\n\n /** Custom class for the overlay component's host element. */\n hostClass?: string | string[];\n\n /**\n * 是否有幕布\n * @description.en-us Whether the overlay has a backdrop.\n */\n hasBackdrop? = true;\n\n /**\n * 自定义幕布的样式\n * @description.en-us Custom class for the backdrop.\n */\n backdropClass?: string | string[] = '';\n\n /**\n * @description 点击幕布或者按ESC键是否自动关闭弹出框,hasBackdrop=true 时该参数起作用\n * @description.en-us Whether the user can use escape or clicking on the backdrop to close the overlay.\n */\n backdropClosable? = true;\n\n /** Whether the user can use escape or clicking on the backdrop to close the overlay. */\n disableClose? = false;\n\n /**\n * 自定义弹出框的宽度\n * @default 660px\n * @description.en-us Width of the overlay.\n */\n width? = '';\n\n /**\n * 自定义弹出框的高度\n * @default 85vh\n * @description.en-us Height of the overlay.\n */\n height? = '';\n\n /**\n * 弹出框最小宽度\n * @description.en-us Min-width of the overlay. If a number is provided, pixel units are assumed.\n */\n minWidth?: number | string;\n\n /**\n * 弹出框最小高度\n * @description.en-us Min-height of the overlay. If a number is provided, pixel units are assumed.\n */\n minHeight?: number | string;\n\n /**\n * 弹出框最大宽度\n * @description.en-us Max-width of the overlay. If a number is provided, pixel units are assumed. Defaults to 80vw\n */\n maxWidth?: number | string;\n\n /**\n * 弹出框最大高度\n * @default 85vh\n * @description.en-us Max-height of the overlay. If a number is provided, pixel units are assumed.\n */\n maxHeight?: number | string;\n\n /**\n * 传入的初始化状态,弹出组件的变量会自动赋值,在 ngOnInit 生命周期钩子可以获取到,构造函数获取不到\n * @description.en-us Data being injected into the child component.\n */\n initialState?: TData | null = null;\n\n /** Layout direction for the overlay's content. */\n direction?: Direction;\n\n /** ID of the element that describes the overlay. */\n ariaDescribedBy?: string | null = null;\n\n /** Aria label to assign to the overlay element */\n ariaLabel?: string | null = null;\n\n /** Whether the overlay should focus the first focusable element on open. */\n autoFocus? = true;\n\n /**\n * Whether the overlay should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus? = true;\n\n /**\n * Control the previously-focused element focusing process.\n */\n restoreFocusOptions?: FocusOptions = { preventScroll: true };\n\n /**\n * 切换浏览器导航是否自动关闭弹出框\n * @description.en-us Whether the overlay should close when the user goes backwards/forwards in history.Note that this usually doesn't include clicking on links (unless the user is using the `HashLocationStrategy`).\n */\n closeOnNavigation? = true;\n\n /**\n * 关闭弹窗前的回调函数,返回 false 可阻止关闭弹窗\n */\n canClose?: (result?: unknown) => boolean;\n\n /**\n * 设置当提供的位置均不适合时是否可以将覆盖层推到屏幕上\n * @description.en-us Sets whether the overlay can be pushed on-screen if none of the provided positions fit\n * @default true\n */\n canPush? = true;\n}\n\nexport interface ThyAbstractOverlayOptions {\n /** component name, e.g. dialog | popover | slide */\n name: string;\n /** Whether enable animation */\n animationEnabled: boolean;\n /** Whether dispose cdk overlay ref when close upper overlay */\n disposeWhenClose: boolean;\n}\n","import { Observable, Subject } from 'rxjs';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, ComponentRef, EmbeddedViewRef, EventEmitter } from '@angular/core';\n\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from './abstract-overlay.config';\nimport { ThyPortalOutlet } from './portal-directives';\n\nexport function throwPopoverContentAlreadyAttachedError(name: string) {\n throw Error(`Attempting to attach ${name} content after content is already attached`);\n}\n\nexport abstract class ThyAbstractOverlayContainer<TData = unknown> {\n id?: string;\n\n animationState: string;\n\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n containerDestroy = new Subject<void>();\n\n abstract config: ThyAbstractOverlayConfig<TData>;\n\n /**portal outlet */\n abstract portalOutlet: ThyPortalOutlet;\n\n /**\n * Opening overlay animation done\n */\n abstract animationOpeningDone: Observable<AnimationEvent>;\n\n /**\n * Closing overlay animation done\n */\n abstract animationClosingDone: Observable<AnimationEvent>;\n\n /** Before attach content(TemplatePortal or ComponentPortal) portal to portalOutlet*/\n abstract beforeAttachPortal(): void;\n\n /** Before detach content*/\n beforeDetachPortal() {}\n\n constructor(\n private options: ThyAbstractOverlayOptions,\n protected changeDetectorRef: ChangeDetectorRef\n ) {}\n\n /**\n * Attach a TemplatePortal as content to this overlay container.\n * @param portal Portal to be attached as the overlay content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (this.portalOutlet.hasAttached()) {\n throwPopoverContentAlreadyAttachedError(this.options.name);\n }\n\n this.beforeAttachPortal();\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /**\n * Attach a ComponentPortal as content to this overlay container.\n * @param portal Portal to be attached as the overlay content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwPopoverContentAlreadyAttachedError(this.options.name);\n }\n this.beforeAttachPortal();\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n startExitAnimation() {\n if (this.options.animationEnabled) {\n this.animationState = 'exit';\n } else {\n // this.animationClosingDone.\n }\n this.beforeDetachPortal();\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n destroy() {\n this.containerDestroy.next();\n }\n}\n","import { coerceArray, concatArray, FunctionProp, keyBy } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\n\nimport { ComponentType, Overlay, OverlayConfig, OverlayRef, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { Injector, TemplateRef, reflectComponentType } from '@angular/core';\n\nimport { ThyAbstractOverlayContainer } from './abstract-overlay-container';\nimport { ThyAbstractOverlayRef } from './abstract-overlay-ref';\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from './abstract-overlay.config';\nimport { SafeAny } from 'ngx-tethys/types';\n\nexport type ComponentTypeOrTemplateRef<T> = ComponentType<T> | TemplateRef<T>;\n\nexport abstract class ThyAbstractOverlayService<TConfig extends ThyAbstractOverlayConfig, TContainer extends ThyAbstractOverlayContainer> {\n private openedOverlays: ThyAbstractOverlayRef<unknown, TContainer>[] = [];\n\n private readonly _afterAllClosed = new Subject<void>();\n\n private readonly _afterOpened = new Subject<ThyAbstractOverlayRef<any, TContainer>>();\n\n constructor(\n protected options: ThyAbstractOverlayOptions, // component name, e.g: dialog | popover | slide\n protected overlay: Overlay,\n protected injector: Injector,\n protected defaultConfig: TConfig,\n public scrollStrategy?: FunctionProp<ScrollStrategy>\n ) {}\n\n /** Build cdk overlay config by config */\n protected abstract buildOverlayConfig(config: TConfig): OverlayConfig;\n\n /** Attach overlay container to overlay*/\n protected abstract attachOverlayContainer(overlay: OverlayRef, config: TConfig): TContainer;\n\n /** Create abstract overlay ref by cdk overlay, container and config */\n protected abstract createAbstractOverlayRef<T, TResult>(\n overlayRef: OverlayRef,\n containerInstance: TContainer,\n config: TConfig\n ): ThyAbstractOverlayRef<T, TContainer, TResult>;\n\n /** Create injector for component content */\n protected abstract createInjector<T>(\n config: TConfig,\n overlayRef: ThyAbstractOverlayRef<T, TContainer>,\n containerInstance: TContainer\n ): Injector;\n\n /** Attach component or template ref to overlay container */\n protected attachOverlayContent<T, TResult>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n containerInstance: TContainer,\n overlayRef: OverlayRef,\n config: TConfig\n ): ThyAbstractOverlayRef<T, TContainer, TResult> {\n // Create a reference to the overlay we're creating in order to give the user a handle\n // to modify and close it.\n const abstractOverlayRef = this.createAbstractOverlayRef<T, TResult>(overlayRef, containerInstance, config);\n\n // When the backdrop is clicked, we want to close it.\n if (config.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => {\n if (\n (abstractOverlayRef.disableClose !== undefined && !abstractOverlayRef.disableClose) ||\n abstractOverlayRef.backdropClosable\n ) {\n this.close();\n }\n });\n }\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n containerInstance.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null, <any>{\n $implicit: config.initialState,\n [`${this.options.name}Ref`]: abstractOverlayRef\n })\n );\n } else {\n const injector = this.createInjector<T>(config, abstractOverlayRef, containerInstance);\n const contentRef = containerInstance.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector)\n );\n if (config.initialState) {\n const metadata = reflectComponentType(componentOrTemplateRef);\n const inputsByTemplateName = keyBy(metadata.inputs as SafeAny, 'templateName');\n const inputsByPropName = keyBy(metadata.inputs as SafeAny, 'propName');\n Object.keys(config.initialState).forEach(key => {\n const value = (config.initialState as SafeAny)[key];\n const input: { templateName?: string; propName?: string } = inputsByTemplateName[key] || inputsByPropName[key];\n if (input) {\n contentRef.setInput(input.templateName, value);\n } else {\n (contentRef.instance as SafeAny)[key] = value;\n }\n });\n }\n if (config.hostClass) {\n const hostClass = coerceArray(config.hostClass);\n contentRef.location.nativeElement.classList.add(...hostClass);\n }\n abstractOverlayRef.componentInstance = contentRef.instance;\n }\n\n return abstractOverlayRef;\n }\n\n protected removeOpenedOverlay(overlayRef: ThyAbstractOverlayRef<any, TContainer>) {\n const index = this.openedOverlays.indexOf(overlayRef);\n\n if (index > -1) {\n this.openedOverlays.splice(index, 1);\n\n if (!this.openedOverlays.length) {\n this._afterAllClosed.next();\n }\n }\n }\n\n protected getAbstractOverlayById(id: string): ThyAbstractOverlayRef<any, TContainer> | undefined {\n return this.openedOverlays.find(overlay => overlay.id === id);\n }\n\n protected getAbstractOverlays(): ThyAbstractOverlayRef<any, TContainer>[] {\n return this.openedOverlays;\n }\n\n protected buildBaseOverlayConfig(config: TConfig, defaultPanelClass?: string | string[]): OverlayConfig {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.overlay.position().global(),\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n width: config.width,\n height: config.height,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n disposeOnNavigation: config.closeOnNavigation\n });\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass;\n }\n\n overlayConfig.panelClass = concatArray(config.panelClass, defaultPanelClass);\n\n return overlayConfig;\n }\n\n protected openOverlay<T, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: TConfig\n ): ThyAbstractOverlayRef<T, TContainer, TResult> {\n config = { ...this.defaultConfig, ...config };\n if (config.id && this.getAbstractOverlayById(config.id)) {\n throw Error(`${this.options.name} with id ${config.id} exists already. The ${this.options.name} id must be unique.`);\n }\n const overlayConfig: OverlayConfig = this.buildOverlayConfig(config);\n const overlayRef = this.overlay.create(overlayConfig);\n\n const overlayContainer = this.attachOverlayContainer(overlayRef, config);\n const abstractOverlayRef = this.attachOverlayContent<T, TResult>(componentOrTemplateRef, overlayContainer, overlayRef, config);\n\n this.openedOverlays.push(abstractOverlayRef);\n abstractOverlayRef.afterClosed().subscribe(() => {\n this.removeOpenedOverlay(abstractOverlayRef);\n });\n this._afterOpened.next(abstractOverlayRef);\n\n return abstractOverlayRef;\n }\n\n /**\n * 所有弹出框完全关闭后的回调\n * @returns\n */\n afterAllClosed() {\n return this._afterAllClosed;\n }\n\n /**\n * 打开弹出框之后的回调\n * @returns\n */\n afterOpened() {\n return this._afterOpened;\n }\n\n /**\n * 关闭弹出框,若force为true,则canClose无效,强制关闭\n * @param result\n * @param force\n */\n close<T>(result?: T, force?: boolean) {\n if (this.openedOverlays.length > 0) {\n const lastOverlayRef = this.openedOverlays[this.openedOverlays.length - 1];\n if (lastOverlayRef) {\n lastOverlayRef.close(result, force);\n }\n }\n }\n\n /**\n * 关闭所有打开的弹出框\n */\n closeAll() {\n let i = this.openedOverlays.length;\n while (i--) {\n // 不需要操作 openedOverlays, 因为 close 会触发 afterClosed 的订阅\n // 触发订阅后会自动从 openedOverlays 中移除\n this.openedOverlays[i].close();\n }\n }\n\n dispose(): void {\n this.closeAll();\n this._afterAllClosed.complete();\n this._afterOpened.complete();\n }\n}\n","/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n/* eslint-disable @angular-eslint/directive-class-suffix */\nimport { CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Directive, EmbeddedViewRef } from '@angular/core';\n\n@Directive({\n selector: '[thyPortalOutlet]',\n exportAs: 'thyPortalOutlet',\n standalone: true,\n inputs: ['portal: thyPortalOutlet']\n})\nexport class ThyPortalOutlet extends CdkPortalOutlet {\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this['_viewContainerRef'];\n\n const ref = viewContainerRef.createComponent(portal.component, {\n index: viewContainerRef.length,\n injector: portal.injector || viewContainerRef.injector,\n projectableNodes: portal.projectableNodes || undefined\n });\n\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this['_viewContainerRef']) {\n this['_getRootNode']().appendChild((ref.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n }\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this['_attachedRef'] = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n}\n","import { Injectable, Renderer2, ElementRef } from '@angular/core';\nimport { Dictionary } from 'ngx-tethys/types';\n\n@Injectable()\nexport class UpdateHostClassService {\n private _classNames: string[] = [];\n\n private _hostElement: HTMLElement;\n\n constructor(private renderer: Renderer2) {}\n\n initializeElement(element: HTMLElement | ElementRef<HTMLElement>) {\n if (element instanceof ElementRef) {\n this._hostElement = element.nativeElement;\n } else {\n this._hostElement = element;\n }\n return this;\n }\n\n updateClass(classNames: string[]) {\n if (this._classNames) {\n this._classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this._classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this._classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Dictionary<boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this._hostElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this._hostElement, className);\n return this;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyTranslate {\n instant(key: string | Array<string>, interpolateParams?: object): string | any {\n return key;\n }\n\n get(key: string | Array<string>, interpolateParams?: object): Observable<string | any> {\n return new Observable((observer: Observer<any>) => {\n observer.next(key);\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const META_KEY = '__THY_META__';\nexport const ROOT_STATE_TOKEN = new InjectionToken<any>('ROOT_STATE_TOKEN');\nexport const FEATURE_STATE_TOKEN = new InjectionToken<any>('FEATURE_STATE_TOKEN');\n\nexport interface StoreMetaInfo {\n actions: any;\n path: string;\n children: any[];\n instance: any;\n}\n\nexport interface ActionResult {}\n\n// export type Newable<T> = { new (...args: any[]): T };\n","import { StoreMetaInfo, META_KEY } from './types';\n\nexport function findAndCreateStoreMetadata(target: any): StoreMetaInfo {\n if (!target.hasOwnProperty(META_KEY)) {\n const defaultMetadata: StoreMetaInfo = {\n actions: {},\n path: null,\n children: [],\n instance: null\n };\n target[META_KEY] = defaultMetadata;\n }\n return target[META_KEY];\n}\n","// @dynamic\nexport class MiniActionState {\n private static actionName = '';\n\n public static changeAction(actionName: string) {\n this.actionName = actionName;\n }\n\n public static getActionName() {\n return this.actionName;\n }\n}\n","import { META_KEY } from './types';\nimport { findAndCreateStoreMetadata } from './utils';\nimport { Observable, Observer, of, throwError } from 'rxjs';\nimport { map, shareReplay, catchError, exhaustMap } from 'rxjs/operators';\nimport { MiniActionState } from './action-state';\nimport { ActionContext, ActionStatus } from './actions-stream';\n\n/**\n * Decorates a method with a action information.\n */\nexport function MiniAction() {\n return function (target: any, name: string, descriptor: TypedPropertyDescriptor<any>) {\n const meta = findAndCreateStoreMetadata(target);\n let action: { type: string };\n // default use function name as action type\n if (!action) {\n action = {\n type: name\n };\n }\n const type = action.type;\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !action.type) {\n throw new Error(`Action ${action.type} is missing a static \"type\" property`);\n }\n\n const originalFn = descriptor.value;\n meta.actions[type] = {\n fn: name,\n originalFn: originalFn,\n type\n };\n\n descriptor.value = function (...args: any[]) {\n MiniActionState.changeAction(`${target.constructor.name}-${name}`);\n let result = originalFn.call(this, ...args);\n if (result instanceof Observable) {\n result = result.pipe(\n catchError(error => {\n return of({ status: ActionStatus.Errored, action: action, error: error });\n }),\n shareReplay(),\n exhaustMap((result: ActionContext | any) => {\n if (result && result.status === ActionStatus.Errored) {\n return throwError(result.error);\n } else {\n return of(result);\n }\n })\n );\n result.subscribe();\n }\n return result;\n };\n };\n}\n","import { helpers } from 'ngx-tethys/util';\nimport { BehaviorSubject, from, Observable, Observer, Subscription } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\n\nimport { Directive, isDevMode, OnDestroy } from '@angular/core';\n\nimport { MiniAction } from './action';\nimport { MiniActionState } from './action-state';\nimport { META_KEY, StoreMetaInfo } from './types';\n\n@Directive()\nexport class MiniStore<T = unknown> implements Observer<T>, OnDestroy {\n initialStateCache: any;\n\n public state$: BehaviorSubject<T>;\n\n public reduxToolEnabled = isDevMode();\n\n private _defaultStoreInstanceId: string;\n\n constructor(initialState: any) {\n this._defaultStoreInstanceId = this._getClassName();\n this.state$ = new BehaviorSubject<T>(initialState);\n this.initialStateCache = { ...initialState };\n }\n\n get snapshot() {\n return this.state$.getValue();\n }\n\n public dispatch(type: string, payload?: any): Observable<any> {\n MiniActionState.changeAction(`${this._defaultStoreInstanceId}-${type}`);\n const result = this._dispatch({\n type: type,\n payload: payload\n });\n result.subscribe();\n return result;\n }\n\n private _dispatch(action: any): Observable<any> {\n const meta = this[META_KEY] as StoreMetaInfo;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !meta) {\n throw new Error(`${META_KEY} is not found, current store has not action`);\n }\n const actionMeta = meta.actions[action.type];\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !actionMeta) {\n throw new Error(`${action.type} is not found`);\n }\n // let result: any = this[actionMeta.fn](this.snapshot, action.payload);\n let result: any = actionMeta.originalFn.call(this, this.snapshot, action.payload);\n\n if (result instanceof Promise) {\n result = from(result);\n }\n\n if (result instanceof Observable) {\n result = result.pipe(map(r => r));\n } else {\n result = new Observable((observer: Observer<any>) => {\n observer.next({});\n });\n }\n return result.pipe(shareReplay());\n }\n\n select<TResult>(selector: (state: T) => TResult): Observable<TResult> | Observable<TResult>;\n select(selector: string | any): Observable<any> {\n return this.state$.pipe(map(selector), distinctUntilChanged());\n }\n\n next(state: T) {\n this.state$.next(state);\n }\n\n error(error: any) {\n this.state$.error(error);\n }\n\n complete() {\n this.state$.complete();\n }\n\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription {\n return this.state$.subscribe(next, error, complete);\n }\n\n /**\n * set store new state\n *\n * @example\n * this.setState(newState);\n * this.setState({ users: produce(this.snapshot.users).add(user) });\n * this.setState((state) => {\n * return {\n * users: produce(state.users).add(user)\n * }\n * });\n * @param fn\n */\n setState(fn: Partial<T> | ((newState: T) => Partial<T>)): void {\n if (helpers.isFunction(fn)) {\n this.next({\n ...this.snapshot,\n ...(fn as any)(this.snapshot)\n });\n } else {\n this.next({\n ...this.snapshot,\n ...(fn as T)\n });\n }\n }\n\n getState(): T {\n return this.snapshot;\n }\n\n @MiniAction()\n clearState() {\n this.setState(this.initialStateCache);\n }\n\n ngOnDestroy() {}\n\n /**\n * You can override this method if you want to give your container instance a custom id.\n * The returned id must be unique in the application.\n */\n getStoreInstanceId(): string {\n return this._defaultStoreInstanceId;\n }\n\n private _getClassName(): string {\n const name = this.constructor.name || /function (.+)\\(/.exec(this.constructor + '')[1];\n return name;\n }\n}\n","export const presetThemeColors = ['primary', 'success', 'info', 'warning', 'danger', 'default', 'light'] as const;\n\nexport type ThyThemeColor = (typeof presetThemeColors)[number];\n\nexport function isThemeColor(color: ThyThemeColor | string): boolean {\n return presetThemeColors.includes(color as ThyThemeColor);\n}\n\nexport const presetTextColors = [...presetThemeColors, 'secondary', 'muted', 'desc', 'placeholder', 'white', 'body'] as const;\n\nexport type ThyTextColor = (typeof presetTextColors)[number];\n\nexport function isTextColor(color: ThyTextColor | string): boolean {\n return presetTextColors.includes(color as ThyTextColor);\n}\n\nexport const presetBgColors = [...presetThemeColors, 'secondary', 'dark', 'lighter', 'bright', 'content', 'white', 'transparent'] as const;\n\nexport type ThyBgColor = (typeof presetBgColors)[number];\n\nexport function isBgColor(color: ThyBgColor | string): boolean {\n return presetBgColors.includes(color as ThyBgColor);\n}\n","import { isNumber } from 'ngx-tethys/util';\nexport type ThySpacingSize = 'zero' | 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xlg' | number;\n\nconst SPACING_SIZES_MAP = {\n zero: 0,\n xxs: 4,\n xs: 8,\n sm: 12,\n md: 16,\n lg: 20,\n xlg: 24\n};\n\nexport function getNumericSize(size: ThySpacingSize, defaultSize?: ThySpacingSize): number {\n if (isNumber(size)) {\n return size;\n }\n return SPACING_SIZES_MAP[size] !== undefined ? SPACING_SIZES_MAP[size] : SPACING_SIZES_MAP[defaultSize];\n}\n","import { MonoTypeOperatorFunction, SchedulerLike } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * for issue: https://github.com/angular/angular/issues/44351\n * only for test mock debounceTime\n */\nexport class DebounceTimeWrapper {\n public static debounceTime<T>(dueTime: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T> {\n return debounceTime(dueTime, scheduler);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty","i1.ThyClickDispatcher"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('18.0.4');
3
+ const VERSION = new Version('18.0.5');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.0.4');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.0.5');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-tethys",
3
- "version": "18.0.4",
3
+ "version": "18.0.5",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/atinc/ngx-tethys.git"
@@ -1 +1 @@
1
- export declare const VERSION = "18.0.4";
1
+ export declare const VERSION = "18.0.5";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '18.0.4';
4
+ exports.VERSION = '18.0.5';