@colijnit/transaction 261.20.70 → 261.20.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -861,7 +861,7 @@ declare class TransactionEventService {
861
861
  readonly transactionCopyNavigation: Subject<string>;
862
862
  readonly transactionDeleted: Subject<void>;
863
863
  readonly transactionPaymentDone: Subject<void>;
864
- readonly transactionLoaded: Subject<void>;
864
+ readonly transactionLoaded: Subject<TransactionInfoResponse>;
865
865
  readonly copyOrder: Subject<void>;
866
866
  readonly updateTransactionReferences: Subject<void>;
867
867
  readonly transactionLineVisibilityChange: BehaviorSubject<{
@@ -2081,6 +2081,7 @@ declare enum Icon {
2081
2081
  CloseDialog = "close_dialog",
2082
2082
  CodeRegular = "code_regular",
2083
2083
  ContainerStorageRegularFull = "container_storage_regular_full",
2084
+ CopyRegularFull = "copy_regular_full",
2084
2085
  CreditCardRegular = "credit_card_regular",
2085
2086
  CreditCardRegularCheck = "credit_card_regular_check",
2086
2087
  CreditCardSolid = "credit_card_solid",
@@ -9954,7 +9955,7 @@ declare class TransactionSalesOverviewButtonBarButtonComponent extends Transacti
9954
9955
  showCategories: boolean;
9955
9956
  constructor(iconCacheService: IconCacheService, changeDetector: ChangeDetectorRef, _transactionEventService: TransactionEventService, _mappingService: TransactionMappingService, _dictionaryService: DictionaryService, _screenConfigService: TransactionScreenConfigurationService, _transactionService: TransactionService, _elementRef: ElementRef, _renderer: Renderer2, _transactionBaseService: TransactionService);
9956
9957
  currentIcon(): Icon.CartShoppingRegular | Icon.ChartPieSimpleRegular;
9957
- currentTitle(): "MARGINS" | "OVERVIEW";
9958
+ currentTitle(): "OVERVIEW" | "MARGINS";
9958
9959
  ngOnDestroy(): void;
9959
9960
  handleClickWrapper(event: MouseEvent): void;
9960
9961
  handleMarginClicked(event: MouseEvent, category: TransactionTypeCategory): void;
@@ -9980,7 +9981,7 @@ declare class TransactionPurchaseOverviewButtonBarButtonComponent extends Transa
9980
9981
  constructor(iconCacheService: IconCacheService, transactionHeaderService: TransactionHeaderService, transactionEventService: TransactionEventService, changeDetector: ChangeDetectorRef, _mappingService: TransactionMappingService, _transactionService: TransactionService, _elementRef: ElementRef);
9981
9982
  ngOnDestroy(): void;
9982
9983
  currentIcon(): Icon.CartShoppingRegular | Icon.ChartPieSimpleRegular;
9983
- currentTitle(): "MARGINS" | "OVERVIEW";
9984
+ currentTitle(): "OVERVIEW" | "MARGINS";
9984
9985
  handleClickWrapper(event: MouseEvent): void;
9985
9986
  handleMarginClicked(event: MouseEvent, category: TransactionTypeCategory): Promise<void>;
9986
9987
  private handleDocumentClick;
@@ -10032,7 +10033,7 @@ declare class TransactionSalesQuotationButtonBarButtonComponent extends Transact
10032
10033
  showCategories: boolean;
10033
10034
  constructor(iconCacheService: IconCacheService, changeDetector: ChangeDetectorRef, _transactionEventService: TransactionEventService, _mappingService: TransactionMappingService, _dictionaryService: DictionaryService, _screenConfigService: TransactionScreenConfigurationService, _transactionService: TransactionService, _elementRef: ElementRef, _renderer: Renderer2, _transactionBaseService: TransactionService);
10034
10035
  currentIcon(): Icon.CartShoppingRegular | Icon.ChartPieSimpleRegular;
10035
- currentTitle(): "MARGINS" | "OVERVIEW";
10036
+ currentTitle(): "OVERVIEW" | "MARGINS";
10036
10037
  ngOnDestroy(): void;
10037
10038
  handleClickWrapper(event: MouseEvent): void;
10038
10039
  handleMarginClicked(event: MouseEvent, category: TransactionTypeCategory): void;
@@ -13717,7 +13718,6 @@ declare class TransactionHeaderBlockComponent {
13717
13718
  secondBlockTemplate: TemplateRef<any>;
13718
13719
  thirdBlockTemplate: TemplateRef<any>;
13719
13720
  hiddenBlockTemplate: TemplateRef<any>;
13720
- dontShowEditIcon: boolean;
13721
13721
  headerClick: EventEmitter<MouseEvent>;
13722
13722
  showClass(): boolean;
13723
13723
  handleHostClick(event: MouseEvent): void;
@@ -13725,7 +13725,7 @@ declare class TransactionHeaderBlockComponent {
13725
13725
  constructor(iconCacheService: IconCacheService);
13726
13726
  onHeaderClick(event: MouseEvent): void;
13727
13727
  static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderBlockComponent, never>;
13728
- static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderBlockComponent, "co-transaction-header-block", never, { "headerBlockTemplate": { "alias": "headerBlockTemplate"; "required": false; }; "firstBlockTemplate": { "alias": "firstBlockTemplate"; "required": false; }; "secondBlockTemplate": { "alias": "secondBlockTemplate"; "required": false; }; "thirdBlockTemplate": { "alias": "thirdBlockTemplate"; "required": false; }; "hiddenBlockTemplate": { "alias": "hiddenBlockTemplate"; "required": false; }; "dontShowEditIcon": { "alias": "dontShowEditIcon"; "required": false; }; }, { "headerClick": "headerClick"; }, never, never, false, never>;
13728
+ static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderBlockComponent, "co-transaction-header-block", never, { "headerBlockTemplate": { "alias": "headerBlockTemplate"; "required": false; }; "firstBlockTemplate": { "alias": "firstBlockTemplate"; "required": false; }; "secondBlockTemplate": { "alias": "secondBlockTemplate"; "required": false; }; "thirdBlockTemplate": { "alias": "thirdBlockTemplate"; "required": false; }; "hiddenBlockTemplate": { "alias": "hiddenBlockTemplate"; "required": false; }; }, { "headerClick": "headerClick"; }, never, never, false, never>;
13729
13729
  }
13730
13730
 
13731
13731
  declare class TransactionHeaderBlockModule {
@@ -14070,8 +14070,14 @@ declare class TransactionHeaderComponent {
14070
14070
  static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderComponent, "co-transaction-header", never, { "transaction": { "alias": "transaction"; "required": false; }; }, {}, never, never, false, never>;
14071
14071
  }
14072
14072
 
14073
+ declare enum ContactValueKind {
14074
+ Email = "email",
14075
+ Phone = "phone"
14076
+ }
14077
+
14073
14078
  declare class TransactionHeaderRelationComponent extends TransactionHeaderBaseComponent implements OnInit, OnDestroy {
14074
14079
  readonly icons: typeof Icon;
14080
+ readonly contactKinds: typeof ContactValueKind;
14075
14081
  showClass(): boolean;
14076
14082
  firstAddress: string;
14077
14083
  firstPostal: string;
@@ -14084,7 +14090,6 @@ declare class TransactionHeaderRelationComponent extends TransactionHeaderBaseCo
14084
14090
  typeOfCustomerFullObject(relation: Relation): boolean;
14085
14091
  get relationAsCustomer(): CustomerFullObject;
14086
14092
  contactPersonForId(relationId: number): RelationContactLink;
14087
- isPopupBlocked(): boolean;
14088
14093
  handleHeaderClick(): void;
14089
14094
  protected relationSet(): void;
14090
14095
  protected transactionInfoSet(): void;
@@ -14093,9 +14098,49 @@ declare class TransactionHeaderRelationComponent extends TransactionHeaderBaseCo
14093
14098
  static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderRelationComponent, "co-transaction-header-relation", never, {}, {}, never, never, false, never>;
14094
14099
  }
14095
14100
 
14101
+ declare class TransactionHeaderContactComponent implements OnInit, OnDestroy {
14102
+ iconCacheService: IconCacheService;
14103
+ private _changeDetector;
14104
+ value: string;
14105
+ kind: ContactValueKind;
14106
+ showClass(): boolean;
14107
+ readonly icons: typeof Icon;
14108
+ copied: boolean;
14109
+ /**
14110
+ * Href of the `mailto:` / `tel:` link, or `undefined` when the value must render as plain text.
14111
+ * Only touch-only devices get a link: there a tap to call or to mail is what the user wants, and a
14112
+ * long press hands them the operating system's own "copy" menu. With a mouse the same link would
14113
+ * hijack the click and open an unwanted mail client.
14114
+ */
14115
+ get href(): string;
14116
+ private _touchOnlyDevice;
14117
+ private _copyResetTimeoutId;
14118
+ constructor(iconCacheService: IconCacheService, _changeDetector: ChangeDetectorRef);
14119
+ ngOnInit(): void;
14120
+ ngOnDestroy(): void;
14121
+ handleValueClick(event: MouseEvent): void;
14122
+ handleCopyClick(event: MouseEvent): void;
14123
+ private _isTouchOnlyDevice;
14124
+ private _copyUsingFallback;
14125
+ private _confirmCopy;
14126
+ /**
14127
+ * Fallback for the pages where `navigator.clipboard` is missing — it needs a secure context, so it is
14128
+ * simply absent when iOne is served over plain http.
14129
+ */
14130
+ private _copyUsingSelection;
14131
+ static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderContactComponent, never>;
14132
+ static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderContactComponent, "co-transaction-header-contact", never, { "value": { "alias": "value"; "required": false; }; "kind": { "alias": "kind"; "required": false; }; }, {}, never, never, false, never>;
14133
+ }
14134
+
14135
+ declare class TransactionHeaderContactModule {
14136
+ static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderContactModule, never>;
14137
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TransactionHeaderContactModule, [typeof TransactionHeaderContactComponent], [typeof i2.CommonModule, typeof i3.IconModule, typeof PipeModule], [typeof TransactionHeaderContactComponent]>;
14138
+ static ɵinj: i0.ɵɵInjectorDeclaration<TransactionHeaderContactModule>;
14139
+ }
14140
+
14096
14141
  declare class TransactionHeaderRelationModule {
14097
14142
  static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderRelationModule, never>;
14098
- static ɵmod: i0.ɵɵNgModuleDeclaration<TransactionHeaderRelationModule, [typeof TransactionHeaderRelationComponent], [typeof i2.CommonModule, typeof TransactionHeaderBlockModule, typeof CheckoutModule, typeof RelationTypeModule, typeof CoreModule, typeof RelationGeneralModule, typeof RelationAddressModule, typeof RelationAddressesModule, typeof i3.InputCheckboxModule, typeof RelationContactDetailsModule, typeof RelationPreferencesModule, typeof PipeModule, typeof i3.CoDialogModule, typeof TransactionFilterCategoriesModule, typeof i3.ButtonModule, typeof i3.FormModule, typeof TransactionHeaderPopupModule, typeof i3.IconModule, typeof AvatarModule, typeof i3.ScreenConfigurationModule], [typeof TransactionHeaderRelationComponent]>;
14143
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TransactionHeaderRelationModule, [typeof TransactionHeaderRelationComponent], [typeof i2.CommonModule, typeof TransactionHeaderBlockModule, typeof TransactionHeaderContactModule, typeof CheckoutModule, typeof RelationTypeModule, typeof CoreModule, typeof RelationGeneralModule, typeof RelationAddressModule, typeof RelationAddressesModule, typeof i3.InputCheckboxModule, typeof RelationContactDetailsModule, typeof RelationPreferencesModule, typeof PipeModule, typeof i3.CoDialogModule, typeof TransactionFilterCategoriesModule, typeof i3.ButtonModule, typeof i3.FormModule, typeof TransactionHeaderPopupModule, typeof i3.IconModule, typeof AvatarModule, typeof i3.ScreenConfigurationModule], [typeof TransactionHeaderRelationComponent]>;
14099
14144
  static ɵinj: i0.ɵɵInjectorDeclaration<TransactionHeaderRelationModule>;
14100
14145
  }
14101
14146
 
@@ -17,10 +17,6 @@
17
17
  border-radius: $tp-transaction-header-block-border-radius $tp-transaction-header-block-border-radius 0 0;
18
18
  z-index: 100;
19
19
  }
20
- &.no-pointer {
21
- pointer-events: none;
22
- cursor: initial;
23
- }
24
20
  .transaction-header-block-header {
25
21
  font-family: $tp-transaction-header-block-label-font-family;
26
22
  display: flex;
@@ -0,0 +1,65 @@
1
+ @include export-module('co-transaction-header-contact-layout') {
2
+ .co-transaction-header-contact {
3
+ display: flex;
4
+ align-items: center;
5
+ column-gap: var(--co-transaction-header-contact-column-gap);
6
+ min-width: 0;
7
+
8
+ .transaction-header-contact-value {
9
+ flex: 1 1 auto;
10
+ min-width: 0;
11
+ overflow: hidden;
12
+ text-overflow: ellipsis;
13
+ white-space: nowrap;
14
+ text-decoration: none;
15
+ }
16
+
17
+ .transaction-header-contact-copy {
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ flex-shrink: 0;
22
+ width: var(--co-transaction-header-contact-copy-hit-size);
23
+ height: var(--co-transaction-header-contact-copy-hit-size);
24
+ cursor: pointer;
25
+ // Always visible, so the option is discoverable without a hovering pointer.
26
+ opacity: var(--co-transaction-header-contact-copy-idle-opacity);
27
+ transition: var(--co-transaction-header-contact-copy-transition);
28
+
29
+ &:hover, &.copied {
30
+ opacity: 1;
31
+ }
32
+
33
+ .co-icon {
34
+ width: var(--co-transaction-header-contact-copy-icon-size);
35
+ height: var(--co-transaction-header-contact-copy-icon-size);
36
+ }
37
+ }
38
+
39
+ // Deliberately not the screen-mobile mixin: the target has to grow wherever a finger is doing the
40
+ // tapping, which is the same condition under which the component renders a mailto: / tel: link.
41
+ // A tablet in landscape is wider than the mobile breakpoint and still needs the bigger target.
42
+ @media only screen and (max-width: 700px), (hover: none) and (pointer: coarse) {
43
+ min-height: var(--co-transaction-header-contact-copy-hit-size-touch);
44
+
45
+ .transaction-header-contact-copy {
46
+ width: var(--co-transaction-header-contact-copy-hit-size-touch);
47
+ height: var(--co-transaction-header-contact-copy-hit-size-touch);
48
+ }
49
+ }
50
+ }
51
+
52
+ .transaction-header-contact-clipboard-proxy {
53
+ position: fixed;
54
+ top: 0;
55
+ left: 0;
56
+ width: 1px;
57
+ height: 1px;
58
+ padding: 0;
59
+ border-width: 0;
60
+ // iOS zooms in on a focused field below 16px, even one it cannot see.
61
+ font-size: 16px;
62
+ opacity: 0;
63
+ pointer-events: none;
64
+ }
65
+ }
@@ -0,0 +1,25 @@
1
+ $tp-transaction-header-contact-column-gap: 4px !default;
2
+ $tp-transaction-header-contact-copy-icon-size: 11px !default;
3
+ $tp-transaction-header-contact-copy-hit-size: 16px !default;
4
+ // A finger needs a target of its own; on touch the contact row grows to fit it.
5
+ $tp-transaction-header-contact-copy-hit-size-touch: 32px !default;
6
+ $tp-transaction-header-contact-copy-idle-opacity: 0.45 !default;
7
+ $tp-transaction-header-contact-copy-transition: opacity 0.2s !default;
8
+
9
+ $tp-transaction-header-contact-copy-color: $tp-color-text-grey !default;
10
+ $tp-transaction-header-contact-copy-hover-color: $tp-color-action !default;
11
+ $tp-transaction-header-contact-copied-color: $tp-color-active !default;
12
+
13
+ @include export-module('co-transaction-header-contact-tokens') {
14
+ :root {
15
+ --co-transaction-header-contact-column-gap: #{$tp-transaction-header-contact-column-gap};
16
+ --co-transaction-header-contact-copy-icon-size: #{$tp-transaction-header-contact-copy-icon-size};
17
+ --co-transaction-header-contact-copy-hit-size: #{$tp-transaction-header-contact-copy-hit-size};
18
+ --co-transaction-header-contact-copy-hit-size-touch: #{$tp-transaction-header-contact-copy-hit-size-touch};
19
+ --co-transaction-header-contact-copy-idle-opacity: #{$tp-transaction-header-contact-copy-idle-opacity};
20
+ --co-transaction-header-contact-copy-transition: #{$tp-transaction-header-contact-copy-transition};
21
+ --co-transaction-header-contact-copy-color: #{$tp-transaction-header-contact-copy-color};
22
+ --co-transaction-header-contact-copy-hover-color: #{$tp-transaction-header-contact-copy-hover-color};
23
+ --co-transaction-header-contact-copied-color: #{$tp-transaction-header-contact-copied-color};
24
+ }
25
+ }
@@ -0,0 +1,34 @@
1
+ @include export-module('co-transaction-header-contact-theme') {
2
+ .co-transaction-header-contact {
3
+ .transaction-header-contact-value {
4
+ color: inherit;
5
+ }
6
+
7
+ .transaction-header-contact-copy {
8
+ svg {
9
+ fill: var(--co-transaction-header-contact-copy-color);
10
+ }
11
+ [fill] {
12
+ fill: var(--co-transaction-header-contact-copy-color);
13
+ }
14
+
15
+ &:hover {
16
+ svg {
17
+ fill: var(--co-transaction-header-contact-copy-hover-color);
18
+ }
19
+ [fill] {
20
+ fill: var(--co-transaction-header-contact-copy-hover-color);
21
+ }
22
+ }
23
+
24
+ &.copied {
25
+ svg {
26
+ fill: var(--co-transaction-header-contact-copied-color);
27
+ }
28
+ [fill] {
29
+ fill: var(--co-transaction-header-contact-copied-color);
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,4 @@
1
+ @import "../../../../../../style/mixin";
2
+ @import "./_material-definition";
3
+ @import "./_layout";
4
+ @import "./_theme";
@@ -125,7 +125,7 @@
125
125
  .header-relation-email {
126
126
  margin: $tp-co-transaction-header-relation-content-email-margin;
127
127
  }
128
- .text-overflow {
128
+ .text-overflow, .co-transaction-header-contact .transaction-header-contact-value {
129
129
  max-height: $tp-co-transaction-header-relation-content-line-height;
130
130
  text-overflow: ellipsis;
131
131
  overflow: hidden;
@@ -2,6 +2,7 @@
2
2
  @import "./layout";
3
3
  @import "./theme";
4
4
  @import "../../../core/base/components/transaction-header-block/style/material";
5
+ @import "../../../core/base/components/transaction-header-contact/style/material";
5
6
  @import "../../../relation/relation-type/style/material";
6
7
  @import "../../../relation/relation-addresses/style/material";
7
8
  @import "../../../relation/relation-address/style/material";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colijnit/transaction",
3
- "version": "261.20.70",
3
+ "version": "261.20.71",
4
4
  "description": "Colijn IT transaction module for Angular 20",
5
5
  "repository": "npm/npm",
6
6
  "author": "Colijn IT",