@coolon/angular-ui-powerups 1.10.0 → 1.11.0

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 (231) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/assets/styles.scss +7 -67
  3. package/bundles/coolon-angular-ui-powerups.umd.js +2649 -1623
  4. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  6. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  7. package/coolon-angular-ui-powerups.d.ts +57 -44
  8. package/coolon-angular-ui-powerups.metadata.json +1 -1
  9. package/esm2015/coolon-angular-ui-powerups.js +55 -42
  10. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  11. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  12. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  13. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  14. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  15. package/esm2015/lib/components/components.module.js +37 -6
  16. package/esm2015/lib/components/components.module.js.map +1 -1
  17. package/esm2015/lib/components/components.module.metadata.json +1 -1
  18. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  19. package/esm2015/lib/components/forms/abstract-input-activity.js +47 -0
  20. package/esm2015/lib/components/forms/abstract-input-activity.js.map +1 -0
  21. package/esm2015/lib/components/forms/abstract-input-activity.metadata.json +1 -0
  22. package/esm2015/lib/components/forms/abstract-input-activity.ngfactory.js.map +1 -0
  23. package/esm2015/lib/components/forms/abstract-input.component.js +6 -1
  24. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  25. package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
  26. package/esm2015/lib/components/forms/number-input/number-input.component.js +1 -1
  27. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  28. package/esm2015/lib/components/forms/password-input/password-input.component.js +1 -1
  29. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  30. package/esm2015/lib/components/forms/string-input/string-input-activity.js +22 -0
  31. package/esm2015/lib/components/forms/string-input/string-input-activity.js.map +1 -0
  32. package/esm2015/lib/components/forms/string-input/string-input-activity.metadata.json +1 -0
  33. package/esm2015/lib/components/forms/string-input/string-input-activity.ngfactory.js.map +1 -0
  34. package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
  35. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  36. package/esm2015/lib/components/forms/text-input/text-input.component.js +1 -1
  37. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  38. package/esm2015/lib/components/index.js +13 -0
  39. package/esm2015/lib/components/index.js.map +1 -1
  40. package/esm2015/lib/components/index.metadata.json +1 -1
  41. package/esm2015/lib/components/table/cell-editor.component.js +1 -0
  42. package/esm2015/lib/components/table/cell-editor.component.js.map +1 -0
  43. package/esm2015/lib/components/table/cell-editor.component.metadata.json +1 -0
  44. package/esm2015/lib/components/table/cell-renderer.js +1 -0
  45. package/esm2015/lib/components/table/cell-renderer.js.map +1 -0
  46. package/esm2015/lib/components/table/cell-renderer.metadata.json +1 -0
  47. package/esm2015/lib/components/table/column-model.js +160 -0
  48. package/esm2015/lib/components/table/column-model.js.map +1 -0
  49. package/esm2015/lib/components/table/column-model.metadata.json +1 -0
  50. package/esm2015/lib/components/table/column-template/column-template.directive.js +24 -0
  51. package/esm2015/lib/components/table/column-template/column-template.directive.js.map +1 -0
  52. package/esm2015/lib/components/table/column-template/column-template.directive.metadata.json +1 -0
  53. package/esm2015/lib/components/table/column-template/column-template.directive.ngfactory.js.map +1 -0
  54. package/esm2015/lib/components/table/column-text-properties.js +1 -0
  55. package/esm2015/lib/components/table/column-text-properties.js.map +1 -0
  56. package/esm2015/lib/components/table/column-text-properties.metadata.json +1 -0
  57. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js +27 -0
  58. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -0
  59. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.metadata.json +1 -0
  60. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.ngfactory.js.map +1 -0
  61. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  62. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js +21 -0
  63. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +1 -0
  64. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.metadata.json +1 -0
  65. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.ngfactory.js.map +1 -0
  66. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  67. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.js +50 -0
  68. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.js.map +1 -0
  69. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -0
  70. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.ngfactory.js.map +1 -0
  71. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.scss.shim.ngstyle.js.map +1 -0
  72. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.js +40 -0
  73. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.js.map +1 -0
  74. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.metadata.json +1 -0
  75. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.ngfactory.js.map +1 -0
  76. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  77. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js +32 -0
  78. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js.map +1 -0
  79. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.metadata.json +1 -0
  80. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.ngfactory.js.map +1 -0
  81. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  82. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +64 -0
  83. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -0
  84. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.metadata.json +1 -0
  85. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.ngfactory.js.map +1 -0
  86. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  87. package/esm2015/lib/components/table/table-def.js +1 -0
  88. package/esm2015/lib/components/table/table-def.js.map +1 -0
  89. package/esm2015/lib/components/table/table-def.metadata.json +1 -0
  90. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +32 -0
  91. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -0
  92. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.metadata.json +1 -0
  93. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.ngfactory.js.map +1 -0
  94. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  95. package/esm2015/lib/components/table/table-model.js +197 -0
  96. package/esm2015/lib/components/table/table-model.js.map +1 -0
  97. package/esm2015/lib/components/table/table-model.metadata.json +1 -0
  98. package/esm2015/lib/components/table/table.component.js +60 -0
  99. package/esm2015/lib/components/table/table.component.js.map +1 -0
  100. package/esm2015/lib/components/table/table.component.metadata.json +1 -0
  101. package/esm2015/lib/components/table/table.component.ngfactory.js.map +1 -0
  102. package/esm2015/lib/components/table/table.component.scss.shim.ngstyle.js.map +1 -0
  103. package/esm2015/lib/interaction/activity.js +7 -1
  104. package/esm2015/lib/interaction/activity.js.map +1 -1
  105. package/esm2015/lib/interaction/activity.metadata.json +1 -1
  106. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +87 -0
  107. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -0
  108. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -0
  109. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.ngfactory.js.map +1 -0
  110. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.scss.shim.ngstyle.js.map +1 -0
  111. package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js +86 -0
  112. package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js.map +1 -0
  113. package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.metadata.json +1 -0
  114. package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.ngfactory.js.map +1 -0
  115. package/esm2015/lib/interaction/index.js +2 -0
  116. package/esm2015/lib/interaction/index.js.map +1 -1
  117. package/esm2015/lib/interaction/index.metadata.json +1 -1
  118. package/esm2015/lib/interaction/interaction.module.js +12 -3
  119. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  120. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  121. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  122. package/esm5/coolon-angular-ui-powerups.js +55 -42
  123. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  124. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  125. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  126. package/esm5/lib/components/components.module.js +37 -6
  127. package/esm5/lib/components/components.module.js.map +1 -1
  128. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  129. package/esm5/lib/components/forms/abstract-input-activity.js +50 -0
  130. package/esm5/lib/components/forms/abstract-input-activity.js.map +1 -0
  131. package/esm5/lib/components/forms/abstract-input-activity.ngfactory.js.map +1 -0
  132. package/esm5/lib/components/forms/abstract-input.component.js +6 -1
  133. package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
  134. package/esm5/lib/components/forms/number-input/number-input.component.js +1 -1
  135. package/esm5/lib/components/forms/password-input/password-input.component.js +1 -1
  136. package/esm5/lib/components/forms/string-input/string-input-activity.js +18 -0
  137. package/esm5/lib/components/forms/string-input/string-input-activity.js.map +1 -0
  138. package/esm5/lib/components/forms/string-input/string-input-activity.ngfactory.js.map +1 -0
  139. package/esm5/lib/components/forms/string-input/string-input.component.js +1 -1
  140. package/esm5/lib/components/forms/text-input/text-input.component.js +1 -1
  141. package/esm5/lib/components/index.js +13 -0
  142. package/esm5/lib/components/index.js.map +1 -1
  143. package/esm5/lib/components/table/cell-editor.component.js +1 -0
  144. package/esm5/lib/components/table/cell-editor.component.js.map +1 -0
  145. package/esm5/lib/components/table/cell-renderer.js +1 -0
  146. package/esm5/lib/components/table/cell-renderer.js.map +1 -0
  147. package/esm5/lib/components/table/column-model.js +196 -0
  148. package/esm5/lib/components/table/column-model.js.map +1 -0
  149. package/esm5/lib/components/table/column-template/column-template.directive.js +25 -0
  150. package/esm5/lib/components/table/column-template/column-template.directive.js.map +1 -0
  151. package/esm5/lib/components/table/column-template/column-template.directive.ngfactory.js.map +1 -0
  152. package/esm5/lib/components/table/column-text-properties.js +1 -0
  153. package/esm5/lib/components/table/column-text-properties.js.map +1 -0
  154. package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.js +32 -0
  155. package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -0
  156. package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.ngfactory.js.map +1 -0
  157. package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  158. package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js +22 -0
  159. package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +1 -0
  160. package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.ngfactory.js.map +1 -0
  161. package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  162. package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.js +57 -0
  163. package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.js.map +1 -0
  164. package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.ngfactory.js.map +1 -0
  165. package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.scss.shim.ngstyle.js.map +1 -0
  166. package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.js +47 -0
  167. package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.js.map +1 -0
  168. package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.ngfactory.js.map +1 -0
  169. package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  170. package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js +35 -0
  171. package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js.map +1 -0
  172. package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.ngfactory.js.map +1 -0
  173. package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  174. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +66 -0
  175. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -0
  176. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.ngfactory.js.map +1 -0
  177. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  178. package/esm5/lib/components/table/table-def.js +1 -0
  179. package/esm5/lib/components/table/table-def.js.map +1 -0
  180. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +33 -0
  181. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -0
  182. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.ngfactory.js.map +1 -0
  183. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  184. package/esm5/lib/components/table/table-model.js +213 -0
  185. package/esm5/lib/components/table/table-model.js.map +1 -0
  186. package/esm5/lib/components/table/table.component.js +62 -0
  187. package/esm5/lib/components/table/table.component.js.map +1 -0
  188. package/esm5/lib/components/table/table.component.ngfactory.js.map +1 -0
  189. package/esm5/lib/components/table/table.component.scss.shim.ngstyle.js.map +1 -0
  190. package/esm5/lib/interaction/activity.js +7 -2
  191. package/esm5/lib/interaction/activity.js.map +1 -1
  192. package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +95 -0
  193. package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -0
  194. package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.ngfactory.js.map +1 -0
  195. package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.scss.shim.ngstyle.js.map +1 -0
  196. package/esm5/lib/interaction/directives/interaction-context-trigger-for.directive.js +90 -0
  197. package/esm5/lib/interaction/directives/interaction-context-trigger-for.directive.js.map +1 -0
  198. package/esm5/lib/interaction/directives/interaction-context-trigger-for.directive.ngfactory.js.map +1 -0
  199. package/esm5/lib/interaction/index.js +2 -0
  200. package/esm5/lib/interaction/index.js.map +1 -1
  201. package/esm5/lib/interaction/interaction.module.js +12 -3
  202. package/esm5/lib/interaction/interaction.module.js.map +1 -1
  203. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  204. package/fesm2015/coolon-angular-ui-powerups.js +2280 -1372
  205. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  206. package/fesm5/coolon-angular-ui-powerups.js +2561 -1567
  207. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  208. package/lib/components/forms/abstract-input-activity.d.ts +18 -0
  209. package/lib/components/forms/abstract-input.component.d.ts +1 -0
  210. package/lib/components/forms/string-input/string-input-activity.d.ts +3 -0
  211. package/lib/components/index.d.ts +17 -0
  212. package/lib/components/table/cell-editor.component.d.ts +5 -0
  213. package/lib/components/table/cell-renderer.d.ts +3 -0
  214. package/lib/components/table/column-model.d.ts +84 -0
  215. package/lib/components/table/column-template/column-template.directive.d.ts +7 -0
  216. package/lib/components/table/column-text-properties.d.ts +3 -0
  217. package/lib/components/table/default-cell-renderer/default-cell-renderer.component.d.ts +6 -0
  218. package/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +5 -0
  219. package/lib/components/table/edit-row-controls/edit-row-controls.component.d.ts +14 -0
  220. package/lib/components/table/select-cell-renderer/select-cell-renderer.component.d.ts +11 -0
  221. package/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.d.ts +9 -0
  222. package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +18 -0
  223. package/lib/components/table/table-def.d.ts +7 -0
  224. package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +8 -0
  225. package/lib/components/table/table-model.d.ts +114 -0
  226. package/lib/components/table/table.component.d.ts +40 -0
  227. package/lib/interaction/activity.d.ts +1 -0
  228. package/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.d.ts +21 -0
  229. package/lib/interaction/directives/interaction-context-trigger-for.directive.d.ts +17 -0
  230. package/lib/interaction/index.d.ts +2 -0
  231. package/package.json +3 -2
