@coolon/angular-ui-powerups 16.1.0-aplpha.120 → 16.1.0-aplpha.122

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.
@@ -6,25 +6,12 @@ const slideDownOnEnterDef = style({
6
6
  paddingTop: '0',
7
7
  paddingBottom: '0'
8
8
  });
9
- // TODO: params aren't getting customised in the view. Need to figure out the correct approach.
10
- export const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
11
- transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
12
- transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
13
- ]);
14
- export const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
15
- transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
16
- transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
17
- ]);
18
9
  const slideLeftOnEnterDef = style({
19
10
  opacity: 0,
20
11
  'width': '0',
21
12
  paddingLeft: '0',
22
13
  paddingRight: '0'
23
14
  });
24
- export const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
25
- transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
26
- transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
27
- ]);
28
15
  const ZERO_WIDTH = {
29
16
  opacity: 0,
30
17
  width: '0',
@@ -37,6 +24,19 @@ const ZERO_HEIGHT = {
37
24
  paddingTop: '0',
38
25
  paddingBottom: '0',
39
26
  };
27
+ // TODO: params aren't getting customised in the view. Need to figure out the correct approach.
28
+ export const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
29
+ transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
30
+ transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
31
+ ]);
32
+ export const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
33
+ transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
34
+ transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
35
+ ]);
36
+ export const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
37
+ transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
38
+ transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
39
+ ]);
40
40
  export const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnter', [
41
41
  transition(':enter', [
42
42
  style({ overflow: "hidden", whiteSpace: "nowrap", ...ZERO_WIDTH, ...ZERO_HEIGHT }),
@@ -53,4 +53,4 @@ export const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnt
53
53
  ])
54
54
  ], { params: { duration: '100ms' } })
