@coolon/angular-ui-powerups 12.4.1 → 12.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/bundles/coolon-angular-ui-powerups-cypress.umd.js +14 -34
  2. package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.js +102 -104
  4. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  5. package/coolon-angular-ui-powerups.metadata.json +1 -1
  6. package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
  7. package/esm2015/cypress/component-builder.js +3 -3
  8. package/esm2015/cypress/component-builder.js.map +1 -1
  9. package/esm2015/cypress/component-builder.metadata.json +1 -1
  10. package/esm2015/cypress/components/aup-abstract-table.js +3 -3
  11. package/esm2015/cypress/components/aup-abstract-table.js.map +1 -1
  12. package/esm2015/cypress/components/aup-abstract-table.metadata.json +1 -1
  13. package/esm2015/cypress/components/aup-command.js +2 -2
  14. package/esm2015/cypress/components/aup-command.js.map +1 -1
  15. package/esm2015/cypress/components/aup-command.metadata.json +1 -1
  16. package/esm2015/cypress/components/aup-tree-table.js +1 -1
  17. package/esm2015/cypress/components/aup-tree-table.js.map +1 -1
  18. package/esm2015/cypress/components/aup-tree-table.metadata.json +1 -1
  19. package/esm2015/cypress/page-element.js +3 -3
  20. package/esm2015/cypress/page-element.js.map +1 -1
  21. package/esm2015/cypress/page-element.metadata.json +1 -1
  22. package/esm2015/cypress/page.js +3 -3
  23. package/esm2015/cypress/page.js.map +1 -1
  24. package/esm2015/cypress/page.metadata.json +1 -1
  25. package/esm2015/lib/components/cards/card-container/card-container.component.js +4 -4
  26. package/esm2015/lib/components/cards/card-container/card-container.component.js.map +1 -1
  27. package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +1 -1
  28. package/esm2015/lib/components/commands/command/command.component.js +2 -2
  29. package/esm2015/lib/components/commands/command/command.component.js.map +1 -1
  30. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  31. package/esm2015/lib/components/commands/command-face.js +8 -8
  32. package/esm2015/lib/components/commands/command-face.js.map +1 -1
  33. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +3 -3
  34. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -1
  35. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -1
  36. package/esm2015/lib/components/tables/abstract-table-model.js +3 -3
  37. package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -1
  38. package/esm2015/lib/components/tables/abstract-table-model.metadata.json +1 -1
  39. package/esm2015/lib/components/tables/column-list-model.js +2 -2
  40. package/esm2015/lib/components/tables/column-list-model.js.map +1 -1
  41. package/esm2015/lib/components/tables/column-list-model.metadata.json +1 -1
  42. package/esm2015/lib/components/tables/table/column-model.js +12 -12
  43. package/esm2015/lib/components/tables/table/column-model.js.map +1 -1
  44. package/esm2015/lib/components/tables/table/column-model.metadata.json +1 -1
  45. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -1
  46. package/esm2015/lib/components/tables/tree-table/decorated-tree-node.js +3 -3
  47. package/esm2015/lib/components/tables/tree-table/decorated-tree-node.js.map +1 -1
  48. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js +2 -2
  49. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js.map +1 -1
  50. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.metadata.json +1 -1
  51. package/esm2015/lib/components/tables/tree-table/tree-table-model.js +2 -2
  52. package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -1
  53. package/esm2015/lib/components/tables/tree-table/tree-table-model.metadata.json +1 -1
  54. package/esm2015/lib/components/text/markdown/markdown.component.js +3 -3
  55. package/esm2015/lib/components/text/markdown/markdown.component.js.map +1 -1
  56. package/esm2015/lib/components/text/markdown/markdown.component.metadata.json +1 -1
  57. package/esm2015/lib/directives/highlight.pipe.js +2 -2
  58. package/esm2015/lib/directives/highlight.pipe.js.map +1 -1
  59. package/esm2015/lib/directives/highlight.pipe.metadata.json +1 -1
  60. package/esm2015/lib/interaction/abstract-interaction-context.js.map +1 -1
  61. package/esm2015/lib/interaction/alert.js +3 -3
  62. package/esm2015/lib/interaction/alert.js.map +1 -1
  63. package/esm2015/lib/interaction/components/abstract-dialog.component.js +2 -2
  64. package/esm2015/lib/interaction/components/abstract-dialog.component.js.map +1 -1
  65. package/esm2015/lib/interaction/components/activity-body/activity-body.component.js.map +1 -1
  66. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +2 -2
  67. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  68. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  69. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +2 -2
  70. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js.map +1 -1
  71. package/esm2015/lib/interaction/components/activity-title/activity-title.component.metadata.json +1 -1
  72. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +2 -2
  73. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -1
  74. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +1 -1
  75. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  76. package/esm2015/lib/interaction/components/input-activities/input-activity.js +2 -2
  77. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -1
  78. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -1
  79. package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js +2 -2
  80. package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js.map +1 -1
  81. package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.metadata.json +1 -1
  82. package/esm2015/lib/place/components/abstract-place-navigation.component.js +1 -1
  83. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  84. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  85. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +3 -3
  86. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  87. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  88. package/esm2015/lib/place/guards/consolidated-param-map.js +3 -3
  89. package/esm2015/lib/place/guards/consolidated-param-map.js.map +1 -1
  90. package/esm2015/lib/place/guards/consolidated-param-map.metadata.json +1 -1
  91. package/esm2015/lib/place/navigation/place-component-deactivation-handler.js +2 -2
  92. package/esm2015/lib/place/navigation/place-component-deactivation-handler.js.map +1 -1
  93. package/esm2015/lib/place/navigation/place-component-deactivation-handler.metadata.json +1 -1
  94. package/esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js +2 -2
  95. package/esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js.map +1 -1
  96. package/esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.metadata.json +1 -1
  97. package/esm2015/lib/place/place-component.js +3 -3
  98. package/esm2015/lib/place/place-component.js.map +1 -1
  99. package/esm2015/lib/place/place-component.metadata.json +1 -1
  100. package/esm2015/lib/place/place-definition.js +5 -5
  101. package/esm2015/lib/place/place-definition.js.map +1 -1
  102. package/esm2015/lib/place/place-definition.metadata.json +1 -1
  103. package/esm2015/lib/place/place-history.js +8 -8
  104. package/esm2015/lib/place/place-history.js.map +1 -1
  105. package/esm2015/lib/place/place-history.metadata.json +1 -1
  106. package/esm2015/lib/place/place.decorator.js +2 -2
  107. package/esm2015/lib/place/place.decorator.js.map +1 -1
  108. package/esm2015/lib/place/place.decorator.metadata.json +1 -1
  109. package/esm2015/lib/place/route/formatter.js +3 -3
  110. package/esm2015/lib/place/route/formatter.js.map +1 -1
  111. package/esm2015/lib/place/route/parameter-definition.js +8 -8
  112. package/esm2015/lib/place/route/parameter-definition.js.map +1 -1
  113. package/esm2015/lib/place/route/parameter-definition.metadata.json +1 -1
  114. package/esm2015/lib/place/url-snapshot.js +3 -3
  115. package/esm2015/lib/place/url-snapshot.js.map +1 -1
  116. package/esm2015/lib/place/url-snapshot.metadata.json +1 -1
  117. package/esm2015/lib/place/visit.js +5 -5
  118. package/esm2015/lib/place/visit.js.map +1 -1
  119. package/esm2015/lib/place/visit.metadata.json +1 -1
  120. package/fesm2015/coolon-angular-ui-powerups-cypress.js +10 -10
  121. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  122. package/fesm2015/coolon-angular-ui-powerups.js +76 -77
  123. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  124. package/package.json +10 -9
  125. package/schematics/place-routes/place-class-scanner.js +5 -5
  126. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  127. package/schematics/place-routes/place-def.js +5 -5
  128. package/schematics/place-routes/place-def.js.map +1 -1
  129. package/schematics/utils/import-def.js +4 -4
  130. package/schematics/utils/import-def.js.map +1 -1
  131. package/schematics/utils/method-scanner.js +6 -6
  132. package/schematics/utils/method-scanner.js.map +1 -1
  133. package/schematics/utils/path-helper.js +4 -4
  134. package/schematics/utils/path-helper.js.map +1 -1
  135. package/schematics/utils/source-file-scanner.js +5 -5
  136. package/schematics/utils/source-file-scanner.js.map +1 -1
  137. package/schematics/utils/source-file-utilities.js +2 -2
  138. package/schematics/utils/source-file-utilities.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/interaction/alert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAY5B,MAAM,KAAW,KAAK,CAcrB;AAdD,WAAiB,KAAK;IAEpB,SAAgB,UAAU,CAAC,KAAY;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAHe,gBAAU,aAGzB,CAAA;IAED,SAAgB,QAAQ,CAAC,KAAY;QACnC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAFe,cAAQ,WAEvB,CAAA;IAED,SAAgB,QAAQ,CAAC,KAAY;QACnC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAFe,cAAQ,WAEvB,CAAA;AACH,CAAC,EAdgB,KAAK,KAAL,KAAK,QAcrB","sourcesContent":["import * as _ from 'lodash';\n\nexport interface Alert {\n title?(): string;\n\n color?(): string;\n\n content(): string | string[];\n\n ok(): string;\n}\n\nexport namespace Alert {\n\n export function getContent(alert: Alert): string[] {\n const content = alert.content();\n return Array.isArray(content) ? content : [content];\n }\n\n export function getTitle(alert: Alert): string {\n return _.isFunction(alert.title) ? alert.title() : undefined;\n }\n\n export function getColor(alert: Alert): string {\n return _.isFunction(alert.color) ? alert.color() : undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/interaction/alert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAYvC,MAAM,KAAW,KAAK,CAcrB;AAdD,WAAiB,KAAK;IAEpB,SAAgB,UAAU,CAAC,KAAY;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAHe,gBAAU,aAGzB,CAAA;IAED,SAAgB,QAAQ,CAAC,KAAY;QACnC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAFe,cAAQ,WAEvB,CAAA;IAED,SAAgB,QAAQ,CAAC,KAAY;QACnC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAFe,cAAQ,WAEvB,CAAA;AACH,CAAC,EAdgB,KAAK,KAAL,KAAK,QAcrB","sourcesContent":["\nimport { isFunction } from 'lodash-es';\n\nexport interface Alert {\n title?(): string;\n\n color?(): string;\n\n content(): string | string[];\n\n ok(): string;\n}\n\nexport namespace Alert {\n\n export function getContent(alert: Alert): string[] {\n const content = alert.content();\n return Array.isArray(content) ? content : [content];\n }\n\n export function getTitle(alert: Alert): string {\n return isFunction(alert.title) ? alert.title() : undefined;\n }\n\n export function getColor(alert: Alert): string {\n return isFunction(alert.color) ? alert.color() : undefined;\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Component, Inject, InjectionToken } from '@angular/core';
2
2
  import { assert } from '@coolon/pectin';
3
3
  import { lang } from '@coolon/typescript-utilities';
4
- import * as _ from 'lodash';
4
+ import { isFunction } from "lodash";
5
5
  import { Activity } from '../activity';
6
6
  import { Alert } from '../alert';
7
7
  export const ALERT_CONFIG = new InjectionToken('AlertConfig');
@@ -38,7 +38,7 @@ export class AbstractDialogComponent extends Activity {
38
38
  }
39
39
  isDestructive() {
40
40
  // @ts-ignore
41
- return _.isFunction(this.config['destructive']) && this.config.destructive();
41
+ return isFunction(this.config['destructive']) && this.config.destructive();
42
42
  }
43
43
  }
44
44
  AbstractDialogComponent.decorators = [
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-dialog.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/abstract-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,cAAc,CAAM,aAAa,CAAC,CAAC;AAInE,MAAM,OAAO,uBAAuC,SAAQ,QAAiB;IAO3E,YAAqD,MAAuB;QAC1E,KAAK,EAAE,CAAC;QAD2C,WAAM,GAAN,MAAM,CAAiB;QAE1E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;YACvB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS;YACpC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ;SACtB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC9C,CAAC;IAES,UAAU,CAAC,QAAgB;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;aAAM;YACL,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,QAAyC,CAAC;aAClD;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;gBACjD,OAAO,SAAS,CAAC;aAClB;SACF;IACH,CAAC;IAED,aAAa;QACX,aAAa;QACb,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/E,CAAC;;;YA5CF,SAAS,SAAC;gBACT,QAAQ,EAAE,EAAE;aACb;;;4CAQc,MAAM,SAAC,YAAY","sourcesContent":["import { Component, Inject, InjectionToken } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { lang } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { CommandFace } from '../../components/commands/command-face';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { Confirm } from '../confirm';\n\nexport const ALERT_CONFIG = new InjectionToken<any>('AlertConfig');\n@Component({\n template: ''\n})\nexport class AbstractDialogComponent<D, R, E = any> extends Activity<D, R, E> {\n\n readonly confirmFace: CommandFace;\n readonly title: string;\n readonly content: string[];\n readonly color?: 'primary' | 'accent' | 'warn';\n\n constructor(@Inject(ALERT_CONFIG) protected readonly config: Alert | Confirm) {\n super();\n assert.notNil(config);\n this.title = Alert.getTitle(config);\n this.color = this.checkColor(Alert.getColor(config));\n this.content = Alert.getContent(config);\n\n this.confirmFace = {\n text: () => config.ok(),\n color: () => this.color || 'primary',\n style: () => 'raised'\n };\n }\n\n getConfig():Alert | Confirm {\n return lang.abstractMethod(this.constructor)\n }\n\n protected checkColor(rawColor: string): 'primary' | 'accent' | 'warn' {\n if (this.isDestructive()) {\n return 'warn';\n } else {\n if (['primary', 'accent', 'warn'].includes(rawColor)) {\n return rawColor as 'primary' | 'accent' | 'warn';\n } else {\n console.warn(`Invalid color string ${rawColor}`);\n return undefined;\n }\n }\n }\n\n isDestructive(): boolean {\n // @ts-ignore\n return _.isFunction(this.config['destructive']) && this.config.destructive();\n }\n\n}\n"]}
1
+ {"version":3,"file":"abstract-dialog.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/abstract-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,cAAc,CAAM,aAAa,CAAC,CAAC;AAInE,MAAM,OAAO,uBAAuC,SAAQ,QAAiB;IAO3E,YAAqD,MAAuB;QAC1E,KAAK,EAAE,CAAC;QAD2C,WAAM,GAAN,MAAM,CAAiB;QAE1E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;YACvB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS;YACpC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ;SACtB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC9C,CAAC;IAES,UAAU,CAAC,QAAgB;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;aAAM;YACL,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,QAAyC,CAAC;aAClD;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;gBACjD,OAAO,SAAS,CAAC;aAClB;SACF;IACH,CAAC;IAED,aAAa;QACX,aAAa;QACb,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC;;;YA5CF,SAAS,SAAC;gBACT,QAAQ,EAAE,EAAE;aACb;;;4CAQc,MAAM,SAAC,YAAY","sourcesContent":["import { Component, Inject, InjectionToken } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { lang } from '@coolon/typescript-utilities';\nimport {isFunction} from \"lodash\";\nimport { CommandFace } from '../../components/commands/command-face';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { Confirm } from '../confirm';\n\nexport const ALERT_CONFIG = new InjectionToken<any>('AlertConfig');\n@Component({\n template: ''\n})\nexport class AbstractDialogComponent<D, R, E = any> extends Activity<D, R, E> {\n\n readonly confirmFace: CommandFace;\n readonly title: string;\n readonly content: string[];\n readonly color?: 'primary' | 'accent' | 'warn';\n\n constructor(@Inject(ALERT_CONFIG) protected readonly config: Alert | Confirm) {\n super();\n assert.notNil(config);\n this.title = Alert.getTitle(config);\n this.color = this.checkColor(Alert.getColor(config));\n this.content = Alert.getContent(config);\n\n this.confirmFace = {\n text: () => config.ok(),\n color: () => this.color || 'primary',\n style: () => 'raised'\n };\n }\n\n getConfig():Alert | Confirm {\n return lang.abstractMethod(this.constructor)\n }\n\n protected checkColor(rawColor: string): 'primary' | 'accent' | 'warn' {\n if (this.isDestructive()) {\n return 'warn';\n } else {\n if (['primary', 'accent', 'warn'].includes(rawColor)) {\n return rawColor as 'primary' | 'accent' | 'warn';\n } else {\n console.warn(`Invalid color string ${rawColor}`);\n return undefined;\n }\n }\n }\n\n isDestructive(): boolean {\n // @ts-ignore\n return isFunction(this.config['destructive']) && this.config.destructive();\n }\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"activity-body.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/activity-body/activity-body.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAItE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAO/E,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAL9D;;QASE,cAAS,GAAG,KAAK,CAAC;IAKpB,CAAC;IAHC,QAAQ;IACR,CAAC;;;YAZF,SAAS,SAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,uCAA6C;;aAE9C;;;wBAGE,KAAK,YACL,WAAW,SAAC,kBAAkB","sourcesContent":["import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { Command, DelegatingCommand, TrackExternal } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { CommandFace } from '../../../components/commands/command-face';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\n@Component({\n selector: 'aup-activity-body',\n templateUrl: './activity-body.component.html',\n styleUrls: ['./activity-body.component.html'],\n})\nexport class ActivityBodyComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @HostBinding(\"class.full-width\")\n fullWidth = false;\n\n ngOnInit() {\n }\n\n}\n"]}
1
+ {"version":3,"file":"activity-body.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/activity-body/activity-body.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAItE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAO/E,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAL9D;;QASE,cAAS,GAAG,KAAK,CAAC;IAKpB,CAAC;IAHC,QAAQ;IACR,CAAC;;;YAZF,SAAS,SAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,uCAA6C;;aAE9C;;;wBAGE,KAAK,YACL,WAAW,SAAC,kBAAkB","sourcesContent":["import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { Command, DelegatingCommand, TrackExternal } from '@coolon/pectin';\n\nimport { CommandFace } from '../../../components/commands/command-face';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\n@Component({\n selector: 'aup-activity-body',\n templateUrl: './activity-body.component.html',\n styleUrls: ['./activity-body.component.html'],\n})\nexport class ActivityBodyComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @HostBinding(\"class.full-width\")\n fullWidth = false;\n\n ngOnInit() {\n }\n\n}\n"]}
@@ -3,7 +3,7 @@ import { Component, Input, QueryList, ViewChild, ViewChildren } from '@angular/c
3
3
  import { MatTabGroup } from '@angular/material/tabs';
4
4
  import { assert, DelegatingValueModel, Dsl, GarbageCollector, MutableValueModel } from '@coolon/pectin';
5
5
  import { lang } from '@coolon/typescript-utilities';
6
- import _ from 'lodash';
6
+ import { findLast } from 'lodash-es';
7
7
  import { AbstractInteractionContext } from '../../abstract-interaction-context';
8
8
  import { ActivityRef } from '../../activity-ref';
9
9
  import { ActivityOutletComponent } from './activity-outlet/activity-outlet.component';
@@ -58,7 +58,7 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
58
58
  if (!this.isActive()) {
59
59
  lang.illegalState('no activity in progress');
60
60
  }
61
- return _.findLast(this.activityRefs, tab => !tab.isComplete());
61
+ return findLast(this.activityRefs, tab => !tab.isComplete());
62
62
  }
63
63
  /**
64
64
  * Cancels the current activity and returns true the context is no longer active, false if
@@ -1 +1 @@
1
- {"version":3,"file":"activity-container.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/activity-container/activity-container.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { AfterViewInit, Component, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { MatTabGroup } from '@angular/material/tabs';\nimport {\n assert,\n Constructable,\n DelegatingValueModel,\n Disposable,\n Dsl,\n GarbageCollector,\n MutableValueModel,\n Trace\n} from '@coolon/pectin';\nimport { lang } from '@coolon/typescript-utilities';\nimport _ from 'lodash';\nimport { slideDownOnEnterAnimation } from '../../../animations/slide-animations';\nimport { AbstractInteractionContext } from '../../abstract-interaction-context';\nimport { Activity } from '../../activity';\nimport { ActivityRef } from '../../activity-ref';\nimport { InteractionService } from '../../services/interaction.service';\nimport { ActivityOutletComponent } from './activity-outlet/activity-outlet.component';\n\n@Component({\n selector: 'aup-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent<D, R, E> extends AbstractInteractionContext implements OnInit, AfterViewInit {\n\n @Input()\n dynamicHeight = false;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n @ViewChildren(ActivityOutletComponent)\n activityOutlets: QueryList<ActivityOutletComponent<any, any, any>>;\n\n activityRefs: ActivityRef<any, any, any>[] = [];\n\n private _identifier: string;\n private _deferredCleanUp: Promise<any>;\n\n private interactionServiceApi: InteractionService.Api;\n\n private garbage = new GarbageCollector();\n private syncSelectedTabTimeout: any;\n private onAnimationFinishedJob: () => void;\n\n readonly inAnimation = new MutableValueModel<boolean>(false);\n\n readonly busy = this.registerDisposable(new DelegatingValueModel<boolean>().withDefault(false));\n\n constructor() {\n super();\n this.registerDisposable(this.busy);\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { chain, observe } = Dsl.disposeWith(this);\n // using the component directly rather than (animationDone)=.. allows us\n // to keep our callback private.\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.onAnimationFinished());\n }\n\n initialise(identifier: string, api: InteractionService.Api) {\n assert.isFalsey(this.isInitialised());\n assert.notNil(identifier);\n assert.notNil(api);\n this._identifier = identifier;\n this.interactionServiceApi = api;\n }\n\n get identifier() {\n return this._identifier;\n }\n\n isInitialised() {\n return !!this.identifier;\n }\n\n /**\n * Returns true if an activity is currently running.\n */\n isActive(): boolean {\n return this.getActiveActivityCount() > 0;\n }\n\n registerDisposable<T extends Disposable>(disposable: T): T {\n return this.garbage.registerDisposable(disposable);\n }\n\n // @Trace()\n dispose(): void {\n // TODO: think about auto cancelling any outstanding activity on dispose.\n // See NavigationState.Navigating for a use-case.\n assert.isFalsey(this.isActive());\n this.garbage.dispose();\n }\n\n getActiveActivityRef(): ActivityRef<any, any, any> {\n if (!this.isActive()) {\n lang.illegalState('no activity in progress');\n }\n return _.findLast(this.activityRefs, tab => !tab.isComplete());\n }\n\n /**\n * Cancels the current activity and returns true the context is no longer active, false if\n * there is still another activity running.\n */\n // @Trace()\n async cancelActiveActivity(): Promise<boolean> {\n const activity = this.getActiveActivityRef();\n activity.cancel();\n if (this.isCleaningUp()) {\n return this.waitForInteractionContextCleanupToFinish();\n } else {\n return !this.isActive();\n }\n }\n\n // TODO: this handling of multiple nested activities is only used by the activity component and is not a general case.\n // @Trace()\n protected createAndLaunchActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data: D1, disableClose: boolean): Promise<R1> {\n assert.isTruthy(this.isInitialised()); // make sure we've been initialised\n const activityRef = new ActivityRef<D1, R1, E1>(activityType, data, () => {\n const activeActivityCount = this.getActiveActivityCount() > 0;\n if (activeActivityCount) {\n this.triggerTabSynchronisation();\n } else {\n this.finishAndStartCleanup();\n }\n });\n this.launchActivity(activityRef);\n // if this is the first activity let the interaction service know.\n if (this.activityRefs.length === 1) {\n // console.log('Now active!!!');\n this.interactionServiceApi.notifyActive(this);\n }\n return activityRef.activityResult;\n }\n\n private getActiveActivityCount(): number {\n return this.activityRefs.filter(ref => !ref.isComplete()).length;\n }\n\n /**\n * Checks if this interaction context has finished an is in the process of waiting\n * for all the infrastructure (including route updates) to be completed.\n */\n isCleaningUp(): boolean {\n return !!this._deferredCleanUp;\n }\n\n async waitForInteractionContextCleanupToFinish(): Promise<any> {\n return this._deferredCleanUp ?\n this._deferredCleanUp :\n true;\n }\n\n // @Trace()\n private finishAndStartCleanup(): void {\n if (!this._deferredCleanUp) {\n // Important:\n // Clear our tabs so the next activity triggers a tab change.\n // Without this our animation done wasn't called when a single\n // new activity followed a single tab activity (since we're tracking\n // by activity index)\n this.activityRefs = [];\n const promise = this.interactionServiceApi.notifyFinished(this);\n this._deferredCleanUp = promise\n .finally(() => {\n this._deferredCleanUp = null;\n });\n }\n }\n\n// @Trace()\n launchActivity<D1, R1, E1>(activityRef: ActivityRef<D1, R1, E1>) {\n const cleanedTabs = this.activityRefs.filter(tab => !tab.isComplete());\n this.activityRefs = cleanedTabs.concat(activityRef);\n this.synchroniseSelectedTabIndex();\n }\n\n activityIndex(index: number, activityRef: ActivityRef<any, any, any>) {\n return index;\n };\n\n // @Trace()\n private onAnimationFinished() {\n if (this.onAnimationFinishedJob) {\n this.onAnimationFinishedJob();\n this.onAnimationFinishedJob = undefined;\n }\n }\n\n /**\n * Synchronises the selected tab index.\n */\n // @Trace()\n private synchroniseSelectedTabIndex(): void {\n const previousIndex = this.tabs.selectedIndex;\n const newIndex = this.getActiveActivityCount() - 1;\n if (previousIndex !== newIndex) {\n this.inAnimation.value = true;\n this.activityRefs[newIndex].setFocused(false);\n this.busy.setDelegate(this.activityRefs[newIndex].activityBusy)\n this.tabs.selectedIndex = newIndex;\n this.onAnimationFinishedJob = () => {\n this.activityRefs = this.activityRefs.filter(tab => !tab.isComplete());\n this.inAnimation.value = false;\n this.activityRefs.forEach((ref, index) => {\n ref.setFocused(index === newIndex)\n })\n };\n }\n }\n\n private getSelectedOutlet() {\n return this.activityOutlets.toArray()[this.tabs.selectedIndex];\n }\n\n // @Trace()\n getSelectedTabIndex() {\n return this.tabs.selectedIndex;\n }\n\n // @Trace()\n private triggerTabSynchronisation() {\n if (this.syncSelectedTabTimeout) {\n clearTimeout(this.syncSelectedTabTimeout);\n }\n this.syncSelectedTabTimeout = setTimeout(() => {\n this.syncSelectedTabTimeout = null;\n this.synchroniseSelectedTabIndex();\n }, 75);\n }\n}\n"]}
1
+ {"version":3,"file":"activity-container.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/activity-container/activity-container.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { AfterViewInit, Component, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { MatTabGroup } from '@angular/material/tabs';\nimport {\n assert,\n Constructable,\n DelegatingValueModel,\n Disposable,\n Dsl,\n GarbageCollector,\n MutableValueModel,\n Trace\n} from '@coolon/pectin';\nimport { lang } from '@coolon/typescript-utilities';\n\nimport { findLast } from 'lodash-es';\nimport { slideDownOnEnterAnimation } from '../../../animations/slide-animations';\nimport { AbstractInteractionContext } from '../../abstract-interaction-context';\nimport { Activity } from '../../activity';\nimport { ActivityRef } from '../../activity-ref';\nimport { InteractionService } from '../../services/interaction.service';\nimport { ActivityOutletComponent } from './activity-outlet/activity-outlet.component';\n\n@Component({\n selector: 'aup-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent<D, R, E> extends AbstractInteractionContext implements OnInit, AfterViewInit {\n\n @Input()\n dynamicHeight = false;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n @ViewChildren(ActivityOutletComponent)\n activityOutlets: QueryList<ActivityOutletComponent<any, any, any>>;\n\n activityRefs: ActivityRef<any, any, any>[] = [];\n\n private _identifier: string;\n private _deferredCleanUp: Promise<any>;\n\n private interactionServiceApi: InteractionService.Api;\n\n private garbage = new GarbageCollector();\n private syncSelectedTabTimeout: any;\n private onAnimationFinishedJob: () => void;\n\n readonly inAnimation = new MutableValueModel<boolean>(false);\n\n readonly busy = this.registerDisposable(new DelegatingValueModel<boolean>().withDefault(false));\n\n constructor() {\n super();\n this.registerDisposable(this.busy);\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { chain, observe } = Dsl.disposeWith(this);\n // using the component directly rather than (animationDone)=.. allows us\n // to keep our callback private.\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.onAnimationFinished());\n }\n\n initialise(identifier: string, api: InteractionService.Api) {\n assert.isFalsey(this.isInitialised());\n assert.notNil(identifier);\n assert.notNil(api);\n this._identifier = identifier;\n this.interactionServiceApi = api;\n }\n\n get identifier() {\n return this._identifier;\n }\n\n isInitialised() {\n return !!this.identifier;\n }\n\n /**\n * Returns true if an activity is currently running.\n */\n isActive(): boolean {\n return this.getActiveActivityCount() > 0;\n }\n\n registerDisposable<T extends Disposable>(disposable: T): T {\n return this.garbage.registerDisposable(disposable);\n }\n\n // @Trace()\n dispose(): void {\n // TODO: think about auto cancelling any outstanding activity on dispose.\n // See NavigationState.Navigating for a use-case.\n assert.isFalsey(this.isActive());\n this.garbage.dispose();\n }\n\n getActiveActivityRef(): ActivityRef<any, any, any> {\n if (!this.isActive()) {\n lang.illegalState('no activity in progress');\n }\n return findLast(this.activityRefs, tab => !tab.isComplete());\n }\n\n /**\n * Cancels the current activity and returns true the context is no longer active, false if\n * there is still another activity running.\n */\n // @Trace()\n async cancelActiveActivity(): Promise<boolean> {\n const activity = this.getActiveActivityRef();\n activity.cancel();\n if (this.isCleaningUp()) {\n return this.waitForInteractionContextCleanupToFinish();\n } else {\n return !this.isActive();\n }\n }\n\n // TODO: this handling of multiple nested activities is only used by the activity component and is not a general case.\n // @Trace()\n protected createAndLaunchActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data: D1, disableClose: boolean): Promise<R1> {\n assert.isTruthy(this.isInitialised()); // make sure we've been initialised\n const activityRef = new ActivityRef<D1, R1, E1>(activityType, data, () => {\n const activeActivityCount = this.getActiveActivityCount() > 0;\n if (activeActivityCount) {\n this.triggerTabSynchronisation();\n } else {\n this.finishAndStartCleanup();\n }\n });\n this.launchActivity(activityRef);\n // if this is the first activity let the interaction service know.\n if (this.activityRefs.length === 1) {\n // console.log('Now active!!!');\n this.interactionServiceApi.notifyActive(this);\n }\n return activityRef.activityResult;\n }\n\n private getActiveActivityCount(): number {\n return this.activityRefs.filter(ref => !ref.isComplete()).length;\n }\n\n /**\n * Checks if this interaction context has finished an is in the process of waiting\n * for all the infrastructure (including route updates) to be completed.\n */\n isCleaningUp(): boolean {\n return !!this._deferredCleanUp;\n }\n\n async waitForInteractionContextCleanupToFinish(): Promise<any> {\n return this._deferredCleanUp ?\n this._deferredCleanUp :\n true;\n }\n\n // @Trace()\n private finishAndStartCleanup(): void {\n if (!this._deferredCleanUp) {\n // Important:\n // Clear our tabs so the next activity triggers a tab change.\n // Without this our animation done wasn't called when a single\n // new activity followed a single tab activity (since we're tracking\n // by activity index)\n this.activityRefs = [];\n const promise = this.interactionServiceApi.notifyFinished(this);\n this._deferredCleanUp = promise\n .finally(() => {\n this._deferredCleanUp = null;\n });\n }\n }\n\n// @Trace()\n launchActivity<D1, R1, E1>(activityRef: ActivityRef<D1, R1, E1>) {\n const cleanedTabs = this.activityRefs.filter(tab => !tab.isComplete());\n this.activityRefs = cleanedTabs.concat(activityRef);\n this.synchroniseSelectedTabIndex();\n }\n\n activityIndex(index: number, activityRef: ActivityRef<any, any, any>) {\n return index;\n };\n\n // @Trace()\n private onAnimationFinished() {\n if (this.onAnimationFinishedJob) {\n this.onAnimationFinishedJob();\n this.onAnimationFinishedJob = undefined;\n }\n }\n\n /**\n * Synchronises the selected tab index.\n */\n // @Trace()\n private synchroniseSelectedTabIndex(): void {\n const previousIndex = this.tabs.selectedIndex;\n const newIndex = this.getActiveActivityCount() - 1;\n if (previousIndex !== newIndex) {\n this.inAnimation.value = true;\n this.activityRefs[newIndex].setFocused(false);\n this.busy.setDelegate(this.activityRefs[newIndex].activityBusy)\n this.tabs.selectedIndex = newIndex;\n this.onAnimationFinishedJob = () => {\n this.activityRefs = this.activityRefs.filter(tab => !tab.isComplete());\n this.inAnimation.value = false;\n this.activityRefs.forEach((ref, index) => {\n ref.setFocused(index === newIndex)\n })\n };\n }\n }\n\n private getSelectedOutlet() {\n return this.activityOutlets.toArray()[this.tabs.selectedIndex];\n }\n\n // @Trace()\n getSelectedTabIndex() {\n return this.tabs.selectedIndex;\n }\n\n // @Trace()\n private triggerTabSynchronisation() {\n if (this.syncSelectedTabTimeout) {\n clearTimeout(this.syncSelectedTabTimeout);\n }\n this.syncSelectedTabTimeout = setTimeout(() => {\n this.syncSelectedTabTimeout = null;\n this.synchroniseSelectedTabIndex();\n }, 75);\n }\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"ActivityContainerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../abstract-interaction-context","name":"AbstractInteractionContext","line":26,"character":57},"arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"aup-activity-container","template":"<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n","styles":[":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"]}]}],"members":{"dynamicHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":31,"character":3},"arguments":["tabs",{"static":true}]}]}],"activityOutlets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":34,"character":3},"arguments":[{"__symbolic":"reference","module":"./activity-outlet/activity-outlet.component","name":"ActivityOutletComponent","line":34,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initialise":[{"__symbolic":"method"}],"isInitialised":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"registerDisposable":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}],"getActiveActivityRef":[{"__symbolic":"method"}],"cancelActiveActivity":[{"__symbolic":"method"}],"createAndLaunchActivity":[{"__symbolic":"method"}],"getActiveActivityCount":[{"__symbolic":"method"}],"isCleaningUp":[{"__symbolic":"method"}],"waitForInteractionContextCleanupToFinish":[{"__symbolic":"method"}],"finishAndStartCleanup":[{"__symbolic":"method"}],"launchActivity":[{"__symbolic":"method"}],"activityIndex":[{"__symbolic":"method"}],"onAnimationFinished":[{"__symbolic":"method"}],"synchroniseSelectedTabIndex":[{"__symbolic":"method"}],"getSelectedOutlet":[{"__symbolic":"method"}],"getSelectedTabIndex":[{"__symbolic":"method"}],"triggerTabSynchronisation":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"ActivityContainerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../abstract-interaction-context","name":"AbstractInteractionContext","line":27,"character":57},"arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"aup-activity-container","template":"<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n","styles":[":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"]}]}],"members":{"dynamicHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":["tabs",{"static":true}]}]}],"activityOutlets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":35,"character":3},"arguments":[{"__symbolic":"reference","module":"./activity-outlet/activity-outlet.component","name":"ActivityOutletComponent","line":35,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initialise":[{"__symbolic":"method"}],"isInitialised":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"registerDisposable":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}],"getActiveActivityRef":[{"__symbolic":"method"}],"cancelActiveActivity":[{"__symbolic":"method"}],"createAndLaunchActivity":[{"__symbolic":"method"}],"getActiveActivityCount":[{"__symbolic":"method"}],"isCleaningUp":[{"__symbolic":"method"}],"waitForInteractionContextCleanupToFinish":[{"__symbolic":"method"}],"finishAndStartCleanup":[{"__symbolic":"method"}],"launchActivity":[{"__symbolic":"method"}],"activityIndex":[{"__symbolic":"method"}],"onAnimationFinished":[{"__symbolic":"method"}],"synchroniseSelectedTabIndex":[{"__symbolic":"method"}],"getSelectedOutlet":[{"__symbolic":"method"}],"getSelectedTabIndex":[{"__symbolic":"method"}],"triggerTabSynchronisation":[{"__symbolic":"method"}]}}}}]
@@ -1,5 +1,5 @@
1
1
  import { Component, HostBinding, Input } from '@angular/core';
2
- import _ from 'lodash';
2
+ import { isNil } from 'lodash-es';
3
3
  import { DisposableComponent } from '../../../components/disposable-component';
4
4
  export class ActivityTitleComponent extends DisposableComponent {
5
5
  /**
@@ -10,7 +10,7 @@ export class ActivityTitleComponent extends DisposableComponent {
10
10
  this._hasUserTransparentBackground = value;
11
11
  }
12
12
  get hasTransparentBackground() {
13
- return _.isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
13
+ return isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
14
14
  }
15
15
  set color(color) {
16
16
  this._color = color;
@@ -1 +1 @@
1
- {"version":3,"file":"activity-title.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/activity-title/activity-title.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAEtE,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAO/E,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAK7D;;;OAGG;IACH,IAEI,wBAAwB,CAAC,KAAc;QACzC,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC;IACzG,CAAC;IAGD,IAEI,KAAK,CAAC,KAAmB;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ;IACR,CAAC;;;YApCF,SAAS,SAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,uCAA8C;;aAE/C;;;uCAUE,KAAK,YACL,WAAW,SAAC,8BAA8B;oBAU1C,KAAK,YACL,WAAW,SAAC,YAAY","sourcesContent":["import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\n@Component({\n selector: 'aup-activity-title',\n templateUrl: './activity-title.component.html',\n styleUrls: ['./activity-title.component.scss']\n})\nexport class ActivityTitleComponent extends DisposableComponent implements OnInit {\n\n private _color: ThemePalette;\n private _hasUserTransparentBackground: boolean;\n\n /**\n * Adjusts layout to ensure the title and body are cleanly separated with even\n * gaps for teh case where the title component has a painted background.\n */\n @Input()\n @HostBinding('class.transparent-background')\n set hasTransparentBackground(value: boolean) {\n this._hasUserTransparentBackground = value;\n }\n\n get hasTransparentBackground(): boolean {\n return _.isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;\n }\n\n\n @Input()\n @HostBinding('attr.color')\n set color(color: ThemePalette) {\n this._color = color;\n }\n\n get color() {\n return this._color;\n }\n\n ngOnInit() {\n }\n\n}\n"]}
1
+ {"version":3,"file":"activity-title.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/activity-title/activity-title.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAGtE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAO/E,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAK7D;;;OAGG;IACH,IAEI,wBAAwB,CAAC,KAAc;QACzC,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC;IACvG,CAAC;IAGD,IAEI,KAAK,CAAC,KAAmB;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ;IACR,CAAC;;;YApCF,SAAS,SAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,uCAA8C;;aAE/C;;;uCAUE,KAAK,YACL,WAAW,SAAC,8BAA8B;oBAU1C,KAAK,YACL,WAAW,SAAC,YAAY","sourcesContent":["import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\nimport { isNil } from 'lodash-es';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\n@Component({\n selector: 'aup-activity-title',\n templateUrl: './activity-title.component.html',\n styleUrls: ['./activity-title.component.scss']\n})\nexport class ActivityTitleComponent extends DisposableComponent implements OnInit {\n\n private _color: ThemePalette;\n private _hasUserTransparentBackground: boolean;\n\n /**\n * Adjusts layout to ensure the title and body are cleanly separated with even\n * gaps for teh case where the title component has a painted background.\n */\n @Input()\n @HostBinding('class.transparent-background')\n set hasTransparentBackground(value: boolean) {\n this._hasUserTransparentBackground = value;\n }\n\n get hasTransparentBackground(): boolean {\n return isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;\n }\n\n\n @Input()\n @HostBinding('attr.color')\n set color(color: ThemePalette) {\n this._color = color;\n }\n\n get color() {\n return this._color;\n }\n\n ngOnInit() {\n }\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"ActivityTitleComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../components/disposable-component","name":"DisposableComponent","line":10,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"aup-activity-title","template":"<ng-content></ng-content>\n","styles":[":host{display:block}\n"]}]}],"members":{"hasTransparentBackground":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":20,"character":3},"arguments":["class.transparent-background"]}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":31,"character":3},"arguments":["attr.color"]}]}],"ngOnInit":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"ActivityTitleComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../components/disposable-component","name":"DisposableComponent","line":11,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"aup-activity-title","template":"<ng-content></ng-content>\n","styles":[":host{display:block}\n"]}]}],"members":{"hasTransparentBackground":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":21,"character":3},"arguments":["class.transparent-background"]}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":3},"arguments":["attr.color"]}]}],"ngOnInit":[{"__symbolic":"method"}]}}}}]
@@ -2,7 +2,7 @@ import { __awaiter, __decorate, __metadata } from "tslib";
2
2
  import { Component, Input, ViewChild } from '@angular/core';