@@ -0,0 +1,18 @@
1
+ import { Command, FormValueModel, Validator } from '@coolon/pectin';
2
+ import { InteractionContext, Activity } from '../../interaction';
3
+ export interface InputActivityData<T> {
4
+ label?: string;
5
+ placeholder?: string;
6
+ initialValue: T;
7
+ validators?: Validator<T>[];
8
+ save?(valueModel: FormValueModel<T>, interactionContext?: InteractionContext): void | Promise<unknown>;
9
+ }
10
+ export declare class AbstractInputActivity<T> extends Activity<InputActivityData<T>, T> {
11
+ readonly data: InputActivityData<T>;
12
+ readonly confirmCommand: Command<void>;
13
+ readonly cancelCommand: Command<void>;
14
+ readonly valueModel: FormValueModel<T>;
15
+ class: string;
16
+ constructor(data: InputActivityData<T>);
17
+ onActivityReady(): void;
18
+ }
@@ -28,6 +28,7 @@ export declare class AbstractInputComponent<T> extends DisposableComponent imple
28
28
  enterKey: EventEmitter<any>;
29
29
  escapeKey: EventEmitter<any>;
30
30
  readonly errorStateMatcher: ErrorStateMatcher;
31
+ baseClassName: string;
31
32
  notifyClick(): void;
