@colijnit/transaction 262.1.45 → 262.1.46

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
@@ -867,7 +867,7 @@ declare class TransactionEventService {
867
867
  readonly transactionCopyNavigation: Subject<string>;
868
868
  readonly transactionDeleted: Subject<void>;
869
869
  readonly transactionPaymentDone: Subject<void>;
870
- readonly transactionLoaded: Subject<void>;
870
+ readonly transactionLoaded: Subject<TransactionInfoResponse>;
871
871
  readonly copyOrder: Subject<void>;
872
872
  readonly updateTransactionReferences: Subject<void>;
873
873
  readonly transactionLineVisibilityChange: BehaviorSubject<{
@@ -2105,6 +2105,7 @@ declare enum Icon {
2105
2105
  CloseDialog = "close_dialog",
2106
2106
  CodeRegular = "code_regular",
2107
2107
  ContainerStorageRegularFull = "container_storage_regular_full",
2108
+ CopyRegularFull = "copy_regular_full",
2108
2109
  CreditCardRegular = "credit_card_regular",
2109
2110
  CreditCardRegularCheck = "credit_card_regular_check",
2110
2111
  CreditCardSolid = "credit_card_solid",
@@ -10027,7 +10028,7 @@ declare class TransactionSalesOverviewButtonBarButtonComponent extends Transacti
10027
10028
  showCategories: boolean;
10028
10029
  constructor(iconCacheService: IconCacheService, changeDetector: ChangeDetectorRef, _transactionEventService: TransactionEventService, _mappingService: TransactionMappingService, _dictionaryService: DictionaryService, _screenConfigService: TransactionScreenConfigurationService, _transactionService: TransactionService, _elementRef: ElementRef, _renderer: Renderer2, _transactionBaseService: TransactionService);
10029
10030
  currentIcon(): Icon.CartShoppingRegular | Icon.ChartPieSimpleRegular;
10030
- currentTitle(): "MARGINS" | "OVERVIEW";
10031
+ currentTitle(): "OVERVIEW" | "MARGINS";
10031
10032
  ngOnDestroy(): void;
10032
10033
  handleClickWrapper(event: MouseEvent): void;
10033
10034
  handleMarginClicked(event: MouseEvent, category: TransactionTypeCategory): void;
@@ -10053,7 +10054,7 @@ declare class TransactionPurchaseOverviewButtonBarButtonComponent extends Transa
10053
10054
  constructor(iconCacheService: IconCacheService, transactionHeaderService: TransactionHeaderService, transactionEventService: TransactionEventService, changeDetector: ChangeDetectorRef, _mappingService: TransactionMappingService, _transactionService: TransactionService, _elementRef: ElementRef);
10054
10055
  ngOnDestroy(): void;
10055
10056
  currentIcon(): Icon.CartShoppingRegular | Icon.ChartPieSimpleRegular;
10056
- currentTitle(): "MARGINS" | "OVERVIEW";
10057
+ currentTitle(): "OVERVIEW" | "MARGINS";
10057
10058
  handleClickWrapper(event: MouseEvent): void;
10058
10059
  handleMarginClicked(event: MouseEvent, category: TransactionTypeCategory): Promise<void>;
10059
10060
  private handleDocumentClick;
@@ -10105,7 +10106,7 @@ declare class TransactionSalesQuotationButtonBarButtonComponent extends Transact
10105
10106
  showCategories: boolean;
10106
10107
  constructor(iconCacheService: IconCacheService, changeDetector: ChangeDetectorRef, _transactionEventService: TransactionEventService, _mappingService: TransactionMappingService, _dictionaryService: DictionaryService, _screenConfigService: TransactionScreenConfigurationService, _transactionService: TransactionService, _elementRef: ElementRef, _renderer: Renderer2, _transactionBaseService: TransactionService);
10107
10108
  currentIcon(): Icon.CartShoppingRegular | Icon.ChartPieSimpleRegular;
10108
- currentTitle(): "MARGINS" | "OVERVIEW";
10109
+ currentTitle(): "OVERVIEW" | "MARGINS";
10109
10110
  ngOnDestroy(): void;
10110
10111
  handleClickWrapper(event: MouseEvent): void;
10111
10112
  handleMarginClicked(event: MouseEvent, category: TransactionTypeCategory): void;
@@ -13824,7 +13825,6 @@ declare class TransactionHeaderBlockComponent {
13824
13825
  secondBlockTemplate: TemplateRef<any>;
13825
13826
  thirdBlockTemplate: TemplateRef<any>;
13826
13827
  hiddenBlockTemplate: TemplateRef<any>;
13827
- dontShowEditIcon: boolean;
13828
13828
  headerClick: EventEmitter<MouseEvent>;
13829
13829
  showClass(): boolean;
13830
13830
  handleHostClick(event: MouseEvent): void;
@@ -13832,7 +13832,7 @@ declare class TransactionHeaderBlockComponent {
13832
13832
  constructor(iconCacheService: IconCacheService);
13833
13833
  onHeaderClick(event: MouseEvent): void;
13834
13834
  static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderBlockComponent, never>;
13835
- 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>;
13835
+ 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>;
13836
13836
  }
13837
13837
 
13838
13838
  declare class TransactionHeaderBlockModule {
@@ -14178,8 +14178,14 @@ declare class TransactionHeaderComponent {
14178
14178
  static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderComponent, "co-transaction-header", never, { "transaction": { "alias": "transaction"; "required": false; }; }, {}, never, never, false, never>;
14179
14179
  }
14180
14180
 
14181
+ declare enum ContactValueKind {
14182
+ Email = "email",
14183
+ Phone = "phone"
14184
+ }
14185
+
14181
14186
  declare class TransactionHeaderRelationComponent extends TransactionHeaderBaseComponent implements OnInit, OnDestroy {
14182
14187
  readonly icons: typeof Icon;
14188
+ readonly contactKinds: typeof ContactValueKind;
14183
14189
  showClass(): boolean;
14184
14190
  firstAddress: string;
14185
14191
  firstPostal: string;
@@ -14201,9 +14207,49 @@ declare class TransactionHeaderRelationComponent extends TransactionHeaderBaseCo
14201
14207
  static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderRelationComponent, "co-transaction-header-relation", never, {}, {}, never, never, false, never>;
14202
14208
  }
14203
14209
 
14210
+ declare class TransactionHeaderContactComponent implements OnInit, OnDestroy {
14211
+ iconCacheService: IconCacheService;
14212
+ private _changeDetector;
14213
+ value: string;
14214
+ kind: ContactValueKind;
14215
+ showClass(): boolean;
14216
+ readonly icons: typeof Icon;
14217
+ copied: boolean;
14218
+ /**
14219
+ * Href of the `mailto:` / `tel:` link, or `undefined` when the value must render as plain text.
14220
+ * Only touch-only devices get a link: there a tap to call or to mail is what the user wants, and a
14221
+ * long press hands them the operating system's own "copy" menu. With a mouse the same link would
14222
+ * hijack the click and open an unwanted mail client.
14223
+ */
14224
+ get href(): string;
14225
+ private _touchOnlyDevice;
14226
+ private _copyResetTimeoutId;
14227
+ constructor(iconCacheService: IconCacheService, _changeDetector: ChangeDetectorRef);
14228
+ ngOnInit(): void;
14229
+ ngOnDestroy(): void;
14230
+ handleValueClick(event: MouseEvent): void;
14231
+ handleCopyClick(event: MouseEvent): void;
14232
+ private _isTouchOnlyDevice;
14233
+ private _copyUsingFallback;
14234
+ private _confirmCopy;
14235
+ /**
14236
+ * Fallback for the pages where `navigator.clipboard` is missing — it needs a secure context, so it is
14237
+ * simply absent when iOne is served over plain http.
14238
+ */
14239
+ private _copyUsingSelection;
14240
+ static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderContactComponent, never>;
14241
+ static ɵcmp: i0.ɵɵComponentDeclaration<TransactionHeaderContactComponent, "co-transaction-header-contact", never, { "value": { "alias": "value"; "required": false; }; "kind": { "alias": "kind"; "required": false; }; }, {}, never, never, false, never>;
14242
+ }
14243
+
14244
+ declare class TransactionHeaderContactModule {
14245
+ static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderContactModule, never>;
14246
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TransactionHeaderContactModule, [typeof TransactionHeaderContactComponent], [typeof i2.CommonModule, typeof i3.IconModule, typeof PipeModule], [typeof TransactionHeaderContactComponent]>;
14247
+ static ɵinj: i0.ɵɵInjectorDeclaration<TransactionHeaderContactModule>;
14248
+ }
14249
+
14204
14250
  declare class TransactionHeaderRelationModule {
14205
14251
  static ɵfac: i0.ɵɵFactoryDeclaration<TransactionHeaderRelationModule, never>;
14206
- 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]>;
14252
+ 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]>;
14207
14253
  static ɵinj: i0.ɵɵInjectorDeclaration<TransactionHeaderRelationModule>;
14208
14254
  }
14209
14255
 
@@ -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": "262.1.45",
3
+ "version": "262.1.46",
4
4
  "description": "Colijn IT transaction module for Angular 20",
5
5
  "repository": "npm/npm",
6
6
  "author": "Colijn IT",