55
55
  ]);
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2FuaW1hdGlvbnMvc2xpZGUtYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9FLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxDQUFDO0lBQ1YsUUFBUSxFQUFFLEdBQUc7SUFDYixZQUFZLEVBQUUsR0FBRztJQUNqQixVQUFVLEVBQUUsR0FBRztJQUNmLGFBQWEsRUFBRSxHQUFHO0NBQ25CLENBQUMsQ0FBQztBQUVILGdHQUFnRztBQUNoRyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7SUFDbkUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDdkcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7Q0FDeEcsQ0FBQyxDQUFDO0FBR0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFO0lBQ3JFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDL0csVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztDQUNoSCxDQUFDLENBQUM7QUFFSCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNoQyxPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxHQUFHO0lBQ1osV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLEdBQUc7Q0FDbEIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFO0lBQ3JFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3ZHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0NBQ3hHLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxHQUFHO0lBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBQ0YsTUFBTSxXQUFXLEdBQUc7SUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsYUFBYSxFQUFFLEdBQUc7Q0FDbkIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtJQUNuRixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ2xGLE9BQU8sQ0FBQyxjQUFjLENBQUM7S0FDeEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3JDLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCO1FBQ0UsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkQsS0FBSyxDQUFDO1lBQ0osT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0MscUhBQXFIO1lBQ3JILHFIQUFxSDtZQUNySCxzR0FBc0c7WUFDdEcsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEMsQ0FBQztLQUNILEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztDQUN4QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIGdyb3VwLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmNvbnN0IHNsaWRlRG93bk9uRW50ZXJEZWYgPSBzdHlsZSh7XG4gIG9wYWNpdHk6IDAsXG4gICdoZWlnaHQnOiAnMCcsXG4gICdtYXgtaGVpZ2h0JzogJzAnLFxuICBwYWRkaW5nVG9wOiAnMCcsXG4gIHBhZGRpbmdCb3R0b206ICcwJ1xufSk7XG5cbi8vIFRPRE86IHBhcmFtcyBhcmVuJ3QgZ2V0dGluZyBjdXN0b21pc2VkIGluIHRoZSB2aWV3LiAgTmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGFwcHJvYWNoLlxuZXhwb3J0IGNvbnN0IHNsaWRlRG93bk9uRW50ZXJBbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZURvd25PbkVudGVyJywgW1xuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc2xpZGVEb3duT25FbnRlckRlZiwgYW5pbWF0ZSgne3tkdXJhdGlvbn19JyldLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pLFxuICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgne3tkdXJhdGlvbn19Jywgc2xpZGVEb3duT25FbnRlckRlZildLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pXG5dKTtcblxuXG5leHBvcnQgY29uc3Qgc2xpZGVEb3duV2hlbk9wZW5BbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZURvd25XaGVuT3BlbicsIFtcbiAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbc2xpZGVEb3duT25FbnRlckRlZiwgYW5pbWF0ZSgne3tkdXJhdGlvbn19JyldLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pLFxuICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFthbmltYXRlKCd7e2R1cmF0aW9ufX0nLCBzbGlkZURvd25PbkVudGVyRGVmKV0sIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnMTAwbXMnIH0gfSlcbl0pO1xuXG5jb25zdCBzbGlkZUxlZnRPbkVudGVyRGVmID0gc3R5bGUoe1xuICBvcGFjaXR5OiAwLFxuICAnd2lkdGgnOiAnMCcsXG4gIHBhZGRpbmdMZWZ0OiAnMCcsXG4gIHBhZGRpbmdSaWdodDogJzAnXG59KTtcblxuZXhwb3J0IGNvbnN0IHNsaWRlUmlnaHRPbkVudGVyQW5pbWF0aW9uID0gdHJpZ2dlcignc2xpZGVSaWdodE9uRW50ZXInLCBbXG4gIHRyYW5zaXRpb24oJzplbnRlcicsIFtzbGlkZUxlZnRPbkVudGVyRGVmLCBhbmltYXRlKCd7e2R1cmF0aW9ufX0nKV0sIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnMTAwbXMnIH0gfSksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCd7e2R1cmF0aW9ufX0nLCBzbGlkZUxlZnRPbkVudGVyRGVmKV0sIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnMTAwbXMnIH0gfSlcbl0pO1xuXG5jb25zdCBaRVJPX1dJRFRIID0ge1xuICBvcGFjaXR5OiAwLFxuICB3aWR0aDogJzAnLFxuICBwYWRkaW5nTGVmdDogJzAnLFxuICBwYWRkaW5nUmlnaHQ6ICcwJyxcbn07XG5jb25zdCBaRVJPX0hFSUdIVCA9IHtcbiAgb3BhY2l0eTogMCxcbiAgaGVpZ2h0OiAnMCcsXG4gIHBhZGRpbmdUb3A6ICcwJyxcbiAgcGFkZGluZ0JvdHRvbTogJzAnLFxufTtcbmV4cG9ydCBjb25zdCBzbGlkZURvd25BbmRSaWdodE9uRW50ZXJBbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZURvd25BbmRSaWdodE9uRW50ZXInLCBbXG4gIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICBzdHlsZSh7IG92ZXJmbG93OiBcImhpZGRlblwiLCB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLCAuLi5aRVJPX1dJRFRILCAuLi5aRVJPX0hFSUdIVCB9KSxcbiAgICBhbmltYXRlKCd7e2R1cmF0aW9ufX0nKVxuICBdLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pLFxuICB0cmFuc2l0aW9uKCc6bGVhdmUnLFxuICAgIFtcbiAgICAgIHN0eWxlKHsgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsIHdoaXRlU3BhY2U6IFwibm93cmFwXCIgfSksXG4gICAgICBncm91cChbXG4gICAgICAgIGFuaW1hdGUoJ3t7ZHVyYXRpb259fScsIHN0eWxlKFpFUk9fSEVJR0hUKSksXG4gICAgICAgIC8vIEhhY2s6IDEwMG1zIGlzIHRvbyBxdWljayBhcyBpdCBhbmltYXRlcyBmcm9tICogLSAwIGFzIHdlIG9ubHkgc2VlIGl0IGFuaW1hdGUgdGhlIHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcGFyZW50LlxuICAgICAgICAvLyBOb3Qgc3VyZSBob3cgdG8gYW5pbWF0ZSBmcm9tICogdG8gbmF0dXJhbCBuZXcgd2lkdGggb2YgcGFyZW50LiAgVGhpcyBoYWNrIHdvbid0IHdvcmsgZm9yIHRleHQgdGhhdCdzIGp1c3QgYSBsaXR0bGVcbiAgICAgICAgLy8gYml0IHdpZGVyIHRoYW4gdGhlIHBhcmVudCBhcyBpdCdsbCBmYWxsIHdpdGhpbiB0aGUgcGFyZW50IGJvdW5kcyB2ZXJ5IGVhcmx5IGluIHRoZSBhbmltYXRpb24gY3ljbGUuXG4gICAgICAgIGFuaW1hdGUoJzMwMG1zJywgc3R5bGUoWkVST19XSURUSCkpLFxuICAgICAgXSlcbiAgICBdLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pXG5dKTtcbiJdfQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2FuaW1hdGlvbnMvc2xpZGUtYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9FLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxDQUFDO0lBQ1YsUUFBUSxFQUFFLEdBQUc7SUFDYixZQUFZLEVBQUUsR0FBRztJQUNqQixVQUFVLEVBQUUsR0FBRztJQUNmLGFBQWEsRUFBRSxHQUFHO0NBQ25CLENBQUMsQ0FBQztBQUVILE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLEdBQUc7SUFDWixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRztDQUNsQixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsR0FBRztJQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxHQUFHO0lBQ1YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLEdBQUc7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxVQUFVLEVBQUUsR0FBRztJQUNmLGFBQWEsRUFBRSxHQUFHO0NBQ25CLENBQUM7QUFHRixnR0FBZ0c7QUFDaEcsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFO0lBQ25FLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3ZHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0NBQ3hHLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtJQUNyRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQy9HLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7Q0FDaEgsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFO0lBQ3JFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3ZHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0NBQ3hHLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtJQUNuRixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ2xGLE9BQU8sQ0FBQyxjQUFjLENBQUM7S0FDeEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3JDLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCO1FBQ0UsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkQsS0FBSyxDQUFDO1lBQ0osT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0MscUhBQXFIO1lBQ3JILHFIQUFxSDtZQUNySCxzR0FBc0c7WUFDdEcsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEMsQ0FBQztLQUNILEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztDQUN4QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIGdyb3VwLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmNvbnN0IHNsaWRlRG93bk9uRW50ZXJEZWYgPSBzdHlsZSh7XG4gIG9wYWNpdHk6IDAsXG4gICdoZWlnaHQnOiAnMCcsXG4gICdtYXgtaGVpZ2h0JzogJzAnLFxuICBwYWRkaW5nVG9wOiAnMCcsXG4gIHBhZGRpbmdCb3R0b206ICcwJ1xufSk7XG5cbmNvbnN0IHNsaWRlTGVmdE9uRW50ZXJEZWYgPSBzdHlsZSh7XG4gIG9wYWNpdHk6IDAsXG4gICd3aWR0aCc6ICcwJyxcbiAgcGFkZGluZ0xlZnQ6ICcwJyxcbiAgcGFkZGluZ1JpZ2h0OiAnMCdcbn0pO1xuXG5jb25zdCBaRVJPX1dJRFRIID0ge1xuICBvcGFjaXR5OiAwLFxuICB3aWR0aDogJzAnLFxuICBwYWRkaW5nTGVmdDogJzAnLFxuICBwYWRkaW5nUmlnaHQ6ICcwJyxcbn07XG5cbmNvbnN0IFpFUk9fSEVJR0hUID0ge1xuICBvcGFjaXR5OiAwLFxuICBoZWlnaHQ6ICcwJyxcbiAgcGFkZGluZ1RvcDogJzAnLFxuICBwYWRkaW5nQm90dG9tOiAnMCcsXG59O1xuXG5cbi8vIFRPRE86IHBhcmFtcyBhcmVuJ3QgZ2V0dGluZyBjdXN0b21pc2VkIGluIHRoZSB2aWV3LiAgTmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGFwcHJvYWNoLlxuZXhwb3J0IGNvbnN0IHNsaWRlRG93bk9uRW50ZXJBbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZURvd25PbkVudGVyJywgW1xuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc2xpZGVEb3duT25FbnRlckRlZiwgYW5pbWF0ZSgne3tkdXJhdGlvbn19JyldLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pLFxuICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgne3tkdXJhdGlvbn19Jywgc2xpZGVEb3duT25FbnRlckRlZildLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pXG5dKTtcblxuXG5leHBvcnQgY29uc3Qgc2xpZGVEb3duV2hlbk9wZW5BbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZURvd25XaGVuT3BlbicsIFtcbiAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbc2xpZGVEb3duT25FbnRlckRlZiwgYW5pbWF0ZSgne3tkdXJhdGlvbn19JyldLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzEwMG1zJyB9IH0pLFxuICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFthbmltYXRlKCd7e2R1cmF0aW9ufX0nLCBzbGlkZURvd25PbkVudGVyRGVmKV0sIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnMTAwbXMnIH0gfSlcbl0pO1xuXG5leHBvcnQgY29uc3Qgc2xpZGVSaWdodE9uRW50ZXJBbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZVJpZ2h0T25FbnRlcicsIFtcbiAgdHJhbnNpdGlvbignOmVudGVyJywgW3NsaWRlTGVmdE9uRW50ZXJEZWYsIGFuaW1hdGUoJ3t7ZHVyYXRpb259fScpXSwgeyBwYXJhbXM6IHsgZHVyYXRpb246ICcxMDBtcycgfSB9KSxcbiAgdHJhbnNpdGlvbignOmxlYXZlJywgW2FuaW1hdGUoJ3t7ZHVyYXRpb259fScsIHNsaWRlTGVmdE9uRW50ZXJEZWYpXSwgeyBwYXJhbXM6IHsgZHVyYXRpb246ICcxMDBtcycgfSB9KVxuXSk7XG5cblxuZXhwb3J0IGNvbnN0IHNsaWRlRG93bkFuZFJpZ2h0T25FbnRlckFuaW1hdGlvbiA9IHRyaWdnZXIoJ3NsaWRlRG93bkFuZFJpZ2h0T25FbnRlcicsIFtcbiAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgIHN0eWxlKHsgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsIHdoaXRlU3BhY2U6IFwibm93cmFwXCIsIC4uLlpFUk9fV0lEVEgsIC4uLlpFUk9fSEVJR0hUIH0pLFxuICAgIGFuaW1hdGUoJ3t7ZHVyYXRpb259fScpXG4gIF0sIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnMTAwbXMnIH0gfSksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsXG4gICAgW1xuICAgICAgc3R5bGUoeyBvdmVyZmxvdzogXCJoaWRkZW5cIiwgd2hpdGVTcGFjZTogXCJub3dyYXBcIiB9KSxcbiAgICAgIGdyb3VwKFtcbiAgICAgICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19Jywgc3R5bGUoWkVST19IRUlHSFQpKSxcbiAgICAgICAgLy8gSGFjazogMTAwbXMgaXMgdG9vIHF1aWNrIGFzIGl0IGFuaW1hdGVzIGZyb20gKiAtIDAgYXMgd2Ugb25seSBzZWUgaXQgYW5pbWF0ZSB0aGUgd2lkdGggaXMgZ3JlYXRlciB0aGFuIHRoZSBwYXJlbnQuXG4gICAgICAgIC8vIE5vdCBzdXJlIGhvdyB0byBhbmltYXRlIGZyb20gKiB0byBuYXR1cmFsIG5ldyB3aWR0aCBvZiBwYXJlbnQuICBUaGlzIGhhY2sgd29uJ3Qgd29yayBmb3IgdGV4dCB0aGF0J3MganVzdCBhIGxpdHRsZVxuICAgICAgICAvLyBiaXQgd2lkZXIgdGhhbiB0aGUgcGFyZW50IGFzIGl0J2xsIGZhbGwgd2l0aGluIHRoZSBwYXJlbnQgYm91bmRzIHZlcnkgZWFybHkgaW4gdGhlIGFuaW1hdGlvbiBjeWNsZS5cbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMnLCBzdHlsZShaRVJPX1dJRFRIKSksXG4gICAgICBdKVxuICAgIF0sIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnMTAwbXMnIH0gfSlcbl0pO1xuIl19
@@ -47,7 +47,10 @@ export class DisposableComponent extends GarbageCollector {
47
47
  */
48
48
  viewStateDependsOn(...models) {
49
49
  const { when } = Dsl.disposeWith(this);
50
- when.anyOf(...models).changes(() => this.cdr.markForCheck());
50
+ when.anyOf(...models).changes(() => this.markForCheck());
51
+ }
52
+ markForCheck() {
53
+ this.cdr.markForCheck();
51
54
  }
52
55
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
53
56
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: DisposableComponent, usesInheritance: true, ngImport: i0 });
@@ -55,4 +58,4 @@ export class DisposableComponent extends GarbageCollector {
55
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, decorators: [{
56
59
  type: Directive
57
60
  }], ctorParameters: function () { return []; } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUMsR0FBRyxFQUFFLGdCQUFnQixFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQzs7QUFHOUIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQUU5QyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRWxDLGdEQUFnRDtJQUNoRCxvQ0FBb0M7SUFDcEMsc0NBQXNDO0lBQ3RDLGNBQWMsR0FBbUIsRUFBRSxDQUFDO0lBQ3BDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFFRixHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLGdCQUFnQixHQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUU7UUFDOUUsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDLENBQUE7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxrREFBa0Q7WUFDN0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1NBQ3JFO0lBQ0gsQ0FBQztJQUVTLE1BQU0sQ0FBQyxRQUFvQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsUUFBUSxFQUFFLENBQUM7U0FDWjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRVMsTUFBTSxDQUFJLEtBQXVCLEVBQUUsT0FBdUI7UUFDbEUsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxrQkFBa0IsQ0FBQyxHQUFHLE1BQXVCO1FBQ3JELE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQzlELENBQUM7dUdBckRVLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdE9wdGlvbnMsIE9uRGVzdHJveSwgT25Jbml0LCBQcm92aWRlclRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHNsLCBHYXJiYWdlQ29sbGVjdG9yLCBIYXNWYWx1ZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtIaWdobGlnaHRUZXh0TW9kZWxEaXJlY3RpdmV9IGZyb20gXCIuLi9kaXJlY3RpdmVzL2hpZ2hsaWdodC10ZXh0LW1vZGVsLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHtUcmFja30gZnJvbSBcIi4vdHJhY2tcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRGlzcG9zYWJsZUNvbXBvbmVudCBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3IgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcmVhZG9ubHkgdHJhY2tCeUlkID0gVHJhY2suYnlJZCgpO1xuXG4gIC8vICNfbG9hZGVkJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPigpO1xuICAvLyAjYXN5bmNMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcbiAgLy8gI2F3YWl0ZWRMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcbiAgI2luaXRDYWxsYmFja3M6ICgoKSA9PiB2b2lkKVtdID0gW107XG4gICNpbml0aWFsaXNlZCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjZHIgPSB0aGlzLmluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByb3RlY3RlZCByZWFkb25seSBoaWdobGlnaHRDb250ZXh0PyA9IHRoaXMuaW5qZWN0KEhpZ2hsaWdodFRleHRNb2RlbERpcmVjdGl2ZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlXG4gIH0pXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAodGhpcy5oaWdobGlnaHRDb250ZXh0KSB7IC8vIHRoZSBjb21wb25lbnQgbWlnaHQgYmUgcmVuZGVyZWQgb3V0c2lkZSBhIHRhYmxlXG4gICAgICB0aGlzLnZpZXdTdGF0ZURlcGVuZHNPbih0aGlzLmhpZ2hsaWdodENvbnRleHQuYXVwSGlnaGxpZ2h0VGV4dE1vZGVsKVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkluaXQoY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICBpZiAodGhpcy4jaW5pdGlhbGlzZWQpIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2luaXRDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jaW5pdENhbGxiYWNrcy5mb3JFYWNoKGl0ID0+IGl0KCkpO1xuICAgIHRoaXMuI2luaXRpYWxpc2VkID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluamVjdDxUPih0b2tlbjogUHJvdmlkZXJUb2tlbjxUPiwgb3B0aW9ucz86IEluamVjdE9wdGlvbnMpOiBUIHtcbiAgICByZXR1cm4gaW5qZWN0KHRva2VuLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb25pdG9ycyB0aGUgc3BlY2lmaWVkIG1vZGVscyBmb3IgYW55IGNoYW5nZSBhbmQgdHJpZ2dlcnMgYW5kIGFuZ3VsYXIgY2hhbmdlIGRldGVjdCBjeWNsZS4gIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZVxuICAgKiB3aGVuIHRoZSBjb21wb25lbnQgdXNlcyB0aGUgT05fUFVTSCBjaGFuZ2UgZGV0ZWN0aW9uIHN0cmF0ZWd5IG9yIHdoZW4gaXQgaXMgY29udGFpbmVkIHdpdGhpbiBhbm90aGVyIGNvbXBvbmVudCB0aGF0XG4gICAqIGRvZXMgKGUuZy4gYXVwLXRhYmxlLCBhdXAtdHJlZS10YWJsZSlcbiAgICogQHBhcmFtIG1vZGVsc1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgdmlld1N0YXRlRGVwZW5kc09uKC4uLm1vZGVsczogSGFzVmFsdWU8YW55PltdKSB7XG4gICAgY29uc3Qge3doZW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHdoZW4uYW55T2YoLi4ubW9kZWxzKS5jaGFuZ2VzKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKVxuICB9XG5cbn1cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUMsR0FBRyxFQUFFLGdCQUFnQixFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQzs7QUFHOUIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQUU5QyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRWxDLGdEQUFnRDtJQUNoRCxvQ0FBb0M7SUFDcEMsc0NBQXNDO0lBQ3RDLGNBQWMsR0FBbUIsRUFBRSxDQUFDO0lBQ3BDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFFRixHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLGdCQUFnQixHQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUU7UUFDOUUsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDLENBQUE7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxrREFBa0Q7WUFDN0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1NBQ3JFO0lBQ0gsQ0FBQztJQUVTLE1BQU0sQ0FBQyxRQUFvQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsUUFBUSxFQUFFLENBQUM7U0FDWjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRVMsTUFBTSxDQUFJLEtBQXVCLEVBQUUsT0FBdUI7UUFDbEUsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxrQkFBa0IsQ0FBQyxHQUFHLE1BQXVCO1FBQ3JELE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQXpEVSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RPcHRpb25zLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUHJvdmlkZXJUb2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RzbCwgR2FyYmFnZUNvbGxlY3RvciwgSGFzVmFsdWV9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7SGlnaGxpZ2h0VGV4dE1vZGVsRGlyZWN0aXZlfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy9oaWdobGlnaHQtdGV4dC1tb2RlbC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7VHJhY2t9IGZyb20gXCIuL3RyYWNrXCI7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIERpc3Bvc2FibGVDb21wb25lbnQgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHJlYWRvbmx5IHRyYWNrQnlJZCA9IFRyYWNrLmJ5SWQoKTtcblxuICAvLyAjX2xvYWRlZCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgLy8gI2FzeW5jTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG4gIC8vICNhd2FpdGVkTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG4gICNpbml0Q2FsbGJhY2tzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuICAjaW5pdGlhbGlzZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2RyID0gdGhpcy5pbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGlnaGxpZ2h0Q29udGV4dD8gPSB0aGlzLmluamVjdChIaWdobGlnaHRUZXh0TW9kZWxEaXJlY3RpdmUsIHtcbiAgICBvcHRpb25hbDogdHJ1ZVxuICB9KVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0Q29udGV4dCkgeyAvLyB0aGUgY29tcG9uZW50IG1pZ2h0IGJlIHJlbmRlcmVkIG91dHNpZGUgYSB0YWJsZVxuICAgICAgdGhpcy52aWV3U3RhdGVEZXBlbmRzT24odGhpcy5oaWdobGlnaHRDb250ZXh0LmF1cEhpZ2hsaWdodFRleHRNb2RlbClcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Jbml0KGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMuI2luaXRpYWxpc2VkKSB7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNpbml0Q2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2luaXRDYWxsYmFja3MuZm9yRWFjaChpdCA9PiBpdCgpKTtcbiAgICB0aGlzLiNpbml0aWFsaXNlZCA9IHRydWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbmplY3Q8VD4odG9rZW46IFByb3ZpZGVyVG9rZW48VD4sIG9wdGlvbnM/OiBJbmplY3RPcHRpb25zKTogVCB7XG4gICAgcmV0dXJuIGluamVjdCh0b2tlbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogTW9uaXRvcnMgdGhlIHNwZWNpZmllZCBtb2RlbHMgZm9yIGFueSBjaGFuZ2UgYW5kIHRyaWdnZXJzIGFuZCBhbmd1bGFyIGNoYW5nZSBkZXRlY3QgY3ljbGUuICBUaGlzIGlzIGludGVuZGVkIGZvciB1c2VcbiAgICogd2hlbiB0aGUgY29tcG9uZW50IHVzZXMgdGhlIE9OX1BVU0ggY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSBvciB3aGVuIGl0IGlzIGNvbnRhaW5lZCB3aXRoaW4gYW5vdGhlciBjb21wb25lbnQgdGhhdFxuICAgKiBkb2VzIChlLmcuIGF1cC10YWJsZSwgYXVwLXRyZWUtdGFibGUpXG4gICAqIEBwYXJhbSBtb2RlbHNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHZpZXdTdGF0ZURlcGVuZHNPbiguLi5tb2RlbHM6IEhhc1ZhbHVlPGFueT5bXSkge1xuICAgIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuLmFueU9mKC4uLm1vZGVscykuY2hhbmdlcygoKSA9PiB0aGlzLm1hcmtGb3JDaGVjaygpKVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
@@ -23,21 +23,45 @@ export class NumberInputComponent extends AbstractValueInputComponent {
23
23
  #max_accessor_storage = Number.MAX_SAFE_INTEGER;
24
24
  get max() { return this.#max_accessor_storage; }
25
25
  set max(value) { this.#max_accessor_storage = value; }
26
+ #significantDigits$_accessor_storage = proxify((ValueModel));
27
+ get significantDigits$() { return this.#significantDigits$_accessor_storage; }
28
+ set significantDigits$(value) { this.#significantDigits$_accessor_storage = value; }
29
+ #significantDigits_accessor_storage;
30
+ get significantDigits() { return this.#significantDigits_accessor_storage; }
31
+ set significantDigits(value) { this.#significantDigits_accessor_storage = value; }
26
32
  incrementCommand;
27
33
  decrementCommand;
34
+ displayValue$;
35
+ step$;
28
36
  constructor() {
29
37
  super();
30
38
  const { chain } = Dsl.disposeWith(this);
39
+ this.step$ = chain(this.significantDigits$).map(v => 10 ** (-v)).otherwise(1);
40
+ this.displayValue$ = chain(this.value$).map(v => this.clampSignificantDigits(v), {
41
+ dependsOn: this.significantDigits$
42
+ });
31
43
  const normalisedValue$ = chain(this.value$).otherwise(0);
32
44
  this.incrementCommand = Command.create(() => {
33
- this.value$.value = normalisedValue$.value + 1;
45
+ this.value$.value = this.increment(this.value$.value);
34
46
  }).enableWhile(chain.numericValue(normalisedValue$).isLessThan(this.max$).and(this.enabled$));
35
47
  this.decrementCommand = Command.create(() => {
36
- this.value$.value = normalisedValue$.value - 1;
48
+ this.value$.value = this.decrement(this.value$.value);
37
49
  }).enableWhile(chain.numericValue(normalisedValue$).isGreaterThan(this.min$).and(this.enabled$));
38
50
  }
51
+ increment(value) {
52
+ return this.clampSignificantDigits((value ?? 0) + this.step$.value);
53
+ }
54
+ decrement(value) {
55
+ return this.clampSignificantDigits((value ?? 0) - this.step$.value);
56
+ }
57
+ clampSignificantDigits(value) {
58
+ return Number(value.toFixed(this.significantDigits));
59
+ }
60
+ onValueChange(value) {
61
+ this.value$.value = value;
62
+ }
39
63
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: NumberInputComponent, selector: "aup-number-input", inputs: { autocomplete: "autocomplete", min$: "min$", min: "min", max$: "max$", max: "max" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\">\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: i6.FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
64
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: NumberInputComponent, selector: "aup-number-input", inputs: { autocomplete: "autocomplete", min$: "min$", min: "min", max$: "max$", max: "max", significantDigits$: "significantDigits$", significantDigits: "significantDigits" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [ngModel]=\"displayValue$.value\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\"\n [step]=\"step$.value\"\n >\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: i6.FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
41
65
  }
42
66
  __decorate([
43
67
  Proxify(),
@@ -55,9 +79,17 @@ __decorate([
55
79
  StoreInValueModel(),
56
80
  __metadata("design:type", Object)
57
81
  ], NumberInputComponent.prototype, "max", null);
82
+ __decorate([
83
+ Proxify(),
84
+ __metadata("design:type", ValueModel)
85
+ ], NumberInputComponent.prototype, "significantDigits$", null);
86
+ __decorate([
87
+ StoreInValueModel(),
88
+ __metadata("design:type", Number)
89
+ ], NumberInputComponent.prototype, "significantDigits", null);
58
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, decorators: [{
59
91
  type: Component,
60
- args: [{ selector: 'aup-number-input', template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\">\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"] }]
92
+ args: [{ selector: 'aup-number-input', template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [ngModel]=\"displayValue$.value\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\"\n [step]=\"step$.value\"\n >\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"] }]
61
93
  }], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
62
94
  type: Input
63
95
  }], min$: [{
@@ -68,5 +100,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
68
100
  type: Input
69
101
  }], max: [{
70
102
  type: Input
103
+ }], significantDigits$: [{
104
+ type: Input
105
+ }], significantDigits: [{
106
+ type: Input
71
107
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0YsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7O0FBUTlFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSwyQkFBbUM7SUFFbEUsWUFBWSxDQUFTO0lBR3JCLHlCQUEyQixPQUFPLENBQUMsQ0FBQSxVQUFrQixDQUFBLENBQUMsQ0FBQztJQUF2RCxJQUFBLElBQUksMENBQW1EO0lBQXZELElBQUEsSUFBSSxnREFBbUQ7SUFHdkQsd0JBQU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDO0lBQTlCLElBQUEsR0FBRyx5Q0FBMkI7SUFBOUIsSUFBQSxHQUFHLCtDQUEyQjtJQUc5Qix5QkFBMkIsT0FBTyxDQUFDLENBQUEsVUFBa0IsQ0FBQSxDQUFDLENBQUM7SUFBdkQsSUFBQSxJQUFJLDBDQUFtRDtJQUF2RCxJQUFBLElBQUksZ0RBQW1EO0lBR3ZELHdCQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUE5QixJQUFBLEdBQUcseUNBQTJCO0lBQTlCLElBQUEsR0FBRywrQ0FBMkI7SUFFcEIsZ0JBQWdCLENBQWdCO0lBQ2hDLGdCQUFnQixDQUFnQjtJQUVuRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTlGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFHbkcsQ0FBQzt1R0FsQ1Usb0JBQW9COzJGQUFwQixvQkFBb0IsNktDVmpDLDYzQkFzQkE7O0FEUFc7SUFEQyxPQUFPLEVBQUU7OEJBQ0osVUFBVTtnREFBdUM7QUFHdkQ7SUFEQyxpQkFBaUIsRUFBRTs7K0NBQ1U7QUFHOUI7SUFEQyxPQUFPLEVBQUU7OEJBQ0osVUFBVTtnREFBdUM7QUFHdkQ7SUFEQyxpQkFBaUIsRUFBRTs7K0NBQ1U7MkZBZDVCLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBTW5CLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csSUFBSTtzQkFEWixLQUFLO2dCQUlHLEdBQUc7c0JBRFgsS0FBSztnQkFJRyxJQUFJO3NCQURaLEtBQUs7Z0JBSUcsR0FBRztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbWFuZCwgRHNsLCBQcm94aWZ5LCBwcm94aWZ5LCBTdG9yZUluVmFsdWVNb2RlbCwgVmFsdWVNb2RlbH0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge0Fic3RyYWN0VmFsdWVJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vYWJzdHJhY3QtdmFsdWUtaW5wdXQuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtbnVtYmVyLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50PG51bWJlcj4ge1xuXG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgbWluJDogVmFsdWVNb2RlbDxudW1iZXI+ID0gcHJveGlmeShWYWx1ZU1vZGVsPG51bWJlcj4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIG1pbiA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgbWF4JDogVmFsdWVNb2RlbDxudW1iZXI+ID0gcHJveGlmeShWYWx1ZU1vZGVsPG51bWJlcj4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIG1heCA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpbmNyZW1lbnRDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVjcmVtZW50Q29tbWFuZDogQ29tbWFuZDx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICBjb25zdCBub3JtYWxpc2VkVmFsdWUkID0gY2hhaW4odGhpcy52YWx1ZSQpLm90aGVyd2lzZSgwKTtcblxuICAgIHRoaXMuaW5jcmVtZW50Q29tbWFuZCA9IENvbW1hbmQuY3JlYXRlKCgpID0+IHtcbiAgICAgIHRoaXMudmFsdWUkLnZhbHVlID0gbm9ybWFsaXNlZFZhbHVlJC52YWx1ZSArIDE7XG4gICAgfSkuZW5hYmxlV2hpbGUoY2hhaW4ubnVtZXJpY1ZhbHVlKG5vcm1hbGlzZWRWYWx1ZSQpLmlzTGVzc1RoYW4odGhpcy5tYXgkKS5hbmQodGhpcy5lbmFibGVkJCkpO1xuXG4gICAgdGhpcy5kZWNyZW1lbnRDb21tYW5kID0gQ29tbWFuZC5jcmVhdGUoKCkgPT4ge1xuICAgICAgdGhpcy52YWx1ZSQudmFsdWUgPSBub3JtYWxpc2VkVmFsdWUkLnZhbHVlIC0gMTtcbiAgICB9KS5lbmFibGVXaGlsZShjaGFpbi5udW1lcmljVmFsdWUobm9ybWFsaXNlZFZhbHVlJCkuaXNHcmVhdGVyVGhhbih0aGlzLm1pbiQpLmFuZCh0aGlzLmVuYWJsZWQkKSk7XG5cblxuICB9XG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgIG1hdElucHV0XG4gICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiXG4gICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgIFsobmdNb2RlbCldPVwiY29tcG9uZW50VmFsdWUkLnZhbHVlXCJcbiAgICAgICAgIFtkaXNhYmxlZF09XCIhZW5hYmxlZCQudmFsdWVcIlxuICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwibm90aWZ5RW50ZXJLZXkoKVwiXG4gICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwibm90aWZ5RXNjYXBlS2V5KClcIlxuICAgICAgICAgW3BlY3RpbkZvY3VzQmluZGluZ109XCJmb2N1c0NvbnRleHRcIlxuICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICBbc2l6ZV09XCI0XCI+XG4gIDxzZWN0aW9uIG1hdEljb25TdWZmaXg+XG4gICAgPGJ1dHRvbiBbcGVjdGluQ29tbWFuZF09XCJkZWNyZW1lbnRDb21tYW5kXCI+LTwvYnV0dG9uPlxuICAgIDxidXR0b24gW3BlY3RpbkNvbW1hbmRdPVwiaW5jcmVtZW50Q29tbWFuZFwiPis8L2J1dHRvbj5cbiAgPC9zZWN0aW9uPlxuICA8bWF0LWhpbnQgKm5nSWY9XCJoaW50ICYmICFkZW5zZVwiPnt7IGhpbnQgfX08L21hdC1oaW50PlxuICA8bWF0LWVycm9yICpuZ0lmPVwiaGFzRXJyb3JzXCI+e3sgZmlyc3RFcnJvciB9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsVUFBVSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQVE5RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsMkJBQW1DO0lBRWxFLFlBQVksQ0FBUztJQUdyQix5QkFBMkIsT0FBTyxDQUFDLENBQUEsVUFBa0IsQ0FBQSxDQUFDLENBQUM7SUFBdkQsSUFBQSxJQUFJLDBDQUFtRDtJQUF2RCxJQUFBLElBQUksZ0RBQW1EO0lBR3ZELHdCQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUE5QixJQUFBLEdBQUcseUNBQTJCO0lBQTlCLElBQUEsR0FBRywrQ0FBMkI7SUFHOUIseUJBQTJCLE9BQU8sQ0FBQyxDQUFBLFVBQWtCLENBQUEsQ0FBQyxDQUFDO0lBQXZELElBQUEsSUFBSSwwQ0FBbUQ7SUFBdkQsSUFBQSxJQUFJLGdEQUFtRDtJQUd2RCx3QkFBTSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFBOUIsSUFBQSxHQUFHLHlDQUEyQjtJQUE5QixJQUFBLEdBQUcsK0NBQTJCO0lBRzlCLHVDQUF3QyxPQUFPLENBQUMsQ0FBQSxVQUFrQixDQUFBLENBQUMsQ0FBQztJQUFwRSxJQUFBLGtCQUFrQix3REFBa0Q7SUFBcEUsSUFBQSxrQkFBa0IsOERBQWtEO0lBR3BFLG9DQUEwQjtJQUExQixJQUFBLGlCQUFpQix1REFBUztJQUExQixJQUFBLGlCQUFpQiw2REFBUztJQUVoQixnQkFBZ0IsQ0FBZ0I7SUFDaEMsZ0JBQWdCLENBQWdCO0lBQ2hDLGFBQWEsQ0FBcUI7SUFDbEMsS0FBSyxDQUEwQjtJQUVsRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUU3RSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9FLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1NBQ25DLENBQUMsQ0FBQztRQUVILE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTlGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWE7UUFDN0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWE7UUFDN0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBYTtRQUMxQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO3VHQTlEVSxvQkFBb0I7MkZBQXBCLG9CQUFvQiwrUENWakMsaTlCQXlCQTs7QURWVztJQURDLE9BQU8sRUFBRTs4QkFDSixVQUFVO2dEQUF1QztBQUd2RDtJQURDLGlCQUFpQixFQUFFOzsrQ0FDVTtBQUc5QjtJQURDLE9BQU8sRUFBRTs4QkFDSixVQUFVO2dEQUF1QztBQUd2RDtJQURDLGlCQUFpQixFQUFFOzsrQ0FDVTtBQUc5QjtJQURDLE9BQU8sRUFBRTs4QkFDUyxVQUFVOzhEQUF1QztBQUdwRTtJQURDLGlCQUFpQixFQUFFOzs2REFDTTsyRkFwQnhCLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBTW5CLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csSUFBSTtzQkFEWixLQUFLO2dCQUlHLEdBQUc7c0JBRFgsS0FBSztnQkFJRyxJQUFJO3NCQURaLEtBQUs7Z0JBSUcsR0FBRztzQkFEWCxLQUFLO2dCQUlHLGtCQUFrQjtzQkFEMUIsS0FBSztnQkFJRyxpQkFBaUI7c0JBRHpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tYW5kLCBEc2wsIFByb3hpZnksIHByb3hpZnksIFN0b3JlSW5WYWx1ZU1vZGVsLCBUcmFjZSwgVmFsdWVNb2RlbCwgVmFsdWVNb2RlbENoYWlufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7QWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1udW1iZXItaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFZhbHVlSW5wdXRDb21wb25lbnQ8bnVtYmVyPiB7XG5cbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBtaW4kOiBWYWx1ZU1vZGVsPG51bWJlcj4gPSBwcm94aWZ5KFZhbHVlTW9kZWw8bnVtYmVyPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgbWluID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBtYXgkOiBWYWx1ZU1vZGVsPG51bWJlcj4gPSBwcm94aWZ5KFZhbHVlTW9kZWw8bnVtYmVyPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgbWF4ID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBzaWduaWZpY2FudERpZ2l0cyQ6VmFsdWVNb2RlbDxudW1iZXI+ID0gcHJveGlmeShWYWx1ZU1vZGVsPG51bWJlcj4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIHNpZ25pZmljYW50RGlnaXRzOiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluY3JlbWVudENvbW1hbmQ6IENvbW1hbmQ8dm9pZD47XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWNyZW1lbnRDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzcGxheVZhbHVlJDogVmFsdWVNb2RlbDxudW1iZXI+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RlcCQ6IFZhbHVlTW9kZWxDaGFpbjxudW1iZXI+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuc3RlcCQgPSBjaGFpbih0aGlzLnNpZ25pZmljYW50RGlnaXRzJCkubWFwKHYgPT4gMTAgKiogKC12KSkub3RoZXJ3aXNlKDEpXG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSQgPSBjaGFpbih0aGlzLnZhbHVlJCkubWFwKHYgPT4gdGhpcy5jbGFtcFNpZ25pZmljYW50RGlnaXRzKHYpLCB7XG4gICAgICBkZXBlbmRzT246IHRoaXMuc2lnbmlmaWNhbnREaWdpdHMkXG4gICAgfSk7XG5cbiAgICBjb25zdCBub3JtYWxpc2VkVmFsdWUkID0gY2hhaW4odGhpcy52YWx1ZSQpLm90aGVyd2lzZSgwKTtcblxuICAgIHRoaXMuaW5jcmVtZW50Q29tbWFuZCA9IENvbW1hbmQuY3JlYXRlKCgpID0+IHtcbiAgICAgIHRoaXMudmFsdWUkLnZhbHVlID0gdGhpcy5pbmNyZW1lbnQodGhpcy52YWx1ZSQudmFsdWUpO1xuICAgIH0pLmVuYWJsZVdoaWxlKGNoYWluLm51bWVyaWNWYWx1ZShub3JtYWxpc2VkVmFsdWUkKS5pc0xlc3NUaGFuKHRoaXMubWF4JCkuYW5kKHRoaXMuZW5hYmxlZCQpKTtcblxuICAgIHRoaXMuZGVjcmVtZW50Q29tbWFuZCA9IENvbW1hbmQuY3JlYXRlKCgpID0+IHtcbiAgICAgIHRoaXMudmFsdWUkLnZhbHVlID0gdGhpcy5kZWNyZW1lbnQodGhpcy52YWx1ZSQudmFsdWUpO1xuICAgIH0pLmVuYWJsZVdoaWxlKGNoYWluLm51bWVyaWNWYWx1ZShub3JtYWxpc2VkVmFsdWUkKS5pc0dyZWF0ZXJUaGFuKHRoaXMubWluJCkuYW5kKHRoaXMuZW5hYmxlZCQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5jcmVtZW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5jbGFtcFNpZ25pZmljYW50RGlnaXRzKCh2YWx1ZSA/PyAwKSArIHRoaXMuc3RlcCQudmFsdWUpXG4gIH1cblxuICBwcml2YXRlIGRlY3JlbWVudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xhbXBTaWduaWZpY2FudERpZ2l0cygodmFsdWUgPz8gMCkgLSB0aGlzLnN0ZXAkLnZhbHVlKVxuICB9XG5cbiAgcHJpdmF0ZSBjbGFtcFNpZ25pZmljYW50RGlnaXRzKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBOdW1iZXIodmFsdWUudG9GaXhlZCh0aGlzLnNpZ25pZmljYW50RGlnaXRzKSk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnZhbHVlJC52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIlxuICAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgICBbbmdNb2RlbF09XCJkaXNwbGF5VmFsdWUkLnZhbHVlXCJcbiAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICBbZGlzYWJsZWRdPVwiIWVuYWJsZWQkLnZhbHVlXCJcbiAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5vdGlmeUVudGVyS2V5KClcIlxuICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm5vdGlmeUVzY2FwZUtleSgpXCJcbiAgICAgICAgIFtwZWN0aW5Gb2N1c0JpbmRpbmddPVwiZm9jdXNDb250ZXh0XCJcbiAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvclN0YXRlTWF0Y2hlclwiXG4gICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgICBbc2l6ZV09XCI0XCJcbiAgICAgICAgIFtzdGVwXT1cInN0ZXAkLnZhbHVlXCJcbiAgPlxuICA8c2VjdGlvbiBtYXRJY29uU3VmZml4PlxuICAgIDxidXR0b24gW3BlY3RpbkNvbW1hbmRdPVwiZGVjcmVtZW50Q29tbWFuZFwiPi08L2J1dHRvbj5cbiAgICA8YnV0dG9uIFtwZWN0aW5Db21tYW5kXT1cImluY3JlbWVudENvbW1hbmRcIj4rPC9idXR0b24+XG4gIDwvc2VjdGlvbj5cbiAgPG1hdC1oaW50ICpuZ0lmPVwiaGludCAmJiAhZGVuc2VcIj57eyBoaW50IH19PC9tYXQtaGludD5cbiAgPG1hdC1lcnJvciAqbmdJZj1cImhhc0Vycm9yc1wiPnt7IGZpcnN0RXJyb3IgfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
@@ -280,7 +280,10 @@ class DisposableComponent extends GarbageCollector {
280
280
  */
281
281
  viewStateDependsOn(...models) {
282
282
  const { when } = Dsl.disposeWith(this);
283
- when.anyOf(...models).changes(() => this.cdr.markForCheck());
283
+ when.anyOf(...models).changes(() => this.markForCheck());
284
+ }
285
+ markForCheck() {
286
+ this.cdr.markForCheck();
284
287
  }
285
288
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
286
289
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: DisposableComponent, usesInheritance: true, ngImport: i0 });
@@ -2240,21 +2243,45 @@ class NumberInputComponent extends AbstractValueInputComponent {
2240
2243
  #max_accessor_storage = Number.MAX_SAFE_INTEGER;
2241
2244
  get max() { return this.#max_accessor_storage; }
2242
2245
  set max(value) { this.#max_accessor_storage = value; }
2246
+ #significantDigits$_accessor_storage = proxify((ValueModel));
2247
+ get significantDigits$() { return this.#significantDigits$_accessor_storage; }
2248
+ set significantDigits$(value) { this.#significantDigits$_accessor_storage = value; }
2249
+ #significantDigits_accessor_storage;
2250
+ get significantDigits() { return this.#significantDigits_accessor_storage; }
2251
+ set significantDigits(value) { this.#significantDigits_accessor_storage = value; }
2243
2252
  incrementCommand;
2244
2253
  decrementCommand;
2254
+ displayValue$;
2255
+ step$;
2245
2256
  constructor() {
2246
2257
  super();
2247
2258
  const { chain } = Dsl.disposeWith(this);
2259
+ this.step$ = chain(this.significantDigits$).map(v => 10 ** (-v)).otherwise(1);
2260
+ this.displayValue$ = chain(this.value$).map(v => this.clampSignificantDigits(v), {
2261
+ dependsOn: this.significantDigits$
2262
+ });
2248
2263
  const normalisedValue$ = chain(this.value$).otherwise(0);
2249
2264
  this.incrementCommand = Command.create(() => {
2250
- this.value$.value = normalisedValue$.value + 1;
2265
+ this.value$.value = this.increment(this.value$.value);
2251
2266
  }).enableWhile(chain.numericValue(normalisedValue$).isLessThan(this.max$).and(this.enabled$));
2252
2267
  this.decrementCommand = Command.create(() => {
2253
- this.value$.value = normalisedValue$.value - 1;
2268
+ this.value$.value = this.decrement(this.value$.value);
2254
2269
  }).enableWhile(chain.numericValue(normalisedValue$).isGreaterThan(this.min$).and(this.enabled$));
2255
2270
  }
2271
+ increment(value) {
2272
+ return this.clampSignificantDigits((value ?? 0) + this.step$.value);
2273
+ }
2274
+ decrement(value) {
2275
+ return this.clampSignificantDigits((value ?? 0) - this.step$.value);
2276
+ }
2277
+ clampSignificantDigits(value) {
2278
+ return Number(value.toFixed(this.significantDigits));
2279
+ }
2280
+ onValueChange(value) {
2281
+ this.value$.value = value;
2282
+ }
2256
2283
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2257
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: NumberInputComponent, selector: "aup-number-input", inputs: { autocomplete: "autocomplete", min$: "min$", min: "min", max$: "max$", max: "max" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\">\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2$4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
2284
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: NumberInputComponent, selector: "aup-number-input", inputs: { autocomplete: "autocomplete", min$: "min$", min: "min", max$: "max$", max: "max", significantDigits$: "significantDigits$", significantDigits: "significantDigits" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [ngModel]=\"displayValue$.value\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\"\n [step]=\"step$.value\"\n >\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2$4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
2258
2285
  }
2259
2286
  __decorate([
2260
2287
  Proxify(),
@@ -2272,9 +2299,17 @@ __decorate([
2272
2299
  StoreInValueModel(),
2273
2300
  __metadata("design:type", Object)
2274
2301
  ], NumberInputComponent.prototype, "max", null);
2302
+ __decorate([
2303
+ Proxify(),
2304
+ __metadata("design:type", ValueModel)
2305
+ ], NumberInputComponent.prototype, "significantDigits$", null);
2306
+ __decorate([
2307
+ StoreInValueModel(),
2308
+ __metadata("design:type", Number)
2309
+ ], NumberInputComponent.prototype, "significantDigits", null);
2275
2310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, decorators: [{
2276
2311
  type: Component,
2277
- args: [{ selector: 'aup-number-input', template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\">\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"] }]
2312
+ args: [{ selector: 'aup-number-input', template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [ngModel]=\"displayValue$.value\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\"\n [step]=\"step$.value\"\n >\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"] }]
2278
2313
  }], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
2279
2314
  type: Input
2280
2315
  }], min$: [{
@@ -2285,6 +2320,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
2285
2320
  type: Input
2286
2321
  }], max: [{
2287
2322
  type: Input
2323
+ }], significantDigits$: [{
2324
+ type: Input
2325
+ }], significantDigits: [{
2326
+ type: Input
2288
2327
  }] } });
2289
2328
 
2290
2329
  class PasswordInputComponent extends AbstractValueInputComponent {
@@ -10867,25 +10906,12 @@ const slideDownOnEnterDef = style({
10867
10906
  paddingTop: '0',
10868
10907
  paddingBottom: '0'
10869
10908
  });
10870
- // TODO: params aren't getting customised in the view. Need to figure out the correct approach.
10871
- const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
10872
- transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
10873
- transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
10874
- ]);
10875
- const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
10876
- transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
10877
- transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
10878
- ]);
10879
10909
  const slideLeftOnEnterDef = style({
10880
10910
  opacity: 0,
10881
10911
  'width': '0',
10882
10912
  paddingLeft: '0',
10883
10913
  paddingRight: '0'
10884
10914
  });
10885
- const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
10886
- transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
10887
- transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
10888
- ]);
10889
10915
  const ZERO_WIDTH = {
10890
10916
  opacity: 0,
10891
10917
  width: '0',
@@ -10898,6 +10924,19 @@ const ZERO_HEIGHT = {
10898
10924
  paddingTop: '0',
10899
10925
  paddingBottom: '0',
10900
10926
  };
10927
+ // TODO: params aren't getting customised in the view. Need to figure out the correct approach.
10928
+ const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
10929
+ transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
10930
+ transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
10931
+ ]);
10932
+ const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
10933
+ transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
10934
+ transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
10935
+ ]);
10936
+ const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
10937
+ transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
10938
+ transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
10939
+ ]);
10901
10940
  const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnter', [
10902
10941
  transition(':enter', [
10903
10942
  style({ overflow: "hidden", whiteSpace: "nowrap", ...ZERO_WIDTH, ...ZERO_HEIGHT }),