32
33
  notifyFocusIn(): void;
33
34
  notifyFocusOut(): void;
@@ -0,0 +1,3 @@
1
+ import { AbstractInputActivity } from '../abstract-input-activity';
2
+ export declare class StringInputActivity extends AbstractInputActivity<string> {
3
+ }
@@ -7,16 +7,33 @@ export * from "./focusable.component";
7
7
  export * from "./resize-aware.component";
8
8
  export * from "./card-container/card-container.component";
9
9
  export * from "./focus-container/focus-container.component";
10
+ export * from "./forms/abstract-input-activity";
10
11
  export * from "./forms/abstract-input.component";
11
12
  export * from "./forms/checkbox-input/checkbox-input.component";
12
13
  export * from "./forms/number-input/number-input.component";
13
14
  export * from "./forms/password-input/password-input.component";
14
15
  export * from "./forms/select-input/select-input.component";
16
+ export * from "./forms/string-input/string-input-activity";
15
17
  export * from "./forms/string-input/string-input.component";
16
18
  export * from "./forms/text-input/text-input.component";
17
19
  export * from "./noop/noop.component";
18
20
  export * from "./scroll-container/scroll-container.component";
19
21
  export * from "./switch-case/switch-case.component";
22
+ export * from "./table/cell-editor.component";
23
+ export * from "./table/cell-renderer";
24
+ export * from "./table/column-model";
25
+ export * from "./table/column-text-properties";
26
+ export * from "./table/table-def";
27
+ export * from "./table/table-model";
28
+ export * from "./table/table.component";
29
+ export * from "./table/column-template/column-template.directive";
30
+ export * from "./table/default-cell-renderer/default-cell-renderer.component";
31
+ export * from "./table/default-header-cell-renderer/default-header-cell-renderer.component";
32
+ export * from "./table/edit-row-controls/edit-row-controls.component";
33
+ export * from "./table/select-cell-renderer/select-cell-renderer.component";
34
+ export * from "./table/select-header-cell-renderer/select-header-cell-renderer.component";
35
+ export * from "./table/table-cell-renderer/table-cell-renderer.component";
36
+ export * from "./table/table-header-cell-renderer/table-header-cell-renderer.component";
20
37
  export * from "./types/bounds.class";