3
3
  import { Command, DelegatingValueModel, Dsl, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';
4
4
  import { lang } from '@coolon/typescript-utilities';
5
- import * as _ from 'lodash';
5
+ import { isEmpty } from 'lodash-es';
6
6
  import { DisposableComponent } from '../../../../components/disposable-component';
7
7
  import { InteractionService } from '../../../services/interaction.service';
8
8
  import { InPlaceInteractionContextComponent } from '../../inplace-interaction-context/in-place-interaction-context.component';
@@ -70,7 +70,7 @@ export class InlineStringEditorComponent extends DisposableComponent {
70
70
  // deviceDescription.isNil()
71
71
  ).areTruthy();
72
72
  this.displayValue = chain(this.editorModel.valueModel).map(v => {
73
- return _.isEmpty(v) ? this.placeHolderModel.value : v;
73
+ return isEmpty(v) ? this.placeHolderModel.value : v;
74
74
  }, { dependsOn: this.placeHolderModel, allowNil: true });
75
75
  }
76
76
  createInputActivityData() {
@@ -1 +1 @@
1
- {"version":3,"file":"inline-string-editor.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, HostBinding, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n BooleanValueModelChain,\n Command, DelegatingValueModel,\n Dsl,\n StoreInValueModel,\n TrackExternal,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { lang } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { CommandFace } from '../../../../components/commands/command-face';\nimport { DisposableComponent } from '../../../../components/disposable-component';\nimport { InteractionService } from '../../../services/interaction.service';\nimport { InPlaceInteractionContextComponent } from '../../inplace-interaction-context/in-place-interaction-context.component';\nimport { InputActivity } from '../../input-activities/input-activity';\nimport { StringInputActivity } from '../../input-activities/string-input-activity';\nimport { InlineEditorModel } from './inline-editor-model';\n\n/**\n * @example\n * const source: ValueModel<string> = ...;\n * const model = InlineEditorModel.create(source, {\n * save(updated:string, context: EditContext) => {\n * try {\n * try and save the thing...\n * } catch(error) {\n * context.injectError(error)\n * }\n * }).validateUsing(Validator.present(\"We'll need a value\");\n *\n * # in the view\n * <aup-inline-string-editor\n * label=\"My field\"\n * placeHolder=\"I'm ready for a string...\"\n * [editorModel]=\"model\"></aup-inline-string-editor>\n */\n@Component({\n selector: 'aup-inline-string-editor',\n templateUrl: './inline-string-editor.component.html',\n styleUrls: [] // See assets/interaction/editor/inline-string-editor.scss\n})\nexport class InlineStringEditorComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @TrackExternal()\n editorModel: InlineEditorModel<string>;\n\n @Input()\n @TrackExternal()\n facesModel: ValueModel<InlineStringEditorComponent.Faces>;\n\n @Input()\n @StoreInValueModel('facesModel')\n faces: InlineStringEditorComponent.Faces;\n\n @ViewChild(InPlaceInteractionContextComponent)\n interactionContext: InPlaceInteractionContextComponent<any, any, any>;\n\n @Input()\n label: string;\n\n @Input()\n @StoreInValueModel('placeHolderModel')\n placeHolder: string;\n\n @Input()\n @TrackExternal()\n placeHolderModel: ValueModel<string>;\n\n readonly description: ValueModelChain<string>;\n empty: BooleanValueModelChain;\n readonly editCommand: Command<void>;\n\n displayValue: ValueModelChain<string>;\n readonly editFaceModel: ValueModelChain<CommandFace>;\n readonly saveFace: ValueModelChain<CommandFace>;\n readonly cancelFace: ValueModelChain<CommandFace>;\n\n readonly editingEnabled = this.registerDisposable(new DelegatingValueModel<boolean>());\n\n constructor(interactionService: InteractionService) {\n super();\n const { chain, when, valueOf } = Dsl.disposeWith(this);\n const modalIC = interactionService.createModalInteractionContextDisposedWith(this);\n\n const resolvedFacesModel = chain(this.facesModel).map(userFaces => {\n return {\n ...InlineStringEditorComponent.DEFAULT_FACES, // todo: should really inject app wide defaults as well\n ...userFaces\n };\n }, { allowNil: true });\n\n this.editFaceModel = resolvedFacesModel.pluck('edit');\n this.saveFace = resolvedFacesModel.pluck('save');\n this.cancelFace = resolvedFacesModel.pluck('cancel');\n\n const self = this;\n this.editCommand = Command.create(async () => {\n this.editorModel.editing.value = true;\n try {\n await this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData());\n } catch (e) {\n // don't care if they cancelled, just hiding the console errors\n } finally {\n this.editorModel.editing.value = false;\n }\n }).enableWhile(this.editingEnabled);\n\n this.onDispose(() => this.cancelEdit());\n\n }\n\n\n ngOnInit(): void {\n // our editor model is a one time binding without delegates so we can only\n // use it once we've been initialised\n const { chain, when, valueOf } = Dsl.disposeWith(this);\n\n if (!this.editorModel) {\n lang.illegalState('editorModel is required');\n }\n\n this.editingEnabled.setDelegate(this.editorModel.editingEnabled);\n\n when(this.editorModel.editing).becomesTruthy(() => {\n this.editCommand.execute();\n }, { asLongAs: this.editCommand.enabled });\n\n when(this.editorModel.editing).becomesFalsey(() => this.cancelEdit());\n\n this.empty = valueOf.any(\n chain.stringValue(this.editorModel.valueModel).isBlank()\n // deviceDescription.isNil()\n ).areTruthy();\n\n this.displayValue = chain(this.editorModel.valueModel).map(v => {\n return _.isEmpty(v) ? this.placeHolderModel.value : v;\n }, { dependsOn: this.placeHolderModel, allowNil: true });\n\n }\n\n\n private createInputActivityData(): InputActivity.Data<string> {\n const self = this;\n return {\n initialValue: self.editorModel.valueModel.value,\n confirmFace: self.saveFace.value,\n cancelFace: self.cancelFace.value,\n placeholder: self.placeHolderModel.value,\n label: self.label,\n layout: InputActivity.Layout.INLINE,\n validators: self.editorModel.validators.value,\n async save(value: string, inputContext: InputActivity.Context): Promise<void> {\n await self.editorModel.saveCallback(value, inputContext);\n }\n };\n }\n\n cancelEdit() {\n if (this.isEditing()) {\n this.interactionContext.cancelActiveActivity();\n }\n }\n\n startEdit() {\n if (!this.isEditing() && this.editCommand.enabled.value) {\n this.editCommand.execute();\n }\n }\n\n private isEditing() {\n return this.interactionContext.isActive();\n }\n\n isEmpty(): boolean {\n return this.empty.value;\n }\n\n\n}\n\nexport namespace InlineStringEditorComponent {\n\n export interface Faces {\n edit?: CommandFace;\n save?: CommandFace;\n cancel?: CommandFace;\n }\n\n export const DEFAULT_FACES: Faces = {\n edit: {\n icon: () => 'mat:edit'\n },\n save: {\n icon: () => 'mat:check'\n },\n cancel: {\n icon: () => 'mat:clear'\n }\n };\n\n}\n"]}
1
+ {"version":3,"file":"inline-string-editor.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAe,KAAK,EAAU,SAAS,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAEL,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EACH,iBAAiB,EACjB,aAAa,EACb,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,kCAAkC,EAAE,MAAM,0EAA0E,CAAC;AAC9H,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AAMH,MAAM,OAAO,2BAA4B,SAAQ,mBAAmB;IAuClE,YAAY,kBAAsC;QAChD,KAAK,EAAE,CAAC;QAHD,mBAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,oBAAoB,EAAW,CAAC,CAAC;QAIrF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,yCAAyC,CAAC,IAAI,CAAC,CAAC;QAEnF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChE,uCACK,2BAA2B,CAAC,aAAa,GACzC,SAAS,EACZ;QACJ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvB,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,GAAS,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACtC,IAAI;gBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;aAClG;YAAC,OAAO,CAAC,EAAE;gBACV,+DAA+D;aAChE;oBAAS;gBACR,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;aACxC;QACH,CAAC,CAAA,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEpC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAE1C,CAAC;IAGD,QAAQ;QACN,0EAA0E;QAC1E,qCAAqC;QACrC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;SAC9C;QAED,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;QACxD,4BAA4B;SAC7B,CAAC,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC7D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3D,CAAC;IAGO,uBAAuB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK;YAC/C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAChC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;YACjC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;YACxC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;YACnC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK;YACvC,IAAI,CAAC,KAAa,EAAE,YAAmC;;oBAC3D,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC3D,CAAC;aAAA;SACF,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;SAChD;IACH,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE;YACvD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC5B;IACH,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;;;YA5IF,SAAS,SAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,w7BAAoD;aAErD;;;YA5BQ,kBAAkB;;;0BA+BxB,KAAK;yBAIL,KAAK;oBAIL,KAAK;iCAIL,SAAS,SAAC,kCAAkC;oBAG5C,KAAK;0BAGL,KAAK;+BAIL,KAAK;;AApBN;IADC,aAAa,EAAE;8BACH,iBAAiB;gEAAS;AAIvC;IADC,aAAa,EAAE;8BACJ,UAAU;+DAAoC;AAI1D;IADC,iBAAiB,CAAC,YAAY,CAAC;;0DACS;AAUzC;IADC,iBAAiB,CAAC,kBAAkB,CAAC;;gEAClB;AAIpB;IADC,aAAa,EAAE;8BACE,UAAU;qEAAS;AAkHvC,WAAiB,2BAA2B;IAQ7B,yCAAa,GAAU;QAClC,IAAI,EAAE;YACJ,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;SACvB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW;SACxB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW;SACxB;KACF,CAAC;AAEJ,CAAC,EApBgB,2BAA2B,KAA3B,2BAA2B,QAoB3C","sourcesContent":["import { Component, HostBinding, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n BooleanValueModelChain,\n Command, DelegatingValueModel,\n Dsl,\n StoreInValueModel,\n TrackExternal,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { lang } from '@coolon/typescript-utilities';\n\nimport { isEmpty } from 'lodash-es';\nimport { CommandFace } from '../../../../components/commands/command-face';\nimport { DisposableComponent } from '../../../../components/disposable-component';\nimport { InteractionService } from '../../../services/interaction.service';\nimport { InPlaceInteractionContextComponent } from '../../inplace-interaction-context/in-place-interaction-context.component';\nimport { InputActivity } from '../../input-activities/input-activity';\nimport { StringInputActivity } from '../../input-activities/string-input-activity';\nimport { InlineEditorModel } from './inline-editor-model';\n\n/**\n * @example\n * const source: ValueModel<string> = ...;\n * const model = InlineEditorModel.create(source, {\n * save(updated:string, context: EditContext) => {\n * try {\n * try and save the thing...\n * } catch(error) {\n * context.injectError(error)\n * }\n * }).validateUsing(Validator.present(\"We'll need a value\");\n *\n * # in the view\n * <aup-inline-string-editor\n * label=\"My field\"\n * placeHolder=\"I'm ready for a string...\"\n * [editorModel]=\"model\"></aup-inline-string-editor>\n */\n@Component({\n selector: 'aup-inline-string-editor',\n templateUrl: './inline-string-editor.component.html',\n styleUrls: [] // See assets/interaction/editor/inline-string-editor.scss\n})\nexport class InlineStringEditorComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @TrackExternal()\n editorModel: InlineEditorModel<string>;\n\n @Input()\n @TrackExternal()\n facesModel: ValueModel<InlineStringEditorComponent.Faces>;\n\n @Input()\n @StoreInValueModel('facesModel')\n faces: InlineStringEditorComponent.Faces;\n\n @ViewChild(InPlaceInteractionContextComponent)\n interactionContext: InPlaceInteractionContextComponent<any, any, any>;\n\n @Input()\n label: string;\n\n @Input()\n @StoreInValueModel('placeHolderModel')\n placeHolder: string;\n\n @Input()\n @TrackExternal()\n placeHolderModel: ValueModel<string>;\n\n readonly description: ValueModelChain<string>;\n empty: BooleanValueModelChain;\n readonly editCommand: Command<void>;\n\n displayValue: ValueModelChain<string>;\n readonly editFaceModel: ValueModelChain<CommandFace>;\n readonly saveFace: ValueModelChain<CommandFace>;\n readonly cancelFace: ValueModelChain<CommandFace>;\n\n readonly editingEnabled = this.registerDisposable(new DelegatingValueModel<boolean>());\n\n constructor(interactionService: InteractionService) {\n super();\n const { chain, when, valueOf } = Dsl.disposeWith(this);\n const modalIC = interactionService.createModalInteractionContextDisposedWith(this);\n\n const resolvedFacesModel = chain(this.facesModel).map(userFaces => {\n return {\n ...InlineStringEditorComponent.DEFAULT_FACES, // todo: should really inject app wide defaults as well\n ...userFaces\n };\n }, { allowNil: true });\n\n this.editFaceModel = resolvedFacesModel.pluck('edit');\n this.saveFace = resolvedFacesModel.pluck('save');\n this.cancelFace = resolvedFacesModel.pluck('cancel');\n\n const self = this;\n this.editCommand = Command.create(async () => {\n this.editorModel.editing.value = true;\n try {\n await this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData());\n } catch (e) {\n // don't care if they cancelled, just hiding the console errors\n } finally {\n this.editorModel.editing.value = false;\n }\n }).enableWhile(this.editingEnabled);\n\n this.onDispose(() => this.cancelEdit());\n\n }\n\n\n ngOnInit(): void {\n // our editor model is a one time binding without delegates so we can only\n // use it once we've been initialised\n const { chain, when, valueOf } = Dsl.disposeWith(this);\n\n if (!this.editorModel) {\n lang.illegalState('editorModel is required');\n }\n\n this.editingEnabled.setDelegate(this.editorModel.editingEnabled);\n\n when(this.editorModel.editing).becomesTruthy(() => {\n this.editCommand.execute();\n }, { asLongAs: this.editCommand.enabled });\n\n when(this.editorModel.editing).becomesFalsey(() => this.cancelEdit());\n\n this.empty = valueOf.any(\n chain.stringValue(this.editorModel.valueModel).isBlank()\n // deviceDescription.isNil()\n ).areTruthy();\n\n this.displayValue = chain(this.editorModel.valueModel).map(v => {\n return isEmpty(v) ? this.placeHolderModel.value : v;\n }, { dependsOn: this.placeHolderModel, allowNil: true });\n\n }\n\n\n private createInputActivityData(): InputActivity.Data<string> {\n const self = this;\n return {\n initialValue: self.editorModel.valueModel.value,\n confirmFace: self.saveFace.value,\n cancelFace: self.cancelFace.value,\n placeholder: self.placeHolderModel.value,\n label: self.label,\n layout: InputActivity.Layout.INLINE,\n validators: self.editorModel.validators.value,\n async save(value: string, inputContext: InputActivity.Context): Promise<void> {\n await self.editorModel.saveCallback(value, inputContext);\n }\n };\n }\n\n cancelEdit() {\n if (this.isEditing()) {\n this.interactionContext.cancelActiveActivity();\n }\n }\n\n startEdit() {\n if (!this.isEditing() && this.editCommand.enabled.value) {\n this.editCommand.execute();\n }\n }\n\n private isEditing() {\n return this.interactionContext.isActive();\n }\n\n isEmpty(): boolean {\n return this.empty.value;\n }\n\n\n}\n\nexport namespace InlineStringEditorComponent {\n\n export interface Faces {\n edit?: CommandFace;\n save?: CommandFace;\n cancel?: CommandFace;\n }\n\n export const DEFAULT_FACES: Faces = {\n edit: {\n icon: () => 'mat:edit'\n },\n save: {\n icon: () => 'mat:check'\n },\n cancel: {\n icon: () => 'mat:clear'\n }\n };\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"InlineStringEditorComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../../components/disposable-component","name":"DisposableComponent","line":43,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"aup-inline-string-editor","styleUrls":[],"template":"<div class=\"container\" *ngIf=\"!editorModel.isEditing()\">\n <mat-form-field appearance=\"standard\" floatLabel=\"always\" (click)=\"startEdit()\"\n [class.editable]=\"editingEnabled.value\" [class.empty]=\"isEmpty()\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeHolder}}\"\n [ngModel]=\"editorModel.valueModel.value\"\n [disabled]=\"true\"\n >\n <!-- <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>-->\n <!-- <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>-->\n <!-- <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>-->\n </mat-form-field>\n <aup-command *ngIf=\"editCommand.enabled.value\" [command]=\"editCommand\" [faceModel]=\"editFaceModel\"></aup-command>\n</div>\n<aup-in-place-interaction-context [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n"}]}],"members":{"editorModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":46,"character":3}}]}],"facesModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":50,"character":3}}]}],"faces":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":54,"character":3},"arguments":["facesModel"]}]}],"interactionContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":57,"character":3},"arguments":[{"__symbolic":"reference","module":"../../inplace-interaction-context/in-place-interaction-context.component","name":"InPlaceInteractionContextComponent","line":57,"character":13}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"placeHolder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":64,"character":3},"arguments":["placeHolderModel"]}]}],"placeHolderModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":68,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../../services/interaction.service","name":"InteractionService","line":82,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}],"createInputActivityData":[{"__symbolic":"method"}],"cancelEdit":[{"__symbolic":"method"}],"startEdit":[{"__symbolic":"method"}],"isEditing":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"InlineStringEditorComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../../components/disposable-component","name":"DisposableComponent","line":44,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"aup-inline-string-editor","styleUrls":[],"template":"<div class=\"container\" *ngIf=\"!editorModel.isEditing()\">\n <mat-form-field appearance=\"standard\" floatLabel=\"always\" (click)=\"startEdit()\"\n [class.editable]=\"editingEnabled.value\" [class.empty]=\"isEmpty()\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeHolder}}\"\n [ngModel]=\"editorModel.valueModel.value\"\n [disabled]=\"true\"\n >\n <!-- <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>-->\n <!-- <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>-->\n <!-- <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>-->\n </mat-form-field>\n <aup-command *ngIf=\"editCommand.enabled.value\" [command]=\"editCommand\" [faceModel]=\"editFaceModel\"></aup-command>\n</div>\n<aup-in-place-interaction-context [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n"}]}],"members":{"editorModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":47,"character":3}}]}],"facesModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":51,"character":3}}]}],"faces":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":55,"character":3},"arguments":["facesModel"]}]}],"interactionContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":58,"character":3},"arguments":[{"__symbolic":"reference","module":"../../inplace-interaction-context/in-place-interaction-context.component","name":"InPlaceInteractionContextComponent","line":58,"character":13}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"placeHolder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":65,"character":3},"arguments":["placeHolderModel"]}]}],"placeHolderModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":69,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../../services/interaction.service","name":"InteractionService","line":83,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}],"createInputActivityData":[{"__symbolic":"method"}],"cancelEdit":[{"__symbolic":"method"}],"startEdit":[{"__symbolic":"method"}],"isEditing":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}]}}}}]
@@ -1 +1 @@
1
- {"version":3,"file":"in-place-interaction-context.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAiB,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAK/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAEhG;;;;;;;;;;GAUG;AAMH,MAAM,OAAO,kCAA4C,SAAQ,mBAAmB;IAqBlF,YAAqB,kBAAsC,EAAwD,SAAwB;QACzI,KAAK,EAAE,CAAC;QADW,uBAAkB,GAAlB,kBAAkB,CAAoB;QAAwD,cAAS,GAAT,SAAS,CAAe;QAhB3I;;;WAGG;QAEH,yBAAoB,GAAG,IAAI,CAAC;IAa5B,CAAC;IAXD,IAAI,iBAAiB;;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,iBAAiB,KAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5F,CAAC;IAED,IACI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAMD,eAAe;QACb,IAAI,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,GAA2B;QAChD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,0BAA0B,CAAC,oBAAoB,EAAE,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAgB;QACtB,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,OAAO,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,WAAW,CAAa,OAAgB,EAAE,YAAiD,EAAE,IAAS;QACpG,OAAO,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED,kBAAkB,CAAK,OAAgB,EAAE,SAAyE;QAChH,OAAO,IAAI,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;IAID,QAAQ;QACN,OAAO,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED,aAAa,CAAa,YAAiD,EAAE,IAAS,EAAE,OAAoC;QAC1H,OAAO,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;;;YA1EF,SAAS,SAAC;gBACT,QAAQ,EAAE,kCAAkC;gBAC5C,oXAA4D;;aAE7D;;;YAlBQ,kBAAkB;4CAwCqC,MAAM,SAAC,eAAe,cAAG,QAAQ;;;yCAnB9F,SAAS,SAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;mCAO/C,KAAK;qBAOL,WAAW,SAAC,cAAc","sourcesContent":["import { AfterViewInit, Component, HostBinding, Inject, Input, Optional, ViewChild } from '@angular/core';\nimport { MAT_TABS_CONFIG, MatTabsConfig } from '@angular/material/tabs';\nimport { Constructable } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { InteractionService } from '../../services/interaction.service';\nimport { ActivityContainerComponent } from '../activity-container/activity-container.component';\n\n/**\n * @example\n * <aup-in-place-interaction-context #inPlaceInteractionContext>\n * </aup-in-place-interaction-context>\n *\n * in your component\n * @ViewChild('inPlaceInteractionContext', { static: true })\n * interactionContext: InteractionContext;\n *\n *\n */\n@Component({\n selector: 'aup-in-place-interaction-context',\n templateUrl: './in-place-interaction-context.component.html',\n styleUrls: ['./in-place-interaction-context.component.scss']\n})\nexport class InPlaceInteractionContextComponent<D, R, E> extends DisposableComponent implements InteractionContext, AfterViewInit {\n\n @ViewChild('activityContainer', { static: true })\n activityContainerComponent: ActivityContainerComponent<any, any, any>;\n\n /**\n * If true then the first startActivity call will slide the activity into view. If false\n * the activity will replace the existing content immediately.\n */\n @Input()\n animateFirstActivity = true;\n\n get animationDuration(): string {\n return this.animateFirstActivity ? (this.tabConfig?.animationDuration || '500ms') : '0ms';\n }\n\n @HostBinding(\"class.active\")\n get active() {\n return this.isActive();\n }\n\n constructor(readonly interactionService: InteractionService, @Inject(MAT_TABS_CONFIG) @Optional() private readonly tabConfig: MatTabsConfig) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.interactionService.registerInplaceInteractionContext(this);\n }\n\n initialise(id: string, api: InteractionService.Api) {\n this.activityContainerComponent.initialise(id, api);\n }\n\n get identifier() {\n return this.activityContainerComponent.identifier;\n }\n\n alert(alert: Alert): Promise<void> {\n return this.activityContainerComponent.alert(alert);\n }\n\n cancelActiveActivity(): Promise<boolean> {\n return this.activityContainerComponent.cancelActiveActivity();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.activityContainerComponent.confirm(confirm);\n }\n\n confirmOrReject(confirm: Confirm): Promise<void> {\n return this.activityContainerComponent.confirmOrReject(confirm);\n }\n\n confirmThen<D1, R1, E1>(confirm: Confirm, activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.activityContainerComponent.confirmThen(confirm, activityType);\n }\n\n confirmThenExecute<R1>(confirm: Confirm, operation: (interactionContext: InteractionContext) => (Promise<R1> | R1)): Promise<R1> {\n return this.activityContainerComponent.confirmThenExecute(confirm, operation);\n }\n\n\n\n isActive(): boolean {\n return this.activityContainerComponent.isActive();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1, options?: InteractionContext.Options): Promise<R1> {\n return this.activityContainerComponent.startActivity(activityType, data, options);\n }\n\n}\n"]}
1
+ {"version":3,"file":"in-place-interaction-context.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAiB,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAK/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAEhG;;;;;;;;;;GAUG;AAMH,MAAM,OAAO,kCAA4C,SAAQ,mBAAmB;IAqBlF,YAAqB,kBAAsC,EAAwD,SAAwB;QACzI,KAAK,EAAE,CAAC;QADW,uBAAkB,GAAlB,kBAAkB,CAAoB;QAAwD,cAAS,GAAT,SAAS,CAAe;QAhB3I;;;WAGG;QAEH,yBAAoB,GAAG,IAAI,CAAC;IAa5B,CAAC;IAXD,IAAI,iBAAiB;;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,iBAAiB,KAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5F,CAAC;IAED,IACI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAMD,eAAe;QACb,IAAI,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,GAA2B;QAChD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,0BAA0B,CAAC,oBAAoB,EAAE,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAgB;QACtB,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,OAAO,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,WAAW,CAAa,OAAgB,EAAE,YAAiD,EAAE,IAAS;QACpG,OAAO,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED,kBAAkB,CAAK,OAAgB,EAAE,SAAyE;QAChH,OAAO,IAAI,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;IAID,QAAQ;QACN,OAAO,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED,aAAa,CAAa,YAAiD,EAAE,IAAS,EAAE,OAAoC;QAC1H,OAAO,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;;;YA1EF,SAAS,SAAC;gBACT,QAAQ,EAAE,kCAAkC;gBAC5C,oXAA4D;;aAE7D;;;YAlBQ,kBAAkB;4CAwCqC,MAAM,SAAC,eAAe,cAAG,QAAQ;;;yCAnB9F,SAAS,SAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;mCAO/C,KAAK;qBAOL,WAAW,SAAC,cAAc","sourcesContent":["import { AfterViewInit, Component, HostBinding, Inject, Input, Optional, ViewChild } from '@angular/core';\nimport { MAT_TABS_CONFIG, MatTabsConfig } from '@angular/material/tabs';\nimport { Constructable } from '@coolon/pectin';\n\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { InteractionService } from '../../services/interaction.service';\nimport { ActivityContainerComponent } from '../activity-container/activity-container.component';\n\n/**\n * @example\n * <aup-in-place-interaction-context #inPlaceInteractionContext>\n * </aup-in-place-interaction-context>\n *\n * in your component\n * @ViewChild('inPlaceInteractionContext', { static: true })\n * interactionContext: InteractionContext;\n *\n *\n */\n@Component({\n selector: 'aup-in-place-interaction-context',\n templateUrl: './in-place-interaction-context.component.html',\n styleUrls: ['./in-place-interaction-context.component.scss']\n})\nexport class InPlaceInteractionContextComponent<D, R, E> extends DisposableComponent implements InteractionContext, AfterViewInit {\n\n @ViewChild('activityContainer', { static: true })\n activityContainerComponent: ActivityContainerComponent<any, any, any>;\n\n /**\n * If true then the first startActivity call will slide the activity into view. If false\n * the activity will replace the existing content immediately.\n */\n @Input()\n animateFirstActivity = true;\n\n get animationDuration(): string {\n return this.animateFirstActivity ? (this.tabConfig?.animationDuration || '500ms') : '0ms';\n }\n\n @HostBinding(\"class.active\")\n get active() {\n return this.isActive();\n }\n\n constructor(readonly interactionService: InteractionService, @Inject(MAT_TABS_CONFIG) @Optional() private readonly tabConfig: MatTabsConfig) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.interactionService.registerInplaceInteractionContext(this);\n }\n\n initialise(id: string, api: InteractionService.Api) {\n this.activityContainerComponent.initialise(id, api);\n }\n\n get identifier() {\n return this.activityContainerComponent.identifier;\n }\n\n alert(alert: Alert): Promise<void> {\n return this.activityContainerComponent.alert(alert);\n }\n\n cancelActiveActivity(): Promise<boolean> {\n return this.activityContainerComponent.cancelActiveActivity();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.activityContainerComponent.confirm(confirm);\n }\n\n confirmOrReject(confirm: Confirm): Promise<void> {\n return this.activityContainerComponent.confirmOrReject(confirm);\n }\n\n confirmThen<D1, R1, E1>(confirm: Confirm, activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.activityContainerComponent.confirmThen(confirm, activityType);\n }\n\n confirmThenExecute<R1>(confirm: Confirm, operation: (interactionContext: InteractionContext) => (Promise<R1> | R1)): Promise<R1> {\n return this.activityContainerComponent.confirmThenExecute(confirm, operation);\n }\n\n\n\n isActive(): boolean {\n return this.activityContainerComponent.isActive();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1, options?: InteractionContext.Options): Promise<R1> {\n return this.activityContainerComponent.startActivity(activityType, data, options);\n }\n\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { Component, HostBinding, HostListener, Inject, Input } from '@angular/core';
3
3
  import { Command, DirtyTrackingForm } from '@coolon/pectin';
4
- import * as _ from 'lodash';
4
+ import { isNil } from 'lodash-es';
5
5
  import { Enum } from 'typescript-string-enums';
6
6
  import { Activity, ACTIVITY_DATA } from '../../activity';
7
7
  // @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
@@ -70,7 +70,7 @@ export class InputActivity extends Activity {
70
70
  }
71
71
  }
72
72
  shouldCancelOnEscape() {
73
- return _.isNil(this.data.cancelOnEscape) // we default to true..
73
+ return isNil(this.data.cancelOnEscape) // we default to true..
74
74
  || this.data.cancelOnEscape;
75
75
  }
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/input-activity.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEzD,gHAAgH;AAChH,qHAAqH;AACrH,WAAW;AAEX,MAAM,OAAO,aAA0E,SAAQ,QAAc;IAiB3G,YAA4C,IAAO;;QACjD,KAAK,EAAE,CAAC;QADkC,SAAI,GAAJ,IAAI,CAAG;QAX7B,UAAK,GAAG,oBAAoB,CAAC;QAcjD,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAErD,qCAAqC;QACrC,IAAI,CAAC,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI;YACrC,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW;SACxB,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI;YACnC,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW;SACxB,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAS,EAAE;YAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;gBAC9B,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,MAAM,IAAI,GAAG,IAAI,CAAC;oBAClB,IAAI;wBACF,IAAI,OAAO,GAAG,IAAI,CAAC;wBACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;4BACpD,WAAW,CAAC,KAAa;gCACvB,OAAO,GAAG,KAAK,CAAC;gCAChB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACxC,CAAC;yBACF,CAAC,CAAC;wBACH,IAAI,OAAO,EAAE;4BACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;yBAClC;qBACF;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAClB;iBACF;qBAAM;oBACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBAClC;aAEF;QACH,CAAC,CAAA,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAlDD,IAEI,MAAM;;QACR,OAAO,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,mCAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;IACzD,CAAC;IAgDD,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED,IACI,sBAAsB;;QACxB,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,YAAY,mCAAI,EAAE,CAAA;IACrC,CAAC;IAGD,QAAQ;QACN,IAAI,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE;YACnE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAC9B;IACH,CAAC;IAED,oBAAoB;QAClB,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,uBAAuB;eAC3D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAChC,CAAC;;;YAnFF,SAAS,SAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;4CAkBZ,MAAM,SAAC,aAAa;;;oBAXhC,WAAW,SAAC,OAAO;qBAKnB,KAAK,YACL,WAAW,SAAC,aAAa;qCAuDzB,WAAW,SAAC,OAAO;uBAKnB,YAAY,SAAC,gBAAgB;;AAchC,WAAiB,aAAa;IAEf,oBAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;AAmBL,CAAC,EAxBgB,aAAa,KAAb,aAAa,QAwB7B","sourcesContent":["import { Component, HostBinding, HostListener, Inject, Input } from '@angular/core';\nimport { Command, DirtyTrackingForm, Form, Validator } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { Enum } from 'typescript-string-enums';\nimport { CommandFace } from '../../../components/commands/command-face';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\n\n// @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123\n// we're getting a metadata error for D for no reason that I can find and only during the build (ng serve works fine)\n// @dynamic\n@Component({ template: `` })\nexport class InputActivity<T, D extends InputActivity.Data<T> = InputActivity.Data<T>> extends Activity<D, T> {\n\n readonly confirmCommand: Command<void>;\n readonly cancelCommand: Command<void>;\n readonly valueModel: Form.ValueModelBase<T>;\n\n @HostBinding('class') class = 'aup-input-activity';\n\n readonly confirmFace: CommandFace;\n readonly cancelFace: CommandFace;\n\n @Input()\n @HostBinding('attr.layout')\n get layout(): InputActivity.Layout {\n return this.data?.layout ?? InputActivity.Layout.BLOCK;\n }\n\n constructor(@Inject(ACTIVITY_DATA) readonly data: D) {\n super();\n\n const form = new DirtyTrackingForm();\n this.valueModel = form.valueModel<T>(this.data.initialValue);\n this.valueModel.validateUsing(data.validators || []);\n\n // TODO: move to global configuration\n this.confirmFace = data.confirmFace ?? {\n icon: () => 'mat:check'\n };\n this.cancelFace = data.cancelFace ?? {\n icon: () => 'mat:clear'\n };\n\n this.confirmCommand = Command.create(async () => {\n if (this.valueModel.validate()) {\n if (data.save) {\n const self = this;\n try {\n let allGood = true;\n const result = await data.save(this.valueModel.value, {\n injectError(error: string) {\n allGood = false;\n self.valueModel.injectErrors([error]);\n }\n });\n if (allGood) {\n this.done(this.valueModel.value);\n }\n } catch (e) {\n console.error(e);\n }\n } else {\n this.done(this.valueModel.value);\n }\n\n }\n });\n this.cancelCommand = Command.create(() => {\n this.cancel();\n });\n\n this.busyWhile(this.confirmCommand.busy);\n }\n\n onActivityReady() {\n this.valueModel.focusContext.requestFocus();\n }\n\n @HostBinding(\"class\")\n get additionalCssClassName():string {\n return this.data.cssClassName ?? ''\n }\n\n @HostListener('keydown.escape')\n onEscape() {\n if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {\n this.cancelCommand.execute();\n }\n }\n\n shouldCancelOnEscape(): boolean {\n return _.isNil(this.data.cancelOnEscape) // we default to true..\n || this.data.cancelOnEscape;\n }\n\n}\n\nexport namespace InputActivity {\n\n export const Layout = Enum({\n INLINE: 'inline',\n BLOCK: 'block'\n });\n export type Layout = Enum<typeof Layout>;\n\n export interface Context {\n injectError(error: string);\n }\n\n export interface Data<T> {\n initialValue: T;\n label?: string;\n placeholder?: string;\n layout?: InputActivity.Layout\n confirmFace?: CommandFace,\n cancelFace?: CommandFace,\n validators?: Validator<T>[],\n cancelOnEscape?: boolean,\n cssClassName?: string,\n save?(valueModel: T, interactionContext?: Context): void | Promise<void>\n }\n}\n"]}
1
+ {"version":3,"file":"input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/input-activity.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, HostBinding, HostListener, Inject, Input } from '@angular/core';\nimport { Command, DirtyTrackingForm, Form, Validator } from '@coolon/pectin';\n\nimport { isNil } from 'lodash-es';\nimport { Enum } from 'typescript-string-enums';\nimport { CommandFace } from '../../../components/commands/command-face';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\n\n// @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123\n// we're getting a metadata error for D for no reason that I can find and only during the build (ng serve works fine)\n// @dynamic\n@Component({ template: `` })\nexport class InputActivity<T, D extends InputActivity.Data<T> = InputActivity.Data<T>> extends Activity<D, T> {\n\n readonly confirmCommand: Command<void>;\n readonly cancelCommand: Command<void>;\n readonly valueModel: Form.ValueModelBase<T>;\n\n @HostBinding('class') class = 'aup-input-activity';\n\n readonly confirmFace: CommandFace;\n readonly cancelFace: CommandFace;\n\n @Input()\n @HostBinding('attr.layout')\n get layout(): InputActivity.Layout {\n return this.data?.layout ?? InputActivity.Layout.BLOCK;\n }\n\n constructor(@Inject(ACTIVITY_DATA) readonly data: D) {\n super();\n\n const form = new DirtyTrackingForm();\n this.valueModel = form.valueModel<T>(this.data.initialValue);\n this.valueModel.validateUsing(data.validators || []);\n\n // TODO: move to global configuration\n this.confirmFace = data.confirmFace ?? {\n icon: () => 'mat:check'\n };\n this.cancelFace = data.cancelFace ?? {\n icon: () => 'mat:clear'\n };\n\n this.confirmCommand = Command.create(async () => {\n if (this.valueModel.validate()) {\n if (data.save) {\n const self = this;\n try {\n let allGood = true;\n const result = await data.save(this.valueModel.value, {\n injectError(error: string) {\n allGood = false;\n self.valueModel.injectErrors([error]);\n }\n });\n if (allGood) {\n this.done(this.valueModel.value);\n }\n } catch (e) {\n console.error(e);\n }\n } else {\n this.done(this.valueModel.value);\n }\n\n }\n });\n this.cancelCommand = Command.create(() => {\n this.cancel();\n });\n\n this.busyWhile(this.confirmCommand.busy);\n }\n\n onActivityReady() {\n this.valueModel.focusContext.requestFocus();\n }\n\n @HostBinding(\"class\")\n get additionalCssClassName():string {\n return this.data.cssClassName ?? ''\n }\n\n @HostListener('keydown.escape')\n onEscape() {\n if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {\n this.cancelCommand.execute();\n }\n }\n\n shouldCancelOnEscape(): boolean {\n return isNil(this.data.cancelOnEscape) // we default to true..\n || this.data.cancelOnEscape;\n }\n\n}\n\nexport namespace InputActivity {\n\n export const Layout = Enum({\n INLINE: 'inline',\n BLOCK: 'block'\n });\n export type Layout = Enum<typeof Layout>;\n\n export interface Context {\n injectError(error: string);\n }\n\n export interface Data<T> {\n initialValue: T;\n label?: string;\n placeholder?: string;\n layout?: InputActivity.Layout\n confirmFace?: CommandFace,\n cancelFace?: CommandFace,\n validators?: Validator<T>[],\n cancelOnEscape?: boolean,\n cssClassName?: string,\n save?(valueModel: T, interactionContext?: Context): void | Promise<void>\n }\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"InputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../activity","name":"Activity","line":11,"character":95},"arity":2,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"template":""}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":17,"character":3},"arguments":["class"]}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":23,"character":3},"arguments":["attr.layout"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":15},"arguments":[{"__symbolic":"reference","module":"../../activity","name":"ACTIVITY_DATA","line":28,"character":22}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":28,"character":52,"context":{"typeName":"D"}}]}],"onActivityReady":[{"__symbolic":"method"}],"additionalCssClassName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":78,"character":3},"arguments":["class"]}]}],"onEscape":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":83,"character":3},"arguments":["keydown.escape"]}]}],"shouldCancelOnEscape":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"InputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../activity","name":"Activity","line":12,"character":95},"arity":2,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"template":""}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":18,"character":3},"arguments":["class"]}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":24,"character":3},"arguments":["attr.layout"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":15},"arguments":[{"__symbolic":"reference","module":"../../activity","name":"ACTIVITY_DATA","line":29,"character":22}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":29,"character":52,"context":{"typeName":"D"}}]}],"onActivityReady":[{"__symbolic":"method"}],"additionalCssClassName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":79,"character":3},"arguments":["class"]}]}],"onEscape":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":84,"character":3},"arguments":["keydown.escape"]}]}],"shouldCancelOnEscape":[{"__symbolic":"method"}]}}}}]
@@ -1,6 +1,6 @@
1
1
  import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