21
38
  export * from "./types/dimension.class";
22
39
  export * from "./types/point.class";
@@ -0,0 +1,5 @@
1
+ import { FormValueModel, ValueModel } from '@coolon/pectin';
2
+ export interface CellEditorComponent<T> {
3
+ valueModel: ValueModel<T> | FormValueModel<T>;
4
+ requestFocus?(): any;
5
+ }
@@ -0,0 +1,3 @@
1
+ export interface CellRenderer<T> {
2
+ value: T;
3
+ }
@@ -0,0 +1,84 @@
1
+ import { ComponentType } from '@angular/cdk/overlay';
2
+ import { Portal } from '@angular/cdk/portal';
3
+ import { Command, Form, SelectionModel, Types, UnaryCommand, Validator } from '@coolon/pectin';
4
+ import { AbstractInputComponent } from '../forms/abstract-input.component';
5
+ import { CellEditorComponent } from './cell-editor.component';
6
+ import { ColumnTextProperties } from './column-text-properties';
7
+ import { TableModel } from './table-model';
8
+ export interface ColumnHeaderConfig<Row, C extends any> {
9
+ portal: Portal<C>;
10
+ initialiseComponent?: (component: C, column: ColumnModel<Row>) => void;
11
+ }
12
+ export interface CellRendererConfig<Row, C extends any> {
13
+ portal: Portal<C>;
14
+ pushState?: (component: C, row: Row, editRowCommand: Command<void>, editSession: TableModel.EditSession<Row>) => void;
15
+ }
16
+ export interface CellEditorConfig<Row, V, C extends AbstractInputComponent<V>> {
17
+ portal: Portal<C>;
18
+ initialiseComponent?: (component: C, editSession: TableModel.EditSession<Row>) => void;
19
+ }
20
+ export declare class ColumnModel<Row> {
21
+ readonly columnId: string;
22
+ private defaults;
23
+ private _columnTextProperties;
24
+ private _columnHeaderConfig;
25
+ private _cellRendererConfig;
26
+ private _cellEditorConfig;
27
+ constructor(columnId: string, defaults: ColumnModel.Defaults);
28
+ getHeaderText(): string;
29
+ protected getDefaultHeaderText(): string;
30
+ getColumnTextProperties(): ColumnTextProperties;
31
+ textProperties(columnTextProperties: ColumnTextProperties): this;
32
+ protected setCellRenderer<C>(cellRenderer: ComponentType<C>, initialiser: (component: C, row: Row, editRowCommand: Command<void>, editSession: TableModel.EditSession<Row>) => void): void;
33
+ cellHeaderRenderer<C>(cellRenderer: ComponentType<C>, initialiser: (component: C, column: ColumnModel<Row>) => void): void;
34
+ protected setCellEditor<E extends AbstractInputComponent<any>>(cellEditor: CellEditorConfig<any, any, any>): void;
35
+ get cellRendererPortal(): Portal<any>;
36
+ get columnHeaderCellRendererPortal(): Portal<any>;
37
+ get cellEditorPortal(): Portal<any>;
38
+ hasEditor(): boolean;
39
+ updateCellRenderer(component: any, row: Row, editRowCommand: Command<void>, editSession: TableModel.EditSession<Row>): void;
40
+ initialiseHeader(component: any): void;
41
+ initialiseEditor(component: any, editSession: TableModel.EditSession<Row>): void;
42
+ }
43
+ export declare namespace ColumnModel {
44
+ type Defaults = Pick<TableModel<any>, 'getColumnTextProperties'>;
45
+ }
46
+ export interface CellEditorOptions<V, E extends CellEditorComponent<V>> {
47
+ validators?: Validator<V>[];
48
+ initialiseComponent?(component: E): any;
49
+ }
50
+ export declare class PropertyColumnModel<Row, P extends Types.ValuePropertiesOf<Row>> extends ColumnModel<Row> {
51
+ readonly property: P;
52
+ constructor(property: P, defaults: ColumnModel.Defaults);
53
+ cellRenderer(componentType: ComponentType<{
54
+ value: Row[P];
55
+ }>): void;
56
+ cellEditor<E extends CellEditorComponent<Row[P]>>(editor: ComponentType<E>, options?: CellEditorOptions<Row[P], E>): this;
57
+ }
58
+ export declare class CustomValueColumnModel<Row, V> extends ColumnModel<Row> {
59
+ private getValue;
60
+ constructor(columnId: string, defaults: ColumnModel.Defaults, getValue: (row: Row) => V);
61
+ cellRenderer(componentType: ComponentType<{
62
+ value: V;
63
+ }>): void;
64
+ }
65
+ export declare class EditorControlColumnModel<Row> extends ColumnModel<Row> {
66
+ constructor(columnId: string, saveCommand: UnaryCommand<Form<Row>, boolean>, defaults: ColumnModel.Defaults);
67
+ cellRenderer(componentType: ComponentType<{
68
+ row: Row;
69
+ editSession: TableModel.EditSession<Row>;
70
+ editRowCommand: Command<void>;
71
+ }>): void;
72
+ protected getDefaultHeaderText(): string;
73
+ }
74
+ export declare class CustomTemplateColumnModel<Row> extends ColumnModel<Row> {
75
+ constructor(columnId: string, defaults: ColumnModel.Defaults, component: ComponentType<{
76
+ editCommand: Command<void>;
77
+ saveCommand: Command<void>;
78
+ cancelCommand: Command<void>;
79
+ }>);
80
+ }
81
+ export declare class SelectionColumnModel<Row> extends ColumnModel<Row> {
82
+ constructor(columnId: string, defaults: ColumnModel.Defaults, selectionModel: SelectionModel<Row>);
83
+ protected getDefaultHeaderText(): string;
84
+ }
@@ -0,0 +1,7 @@
1
+ import { TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { TableComponent } from '../table.component';
3
+ export declare class ColumnTemplateDirective {
4
+ private templateRef;
5
+ private viewContainer;
6
+ constructor(host: TableComponent<any>, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
7
+ }
@@ -0,0 +1,3 @@
1
+ export interface ColumnTextProperties {
2
+ headerText?(): string;
3
+ }
@@ -0,0 +1,6 @@
1
+ export declare class DefaultCellRendererComponent<T> {
2
+ private _value;
3
+ set value(value: T);
4
+ get value(): T;
5
+ constructor();
6
+ }
@@ -0,0 +1,5 @@
1
+ import { ColumnModel } from '../column-model';
2
+ export declare class DefaultHeaderCellRendererComponent {
3
+ columnModel: ColumnModel<any>;
4
+ constructor();
5
+ }
@@ -0,0 +1,14 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Command, Form } from '@coolon/pectin';
3
+ import { DisposableComponent } from '../../disposable-component';
4
+ import { TableModel } from '../table-model';
5
+ export declare class EditRowControls<Row> extends DisposableComponent implements OnInit {
6
+ row: Row;
7
+ editRowCommand: Command<void>;
8
+ editSession: TableModel.EditSession<Row>;
9
+ readonly saveCommand: Command<void>;
10
+ readonly cancelCommand: Command<void>;
11
+ constructor();
12
+ ngOnInit(): void;
13
+ get form(): Form<Row>;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { Command, SelectionModel } from '@coolon/pectin';
2
+ import { DisposableComponent } from '../../disposable-component';
3
+ export declare class SelectCellRendererComponent<Row> extends DisposableComponent {
4
+ private _row;
5
+ readonly selectCommand: Command<void>;
6
+ set row(value: Row);
7
+ get row(): Row;
8
+ selectionModel: SelectionModel<Row>;
9
+ constructor();
10
+ isSelected(): boolean;
11
+ }
@@ -0,0 +1,9 @@
1
+ import { Command, MultipleSelectionModel } from '@coolon/pectin';
2
+ import { DisposableComponent } from '../../disposable-component';
3
+ export declare class SelectHeaderCellRendererComponent<Row> extends DisposableComponent {
4
+ readonly selectCommand: Command<void>;
5
+ selectionModel: MultipleSelectionModel<Row, any>;
6
+ constructor();
7
+ isSelected(): boolean;
8
+ isIntermediate(): boolean;
9
+ }
@@ -0,0 +1,18 @@
1
+ import { OnChanges, SimpleChanges } from '@angular/core';
2
+ import { ColumnModel } from '../column-model';
3
+ import { TableModel } from '../table-model';
4
+ export declare class TableCellRendererComponent<Row> implements OnChanges {
5
+ row: Row;
6
+ column: ColumnModel<Row>;
7
+ editSession: TableModel.EditSession<Row>;
8
+ tableModel: TableModel<Row>;
9
+ private renderer;
10
+ private editor;
11
+ private editRowCommand;
12
+ defaultClassNames: string;
13
+ constructor();
14
+ initialiseRenderer(instance: any): void;
15
+ initialiseEditor(instance: any): void;
16
+ ngOnChanges(changes: SimpleChanges): void;
17
+ hasActiveEditor(): boolean;
18
+ }
@@ -0,0 +1,7 @@
1
+ import { Form } from '@coolon/pectin';
2
+ export interface TableDef<T> {
3
+ }
4
+ export interface EditableTableDef<T> extends TableDef<T> {
5
+ createRowForm?(item: T): Form<T>;
6
+ save(form: Form<T>): any;
7
+ }
@@ -0,0 +1,8 @@
1
+ import { ColumnModel } from '../column-model';
2
+ export declare class TableHeaderCellRendererComponent<Row> {
3
+ column: ColumnModel<Row>;
4
+ private renderer;
5
+ defaultClassNames: string;
6
+ constructor();
7
+ initialiseHeader(instance: any): void;
8
+ }
@@ -0,0 +1,114 @@
1
+ import { BooleanValueModelChain, CanIdentify, Form, GarbageCollector, ListModel, ListModelChain, SelectionModel, Types, UnaryCommand } from '@coolon/pectin';
2
+ import { ColumnModel, CustomValueColumnModel, EditorControlColumnModel, PropertyColumnModel, SelectionColumnModel } from './column-model';
3
+ import { ColumnTextProperties } from './column-text-properties';
4
+ /**
5
+ * Example:
6
+ * @example
7
+ * const model = TableModel.fromList(heroList, table => {
8
+ * table.pluck("firstName");
9
+ * table.pluck("lastName");
10
+ * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
11
+ * });
12
+ *
13
+ * Editable tables
14
+ * @example
15
+ * const saveCommand = UnaryCommand.create((form: Form<Hero>) => {
16
+ * if (form.validate()) {
17
+ * // normal form save stuff
18
+ * return true; // finish editing
19
+ * }
20
+ * return false; // continue editiing
21
+ * }
22
+ * const colorsNames: ListModel<string> = ...;
23
+ * const model = TableModel.fromList(heroList, table => {
24
+ * table.pluck("firstName").cellEditor(StringInputComponent); <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }
25
+ * table.pluck("lastName").cellEditor(StringInputComponent, {
26
+ * validators: [Validator.present("We need a last name")]
27
+ * });
28
+ * table.pluck("age").cellEditor(NumberInputComponent);
29
+ * table.pluck("favoriteColor").cellEditor(SelectInputComponent, {
30
+ * initialiseComponent(component: SelectInputComponent) {
31
+ * selectInput.optionsModel = colorsNames; // <- initialise our component
32
+ * }
33
+ * });
34
+ * table.addEditControls(saveCommand); // <- required to enable editing
35
+ * });
36
+ *
37
+ * Selection models
38
+ * @example
39
+ * const model = TableModel.fromList(heroList, table => {
40
+ * table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
41
+ * table.pluck("firstName");
42
+ * table.pluck("lastName");
43
+ * });
44
+ *
45
+ * Custom cell renderers and editors
46
+ * @example
47
+ * const model = TableModel.fromList(heroList, table => {
48
+ * table.pluck("favoriteColor")
49
+ * .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {
50
+ * // configure your component with what ever you need.
51
+ * });
52
+ * .cellRenderer(CellRendererComponent) // <-- interface CellEditor { value: string; }
53
+ * .cellEditor(CellEditorComponent.); // <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }
54
+ * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
55
+ * });
56
+ *
57
+ * I18n
58
+ * @example
59
+ * [table.yml]
60
+ * table:
61
+ * columns(ColumnTextProperties[]):
62
+ * firstName:
63
+ * headerText: "First Name"
64
+ * fullName:
65
+ * headerText: "Full Name"
66
+ *
67
+ * const model = TableModel.fromList(heroList, table => {
68
+ * table.pluck("favoriteColor").cellRenderer(...).cellEditor(...);
69
+ * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
70
+ *
71
+ * table.columnTextProperties(I18n.table.columns); // <- configures all columns
72
+ * });
73
+ */
74
+ export declare class TableModel<Row> {
75
+ private sourceOfTruth;
76
+ private readonly _garbage;
77
+ private readonly _columns;
78
+ private _columnsById;
79
+ private _editorSessions;
80
+ private readonly _rowsBeingEdited;
81
+ private _columnTextPropertiesLookup;
82
+ readonly identityOf: CanIdentify<Row>['identityOf'];
83
+ private saveCommand;
84
+ private _editorSessionByRowId;
85
+ readonly editing: BooleanValueModelChain;
86
+ readonly dataSource: ListModelChain<Row>;
87
+ static fromList<Row>(sourceOfTruth: ListModel<Row>, builder?: (tableModel: TableModel<Row>) => void): TableModel<Row>;
88
+ protected constructor(sourceOfTruth: ListModel<Row>);
89
+ get rowsBeingEdited(): ListModel<Row>;
90
+ getTrackByFunction(): (index: number, item: Row) => any;
91
+ get columns(): ListModel<ColumnModel<Row>>;
92
+ pluck<P extends Types.ValuePropertiesOf<Row>>(property: P): PropertyColumnModel<Row, P>;
93
+ addSelectionColumn(selectionModel: SelectionModel<Row>): SelectionColumnModel<Row>;
94
+ addEditControls(saveCommand: UnaryCommand<Form<Row>, boolean>): EditorControlColumnModel<Row>;
95
+ addCustomColumn<V>(columnId: string, dataAccessor: (row: Row) => V): CustomValueColumnModel<Row, V>;
96
+ protected addColumn<C extends ColumnModel<Row>>(column: C): C;
97
+ columnTextProperties(columnTextProperties: {
98
+ [columnName: string]: () => ColumnTextProperties;
99
+ }): void;
100
+ getColumnTextProperties(column: ColumnModel<Row>): ColumnTextProperties;
101
+ startEditSession(row: Row): TableModel.EditSession<Row>;
102
+ getEditSessionFor(row: Row): TableModel.EditSession<Row>;
103
+ cancelAllEditorSessions(): void;
104
+ }
105
+ export declare namespace TableModel {
106
+ class EditSession<Row> extends GarbageCollector {
107
+ readonly rowId: any;
108
+ readonly saveCommand: UnaryCommand<Form<Row>, boolean>;
109
+ readonly form: Form<Row>;
110
+ private _editorValue;
111
+ readonly rowValueModel: import("@coolon/pectin").ValueModel<Row>;
112
+ constructor(rowId: any, row: Row, saveCommand: UnaryCommand<Form<Row>, boolean>);
113
+ }
114
+ }
@@ -0,0 +1,40 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { ListModelChain } from '@coolon/pectin';
3
+ import { DisposableComponent } from '../disposable-component';
4
+ import { ColumnModel } from './column-model';
5
+ import { TableModel } from './table-model';
6
+ /**
7
+ * Create your model:
8
+ * @example
9
+ * this.heroTableModel = TableModel.fromList(heroList, table => {
10
+ * table.pluck("firstName");
11
+ * table.pluck("lastName");
12
+ * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
13
+ * });
14
+ *
15
+ * Create your table
16
+ * @example
17
+ * <aup-table [tableModel]="heroTableModel"></aup-table>
18
+ *
19
+ * Styling
20
+ * @example
21
+ * aup-table {
22
+ * --column-gap: 10px; // defaults to 24px
23
+ * aup-table-cell-renderer {
24
+ * &:first-column {
25
+ * // do stuff
26
+ * }
27
+ * &:last-column {
28
+ * // do stuff
29
+ * }
30
+ * }
31
+ * }
32
+ */
33
+ export declare class TableComponent<T> extends DisposableComponent implements OnInit {
34
+ tableModel: TableModel<T>;
35
+ columns: ListModelChain<ColumnModel<T>>;
36
+ columnIds: ListModelChain<string>;
37
+ constructor();
38
+ ngOnInit(): void;
39
+ isEditing(row: T): boolean;
40
+ }
@@ -7,6 +7,7 @@ export declare abstract class Activity<D, R, E = any> extends DisposableComponen
7
7
  private readonly _busyModel;
8
8
  private _activityContext;
9
9
  private _interactionContext;
10
+ class: string;
10
11
  initialise(nestedInteractionContext: InteractionContext, activityContext: Activity.Callbacks<R, E>): void;
11
12
  get interactionContext(): InteractionContext;
12
13
  done(result?: R): void;
@@ -0,0 +1,21 @@
1
+ import { ConnectedPosition, Overlay } from '@angular/cdk/overlay';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { ElementRef, OnInit } from '@angular/core';
4
+ import { Constructable } from '@coolon/pectin';
5
+ import { Activity, InPlaceInteractionContextComponent } from '../..';
6
+ import { DisposableComponent } from '../../../components';
7
+ export declare class PopupInteractionContextComponent extends DisposableComponent implements OnInit {
8
+ private _element;
9
+ private _overlay;
10
+ private interactionContext;
11
+ get active(): boolean;
12
+ readonly outputPortal: ComponentPortal<InPlaceInteractionContextComponent<any, any, any>>;
13
+ anchorX: 'start' | 'end';
14
+ anchorY: 'top' | 'bottom';
15
+ constructor(_element: ElementRef, _overlay: Overlay);
16
+ startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
17
+ computePositions(): ConnectedPosition[];
18
+ cancelActiveActivity(): Promise<boolean>;
19
+ isActive(): boolean;
20
+ ngOnInit(): void;
21
+ }
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { Constructable, GarbageCollector } from '@coolon/pectin';
3
+ import { Activity } from '../activity';
4
+ import { InteractionContext } from '../interaction-context';
5
+ export declare class InteractionContextTriggerFor<D, R, E> extends GarbageCollector {
6
+ aupInteractionContextTriggerFor: Pick<InteractionContext, 'startActivity' | 'isActive' | 'cancelActiveActivity'>;
7
+ activityClass: Constructable<Activity<D, R, E>>;
8
+ activityData?: D;
9
+ activityDataFactory?: () => D;
10
+ activityDone: EventEmitter<R>;
11
+ activityCancelled: EventEmitter<E>;
12
+ constructor();
13
+ onEnter(event: KeyboardEvent): void;
14
+ onClick(event: MouseEvent): void;
15
+ protected startActivity(): void;
16
+ prepareActivityData(): D;
17
+ }
@@ -18,6 +18,8 @@ export * from "./components/alert-dialog/alert-dialog.component";
18
18
  export * from "./components/confirm-then-dialog/confirm-then-dialog.component";
19
19
  export * from "./components/confirmation-dialog/confirmation-dialog.component";
20
20
  export * from "./components/inplace-interaction-context/in-place-interaction-context.component";
21
+ export * from "./components/popup-interaction-context/popup-interaction-context.component";
22
+ export * from "./directives/interaction-context-trigger-for.directive";
21
23
  export * from "./services/interaction-service-routing-adapter";
22
24
  export * from "./services/interaction.service";
23
25
  export * from "./services/modal-interaction-context.factory";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coolon/angular-ui-powerups",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "dependencies": {
6
6
  "ts-morph": "^7.0.3",
@@ -11,6 +11,7 @@
11
11
  "@angular/platform-browser": "^9.1.9",
12
12
  "factory.ts": "^0.5.1",
13
13
  "faker": "^4.1.0",
14
+ "immer": "^6.0.5",
14
15
  "@angular/platform-browser-dynamic": "^9.1.9",
15
16
  "@angular/flex-layout": "^9.0.0-beta.31",
16
17
  "@angular/router": "^9.1.9",
@@ -23,7 +24,7 @@
23
24
  "@angular/material": "^9.2.4",
24
25
  "@angular/animations": "^9.1.9",
25
26
  "@angular/cdk": "^9.2.4",
26
- "@coolon/pectin": ">=2.2.0",
27
+ "@coolon/pectin": ">=2.5.5",
27
28
  "resize-observer-polyfill": "^1.5.1",
28
29
  "tslib": "^1.10.0"
29
30
  },