2
  import { assert, GarbageCollector } from '@coolon/pectin';
3
- import _ from 'lodash';
3
+ import { isFunction } from 'lodash-es';
4
4
  export class InteractionContextTriggerFor extends GarbageCollector {
5
5
  constructor() {
6
6
  super();
@@ -40,7 +40,7 @@ export class InteractionContextTriggerFor extends GarbageCollector {
40
40
  });
41
41
  }
42
42
  prepareActivityData() {
43
- return _.isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
43
+ return isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
44
44
  }
45
45
  }
46
46
  InteractionContextTriggerFor.decorators = [
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-context-trigger-for.directive.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/interaction/directives/interaction-context-trigger-for.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,MAAM,EAAiB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,CAAC,MAAM,QAAQ,CAAC;AAOvB,MAAM,OAAO,4BAAsC,SAAQ,gBAAgB;IAoBzE;QACE,KAAK,EAAE,CAAC;QANV,iBAAY,GAAG,IAAI,YAAY,EAAK,CAAC;QAGrC,sBAAiB,GAAG,IAAI,YAAY,EAAK,CAAC;IAI1C,CAAC;IAGD,OAAO,CAAC,KAAoB;QAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,EAAE;YACpD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,CAAC;SAC7D;IACH,CAAC;IAGD,OAAO,CAAC,KAAiB;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,EAAE;YACpD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,CAAC;SAC7D;IACH,CAAC;IAES,aAAa;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,IAAI,CAAC,+BAA+B,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC;aACtF,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACnG,CAAC;;;YAhEF,SAAS,SAAC;gBACT,QAAQ,EAAE,mCAAmC;aAC9C;;;;8CAGE,KAAK;4BAGL,KAAK;2BAGL,KAAK;kCAGL,KAAK;2BAGL,MAAM;gCAGN,MAAM;sBAON,YAAY,SAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;sBAWtC,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { assert, Constructable, GarbageCollector } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { Activity } from '../activity';\nimport { InteractionContext } from '../interaction-context';\n\n@Directive({\n selector: '[aupInteractionContextTriggerFor]'\n})\nexport class InteractionContextTriggerFor<D, R, E> extends GarbageCollector {\n\n @Input()\n aupInteractionContextTriggerFor: Pick<InteractionContext, 'startActivity' | 'isActive' | 'cancelActiveActivity'>;\n\n @Input()\n activityClass: Constructable<Activity<D, R, E>>;\n\n @Input()\n activityData?: D;\n\n @Input()\n activityDataFactory?: () => D;\n\n @Output()\n activityDone = new EventEmitter<R>();\n\n @Output()\n activityCancelled = new EventEmitter<E>();\n\n constructor() {\n super();\n }\n\n @HostListener('keyup.enter', ['$event'])\n onEnter(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (!this.aupInteractionContextTriggerFor.isActive()) {\n this.startActivity();\n } else {\n this.aupInteractionContextTriggerFor.cancelActiveActivity();\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (!this.aupInteractionContextTriggerFor.isActive()) {\n this.startActivity();\n } else {\n this.aupInteractionContextTriggerFor.cancelActiveActivity();\n }\n }\n\n protected startActivity() {\n assert.isTruthy(this.aupInteractionContextTriggerFor);\n assert.isFalsey(this.aupInteractionContextTriggerFor.isActive());\n assert.isTruthy(this.activityClass);\n this.aupInteractionContextTriggerFor.startActivity(this.activityClass, this.activityData)\n .then(result => {\n this.activityDone.emit(result);\n })\n .catch(error => {\n this.activityCancelled.emit(error);\n });\n }\n\n prepareActivityData(): D {\n return _.isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;\n }\n\n}\n"]}
1
+ {"version":3,"file":"interaction-context-trigger-for.directive.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/interaction/directives/interaction-context-trigger-for.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,MAAM,EAAiB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAOvC,MAAM,OAAO,4BAAsC,SAAQ,gBAAgB;IAoBzE;QACE,KAAK,EAAE,CAAC;QANV,iBAAY,GAAG,IAAI,YAAY,EAAK,CAAC;QAGrC,sBAAiB,GAAG,IAAI,YAAY,EAAK,CAAC;IAI1C,CAAC;IAGD,OAAO,CAAC,KAAoB;QAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,EAAE;YACpD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,CAAC;SAC7D;IACH,CAAC;IAGD,OAAO,CAAC,KAAiB;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,EAAE;YACpD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,CAAC;SAC7D;IACH,CAAC;IAES,aAAa;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,IAAI,CAAC,+BAA+B,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC;aACtF,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACjB,OAAO,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACjG,CAAC;;;YAhEF,SAAS,SAAC;gBACT,QAAQ,EAAE,mCAAmC;aAC9C;;;;8CAGE,KAAK;4BAGL,KAAK;2BAGL,KAAK;kCAGL,KAAK;2BAGL,MAAM;gCAGN,MAAM;sBAON,YAAY,SAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;sBAWtC,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { assert, Constructable, GarbageCollector } from '@coolon/pectin';\n\nimport { isFunction } from 'lodash-es';\nimport { Activity } from '../activity';\nimport { InteractionContext } from '../interaction-context';\n\n@Directive({\n selector: '[aupInteractionContextTriggerFor]'\n})\nexport class InteractionContextTriggerFor<D, R, E> extends GarbageCollector {\n\n @Input()\n aupInteractionContextTriggerFor: Pick<InteractionContext, 'startActivity' | 'isActive' | 'cancelActiveActivity'>;\n\n @Input()\n activityClass: Constructable<Activity<D, R, E>>;\n\n @Input()\n activityData?: D;\n\n @Input()\n activityDataFactory?: () => D;\n\n @Output()\n activityDone = new EventEmitter<R>();\n\n @Output()\n activityCancelled = new EventEmitter<E>();\n\n constructor() {\n super();\n }\n\n @HostListener('keyup.enter', ['$event'])\n onEnter(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (!this.aupInteractionContextTriggerFor.isActive()) {\n this.startActivity();\n } else {\n this.aupInteractionContextTriggerFor.cancelActiveActivity();\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (!this.aupInteractionContextTriggerFor.isActive()) {\n this.startActivity();\n } else {\n this.aupInteractionContextTriggerFor.cancelActiveActivity();\n }\n }\n\n protected startActivity() {\n assert.isTruthy(this.aupInteractionContextTriggerFor);\n assert.isFalsey(this.aupInteractionContextTriggerFor.isActive());\n assert.isTruthy(this.activityClass);\n this.aupInteractionContextTriggerFor.startActivity(this.activityClass, this.activityData)\n .then(result => {\n this.activityDone.emit(result);\n })\n .catch(error => {\n this.activityCancelled.emit(error);\n });\n }\n\n prepareActivityData(): D {\n return isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;\n }\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"InteractionContextTriggerFor":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":9,"character":59},"arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":6,"character":1},"arguments":[{"selector":"[aupInteractionContextTriggerFor]"}]}],"members":{"aupInteractionContextTriggerFor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"activityClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"activityData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"activityDataFactory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"activityDone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":3}}]}],"activityCancelled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"onEnter":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":33,"character":3},"arguments":["keyup.enter",["$event"]]}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":44,"character":3},"arguments":["click",["$event"]]}]}],"startActivity":[{"__symbolic":"method"}],"prepareActivityData":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"InteractionContextTriggerFor":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":10,"character":59},"arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[aupInteractionContextTriggerFor]"}]}],"members":{"aupInteractionContextTriggerFor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"activityClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"activityData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"activityDataFactory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"activityDone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"activityCancelled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"onEnter":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":34,"character":3},"arguments":["keyup.enter",["$event"]]}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":45,"character":3},"arguments":["click",["$event"]]}]}],"startActivity":[{"__symbolic":"method"}],"prepareActivityData":[{"__symbolic":"method"}]}}}}]
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Component, Input } from '@angular/core';
3
3
  import { Command, DelegatingValueModel, Dsl, ListModel, StoreInListModel, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';
4
- import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
4
+ import { Memoize } from '@typescript-plus/fast-memoize-decorator';
5
5
  import { CommandFace } from '../../components/commands/command-face';
6
6
  import { DisposableComponent } from '../../components/disposable-component';
7
7
  import { PlaceComponent } from '../place-component';
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-place-navigation.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/components/abstract-place-navigation.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,OAAO,EAEP,oBAAoB,EACpB,GAAG,EACH,SAAS,EAET,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEb,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAU7E,MAAM,OAAO,gCAAiC,SAAQ,mBAAmB;IAwBvE,YAAqB,WAAwB;QAC3C,KAAK,EAAE,CAAC;QADW,gBAAW,GAAX,WAAW,CAAa;QALpC,0BAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,oBAAoB,EAAkB,CAAC,CAAC;QAG5F,oBAAe,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;QAIvD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;YAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;YACtC,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,eAAgC,EAAE,EAAE;YAC/E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAC,YAAY,EAAE,eAAe,EAAC,CAAC,CAAC;QACtH,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAExF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACpD,OAAO;gBACL,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,KAAK,CAAC;aAC/C,CAAC;QACJ,CAAC,EAAE;YACD,SAAS,EAAE,IAAI,CAAC,qBAAqB;SACtC,CAAC,CAAC;QAEH,uGAAuG;QACvG,qDAAqD;QACrD,+DAA+D;QAC/D,yEAAyE;QACzE,iDAAiD;IACnD,CAAC;IAES,wBAAwB,CAAC,MAA4B;QAC7D,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjF,CAAC;IAGD,iBAAiB,CAAC,QAAyB;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAY,CAAC;QACxD,OAAO;YACL,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvF,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC;YACzG,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;SAC9F,CAAC;IACJ,CAAC;IAED,QAAQ;IACR,CAAC;;;YA5EF,SAAS,SAAC;gBACT,QAAQ,EAAE,EAAE;aACb;;;YAXQ,WAAW;;;qBAcjB,KAAK;0BAGL,KAAK;0BAIL,KAAK;+BAGL,KAAK;;AATN;IADU,gBAAgB,CAAC,aAAa,CAAC;;gEACD;AAGxC;IADU,aAAa,EAAE;8BACZ,SAAS;qEAAgC;AAItD;IADU,iBAAiB,CAAC,kBAAkB,CAAC;8BAClC,oBAAoB;qEAAC;AAGlC;IADU,aAAa,EAAE;8BACP,UAAU;0EAAuB;AAkDnD;IADC,OAAO,EAAE;;qCACkB,eAAe;;yEAO1C","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport {\n Command,\n Constructable,\n DelegatingValueModel,\n Dsl,\n ListModel,\n ListModelChain,\n StoreInListModel,\n StoreInValueModel,\n TrackExternal,\n TransactionObserver,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { CommandFace } from '../../components/commands/command-face';\nimport { DisposableComponent } from '../../components/disposable-component';\nimport { TrackBy } from '../../components/track-by';\nimport { NavItem } from '../nav-item';\nimport { PlaceComponent } from '../place-component';\nimport { PlaceDefinition } from '../place-definition';\nimport { PlaceRouter } from '../place-router';\nimport { Visit } from '../visit';\nimport { PlaceOutletComponent } from './place-outlet/place-outlet.component';\n\ninterface MenuItem {\n active: boolean;\n place: PlaceDefinition\n}\n\n@Component({\n template: ''\n})\nexport class AbstractPlaceNavigationComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInListModel('placesModel')\n places: Constructable<PlaceComponent>[];\n\n @Input() @TrackExternal()\n placesModel: ListModel<Constructable<PlaceComponent>>;\n\n\n @Input() @StoreInValueModel('placeOutletModel')\n placeOutlet: PlaceOutletComponent;\n\n @Input() @TrackExternal()\n placeOutletModel: ValueModel<PlaceOutletComponent>;\n\n private readonly placeDefinitions: ListModelChain<PlaceDefinition>;\n readonly menuItems: ListModelChain<MenuItem>;\n\n readonly commandFactory: Command.Factory<PlaceDefinition, void>;\n readonly _activePlaceComponent = this.registerDisposable(new DelegatingValueModel<PlaceComponent>());\n private activePlaceDefinition: ValueModelChain<PlaceDefinition>;\n\n readonly trackByPlaceDef = (data:MenuItem) => data.place;\n\n constructor(readonly placeRouter: PlaceRouter) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.placeDefinitions = chain(this.placesModel)\n .map(c => PlaceComponent.getDefinition(c))\n .select(d => {\n const guard = placeRouter.accessGuard.value;\n const state = placeRouter.state.value;\n return guard.isAuthorised(d) || state.isPlaceActive(d);\n }, { dependsOn: [placeRouter.accessGuard, placeRouter.state] });\n\n this.commandFactory = Command.createFactory((placeDefinition: PlaceDefinition) => {\n this.placeOutlet.navigate(new Visit(placeDefinition));\n });\n\n when(this.placeOutletModel).changes(outlet => this.handlePlaceOutLetChanged(outlet), {initialValue: \"triggerChange\"});\n this.activePlaceDefinition = chain(this._activePlaceComponent).pluck('placeDefinition');\n\n this.menuItems = chain(this.placeDefinitions).map(d => {\n return {\n place: d,\n active: this.activePlaceDefinition.value === d\n };\n }, {\n dependsOn: this.activePlaceDefinition\n });\n\n // const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));\n // txo.observe('this.placesModel', this.placesModel);\n // txo.observe('this.placeDefinitions', this.placeDefinitions);\n // txo.observe('this.activePlaceDefinition', this.activePlaceDefinition);\n // txo.observe('this.menuItems', this.menuItems);\n }\n\n protected handlePlaceOutLetChanged(outlet: PlaceOutletComponent) {\n this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null)\n }\n\n @Memoize()\n getNavigationFace(placeDef: PlaceDefinition): CommandFace {\n const navItem = placeDef.getPlaceData('nav') as NavItem;\n return {\n text: () => navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']),\n tooltip: () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getPlaceData('navTooltip', null),\n icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null)\n };\n }\n\n ngOnInit() {\n }\n\n}\n"]}
1
+ {"version":3,"file":"abstract-place-navigation.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/components/abstract-place-navigation.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport {\n Command,\n Constructable,\n DelegatingValueModel,\n Dsl,\n ListModel,\n ListModelChain,\n StoreInListModel,\n StoreInValueModel,\n TrackExternal,\n TransactionObserver,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport { CommandFace } from '../../components/commands/command-face';\nimport { DisposableComponent } from '../../components/disposable-component';\nimport { TrackBy } from '../../components/track-by';\nimport { NavItem } from '../nav-item';\nimport { PlaceComponent } from '../place-component';\nimport { PlaceDefinition } from '../place-definition';\nimport { PlaceRouter } from '../place-router';\nimport { Visit } from '../visit';\nimport { PlaceOutletComponent } from './place-outlet/place-outlet.component';\n\ninterface MenuItem {\n active: boolean;\n place: PlaceDefinition\n}\n\n@Component({\n template: ''\n})\nexport class AbstractPlaceNavigationComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInListModel('placesModel')\n places: Constructable<PlaceComponent>[];\n\n @Input() @TrackExternal()\n placesModel: ListModel<Constructable<PlaceComponent>>;\n\n\n @Input() @StoreInValueModel('placeOutletModel')\n placeOutlet: PlaceOutletComponent;\n\n @Input() @TrackExternal()\n placeOutletModel: ValueModel<PlaceOutletComponent>;\n\n private readonly placeDefinitions: ListModelChain<PlaceDefinition>;\n readonly menuItems: ListModelChain<MenuItem>;\n\n readonly commandFactory: Command.Factory<PlaceDefinition, void>;\n readonly _activePlaceComponent = this.registerDisposable(new DelegatingValueModel<PlaceComponent>());\n private activePlaceDefinition: ValueModelChain<PlaceDefinition>;\n\n readonly trackByPlaceDef = (data:MenuItem) => data.place;\n\n constructor(readonly placeRouter: PlaceRouter) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.placeDefinitions = chain(this.placesModel)\n .map(c => PlaceComponent.getDefinition(c))\n .select(d => {\n const guard = placeRouter.accessGuard.value;\n const state = placeRouter.state.value;\n return guard.isAuthorised(d) || state.isPlaceActive(d);\n }, { dependsOn: [placeRouter.accessGuard, placeRouter.state] });\n\n this.commandFactory = Command.createFactory((placeDefinition: PlaceDefinition) => {\n this.placeOutlet.navigate(new Visit(placeDefinition));\n });\n\n when(this.placeOutletModel).changes(outlet => this.handlePlaceOutLetChanged(outlet), {initialValue: \"triggerChange\"});\n this.activePlaceDefinition = chain(this._activePlaceComponent).pluck('placeDefinition');\n\n this.menuItems = chain(this.placeDefinitions).map(d => {\n return {\n place: d,\n active: this.activePlaceDefinition.value === d\n };\n }, {\n dependsOn: this.activePlaceDefinition\n });\n\n // const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));\n // txo.observe('this.placesModel', this.placesModel);\n // txo.observe('this.placeDefinitions', this.placeDefinitions);\n // txo.observe('this.activePlaceDefinition', this.activePlaceDefinition);\n // txo.observe('this.menuItems', this.menuItems);\n }\n\n protected handlePlaceOutLetChanged(outlet: PlaceOutletComponent) {\n this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null)\n }\n\n @Memoize()\n getNavigationFace(placeDef: PlaceDefinition): CommandFace {\n const navItem = placeDef.getPlaceData('nav') as NavItem;\n return {\n text: () => navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']),\n tooltip: () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getPlaceData('navTooltip', null),\n icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null)\n };\n }\n\n ngOnInit() {\n }\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"AbstractPlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../components/disposable-component","name":"DisposableComponent","line":34,"character":54},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"template":""}]}],"members":{"places":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInListModel","line":36,"character":12},"arguments":["placesModel"]}]}],"placesModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":39,"character":12}}]}],"placeOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":43,"character":12},"arguments":["placeOutletModel"]}]}],"placeOutletModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":46,"character":12}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../place-router","name":"PlaceRouter","line":58,"character":36}]}],"handlePlaceOutLetChanged":[{"__symbolic":"method"}],"getNavigationFace":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator/dist/src","name":"Memoize","line":96,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"AbstractPlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../components/disposable-component","name":"DisposableComponent","line":34,"character":54},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"template":""}]}],"members":{"places":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInListModel","line":36,"character":12},"arguments":["placesModel"]}]}],"placesModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":39,"character":12}}]}],"placeOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":43,"character":12},"arguments":["placeOutletModel"]}]}],"placeOutletModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":46,"character":12}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../place-router","name":"PlaceRouter","line":58,"character":36}]}],"handlePlaceOutLetChanged":[{"__symbolic":"method"}],"getNavigationFace":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator","name":"Memoize","line":96,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}}}}]