@privyid/persona 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/components/breadcrumbs/Breadcrumb.vue +60 -0
  2. package/dist/components/breadcrumbs/Breadcrumb.vue.d.ts +41 -0
  3. package/dist/components/breadcrumbs/BreadcrumbItem.vue +86 -0
  4. package/dist/components/breadcrumbs/BreadcrumbItem.vue.d.ts +28 -0
  5. package/dist/components/breadcrumbs/BreadcrumbItemDropdown.vue +65 -0
  6. package/dist/components/breadcrumbs/BreadcrumbItemDropdown.vue.d.ts +25 -0
  7. package/dist/components/breadcrumbs/index.d.ts +11 -0
  8. package/dist/components/breadcrumbs/index.mjs +3 -0
  9. package/dist/components/button/Button.vue +22 -6
  10. package/dist/components/button/Button.vue.d.ts +11 -1
  11. package/dist/components/button/index.d.ts +1 -0
  12. package/dist/components/button-group/ButtonGroup.vue +4 -4
  13. package/dist/components/camera/Camera.vue +1 -1
  14. package/dist/components/card/Card.vue +1 -1
  15. package/dist/components/checkbox/Checkbox.vue +1 -1
  16. package/dist/components/divider/Divider.vue +5 -1
  17. package/dist/components/dropdown/Dropdown.vue +5 -5
  18. package/dist/components/dropdown/Dropdown.vue.d.ts +1 -1
  19. package/dist/components/dropdown/DropdownItem.vue +45 -6
  20. package/dist/components/dropdown/DropdownItem.vue.d.ts +21 -0
  21. package/dist/components/input/Input.vue +3 -3
  22. package/dist/components/input/Input.vue.d.ts +1 -1
  23. package/dist/components/input-file/InputFile.vue +29 -4
  24. package/dist/components/input-file/InputFile.vue.d.ts +17 -2
  25. package/dist/components/label/Label.vue +3 -3
  26. package/dist/components/label/Label.vue.d.ts +1 -1
  27. package/dist/components/{app/App.vue → main/Main.vue} +25 -10
  28. package/dist/components/modal/Modal.vue +1 -1
  29. package/dist/components/modal/Modal.vue.d.ts +1 -1
  30. package/dist/components/nav/NavItem.vue.d.ts +2 -2
  31. package/dist/components/navbar/Navbar.vue +1 -1
  32. package/dist/components/navbar/NavbarNav.vue +7 -1
  33. package/dist/components/page/Page.vue +101 -0
  34. package/dist/components/page/Page.vue.d.ts +39 -0
  35. package/dist/components/pdf-helipad/PdfHelipad.vue +134 -0
  36. package/dist/components/pdf-helipad/PdfHelipad.vue.d.ts +45 -0
  37. package/dist/components/pdf-helipad/assets/helicopter.svg +1 -0
  38. package/dist/components/pdf-helipad/index.d.ts +7 -0
  39. package/dist/components/pdf-helipad/index.mjs +0 -0
  40. package/dist/components/pdf-helipad/utils/use-drag.d.ts +8 -0
  41. package/dist/components/pdf-helipad/utils/use-drag.mjs +38 -0
  42. package/dist/components/pdf-object/PdfObjects.vue +1 -0
  43. package/dist/components/pdf-object/utils/use-drop.mjs +1 -1
  44. package/dist/components/pdf-text/PdfText.vue +129 -0
  45. package/dist/components/pdf-text/PdfText.vue.d.ts +168 -0
  46. package/dist/components/pdf-text/utils/text-to-image.d.ts +68 -0
  47. package/dist/components/pdf-text/utils/text-to-image.mjs +118 -0
  48. package/dist/components/pdf-viewer/PdfError.vue +4 -1
  49. package/dist/components/pdf-viewer/PdfLoading.vue +1 -1
  50. package/dist/components/pdf-viewer/PdfViewer.vue +44 -21
  51. package/dist/components/pdf-viewer/PdfViewer.vue.d.ts +24 -3
  52. package/dist/components/pdf-viewer/assets/pdf-loading.svg +1 -85
  53. package/dist/components/pdf-viewer/utils/use-viewer.d.ts +1 -0
  54. package/dist/components/pdf-viewer/utils/use-viewer.mjs +6 -2
  55. package/dist/components/progress/ProgressItem.vue.d.ts +1 -1
  56. package/dist/components/radio/Radio.vue +1 -1
  57. package/dist/components/sidebar/Sidebar.vue +72 -1
  58. package/dist/components/sidebar/Sidebar.vue.d.ts +23 -2
  59. package/dist/components/sidebar-menu/SidebarMenu.vue +5 -0
  60. package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +10 -0
  61. package/dist/components/signature-text/SignatureText.vue.d.ts +1 -1
  62. package/dist/components/table/Table.vue +14 -6
  63. package/dist/components/table/Table.vue.d.ts +1 -1
  64. package/dist/components/toggle/Toggle.vue +11 -3
  65. package/dist/components/tour/TourDialog.vue.d.ts +1 -1
  66. package/dist/components/tour/TourHighlight.vue +1 -1
  67. package/dist/core/index.d.ts +3 -1
  68. package/dist/core/index.mjs +4 -1
  69. package/dist/module.json +1 -1
  70. package/dist/module.mjs +3 -1
  71. package/package.json +19 -8
@@ -1,18 +1,39 @@
1
+ import { TagVariant } from '../button';
1
2
  declare const _default: import("vue-demi").DefineComponent<{
2
3
  text: {
3
4
  type: StringConstructor;
4
5
  default: string;
5
6
  };
7
+ href: {
8
+ type: StringConstructor;
9
+ default: any;
10
+ };
11
+ active: {
12
+ type: BooleanConstructor;
13
+ default: boolean;
14
+ };
6
15
  }, {
7
16
  handleOnClick: (event: Event) => void;
17
+ classNames: import("vue-demi").ComputedRef<string[]>;
18
+ tagName: import("vue-demi").ComputedRef<TagVariant>;
8
19
  }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "click"[], "click", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
9
20
  text: {
10
21
  type: StringConstructor;
11
22
  default: string;
12
23
  };
24
+ href: {
25
+ type: StringConstructor;
26
+ default: any;
27
+ };
28
+ active: {
29
+ type: BooleanConstructor;
30
+ default: boolean;
31
+ };
13
32
  }>> & {
14
33
  onClick?: (...args: any[]) => any;
15
34
  }, {
35
+ href: string;
36
+ active: boolean;
16
37
  text: string;
17
38
  }>;
18
39
  export default _default;
@@ -77,10 +77,10 @@ export default defineComponent({
77
77
  result.push("input--clearable");
78
78
  return result;
79
79
  });
80
- function clear() {
81
- if (!props.disabled && !props.readonly)
80
+ function clear(event) {
81
+ emit("clear", event);
82
+ if (!props.disabled && !props.readonly && !event.defaultPrevented)
82
83
  model.value = "";
83
- emit("clear");
84
84
  }
85
85
  return {
86
86
  classNames,
@@ -28,7 +28,7 @@ declare const _default: import("vue-demi").DefineComponent<{
28
28
  }, {
29
29
  classNames: import("vue-demi").ComputedRef<string[]>;
30
30
  model: import("vue-demi").Ref<string | number>;
31
- clear: () => void;
31
+ clear: (event: MouseEvent) => void;
32
32
  }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("update:modelValue" | "clear")[], "update:modelValue" | "clear", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
33
33
  modelValue: {
34
34
  type: (NumberConstructor | StringConstructor)[];
@@ -26,8 +26,10 @@
26
26
  </p-input-group-addon>
27
27
  <p-input
28
28
  readonly
29
+ :clearable="clearable"
29
30
  :model-value="getFileNames(rawModel)"
30
- :placeholder="placeholder" />
31
+ :placeholder="placeholder"
32
+ @clear.stop.prevent="clear" />
31
33
  </p-input-group>
32
34
  </template>
33
35
  </p-dropzone>
@@ -44,6 +46,7 @@ import pInput from "../input/Input.vue";
44
46
  import pInputGroup from "../input-group/InputGroup.vue";
45
47
  import pInputGroupAddon from "../input-group/InputGroupAddon.vue";
46
48
  import pButton from "../button/Button.vue";
49
+ import { templateRef } from "@vueuse/core";
47
50
  export default defineComponent({
48
51
  components: {
49
52
  pDropzone,
@@ -77,6 +80,10 @@ export default defineComponent({
77
80
  type: String,
78
81
  default: ""
79
82
  },
83
+ clearable: {
84
+ type: Boolean,
85
+ default: false
86
+ },
80
87
  clearOnCancel: {
81
88
  type: Boolean,
82
89
  default: false
@@ -106,8 +113,15 @@ export default defineComponent({
106
113
  default: "md"
107
114
  }
108
115
  },
109
- setup(props) {
116
+ emits: [
117
+ "update:modelValue",
118
+ "clear",
119
+ "change",
120
+ "cancel"
121
+ ],
122
+ setup(props, { emit }) {
110
123
  const model = useVModel(props);
124
+ const dropzone = templateRef("dropzone");
111
125
  const classNames = computed(() => {
112
126
  const result = [];
113
127
  if (props.readonly)
@@ -121,10 +135,17 @@ export default defineComponent({
121
135
  function getFileNames(files) {
122
136
  return Array.isArray(files) ? files.map((file) => file.name).join(", ") : files?.name ?? "";
123
137
  }
138
+ function clear() {
139
+ const event = new Event("clear");
140
+ emit("clear", event);
141
+ if (!props.disabled && !props.readonly && !event.defaultPrevented)
142
+ dropzone.value.clear();
143
+ }
124
144
  return {
125
145
  model,
126
146
  classNames,
127
- getFileNames
147
+ getFileNames,
148
+ clear
128
149
  };
129
150
  }
130
151
  });
@@ -136,10 +157,14 @@ export default defineComponent({
136
157
  @apply p-1;
137
158
 
138
159
  > .btn {
139
- @apply py-0 px-3 h-full items-center;
160
+ @apply py-0 px-3 h-full items-center mr-4;
140
161
  }
141
162
  }
142
163
 
164
+ .input__clear {
165
+ @apply pointer-events-auto;
166
+ }
167
+
143
168
  &--disabled,
144
169
  &:disabled {
145
170
  .input-group__addon,
@@ -22,6 +22,10 @@ declare const _default: import("vue-demi").DefineComponent<{
22
22
  type: StringConstructor;
23
23
  default: string;
24
24
  };
25
+ clearable: {
26
+ type: BooleanConstructor;
27
+ default: boolean;
28
+ };
25
29
  clearOnCancel: {
26
30
  type: BooleanConstructor;
27
31
  default: boolean;
@@ -54,7 +58,8 @@ declare const _default: import("vue-demi").DefineComponent<{
54
58
  model: import("vue-demi").Ref<string | string[] | File | File[]>;
55
59
  classNames: import("vue-demi").ComputedRef<string[]>;
56
60
  getFileNames: (files: Array<globalThis.File> | globalThis.File) => string;
57
- }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
61
+ clear: () => void;
62
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("change" | "update:modelValue" | "cancel" | "clear")[], "change" | "update:modelValue" | "cancel" | "clear", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
58
63
  modelValue: {
59
64
  type: PropType<string | string[] | File | File[]>;
60
65
  default: any;
@@ -75,6 +80,10 @@ declare const _default: import("vue-demi").DefineComponent<{
75
80
  type: StringConstructor;
76
81
  default: string;
77
82
  };
83
+ clearable: {
84
+ type: BooleanConstructor;
85
+ default: boolean;
86
+ };
78
87
  clearOnCancel: {
79
88
  type: BooleanConstructor;
80
89
  default: boolean;
@@ -103,7 +112,12 @@ declare const _default: import("vue-demi").DefineComponent<{
103
112
  type: PropType<SizeVariant>;
104
113
  default: string;
105
114
  };
106
- }>>, {
115
+ }>> & {
116
+ onChange?: (...args: any[]) => any;
117
+ "onUpdate:modelValue"?: (...args: any[]) => any;
118
+ onCancel?: (...args: any[]) => any;
119
+ onClear?: (...args: any[]) => any;
120
+ }, {
107
121
  error: boolean;
108
122
  size: SizeVariant;
109
123
  disabled: boolean;
@@ -115,6 +129,7 @@ declare const _default: import("vue-demi").DefineComponent<{
115
129
  accept: string;
116
130
  maxlength: string | number;
117
131
  clearOnCancel: boolean;
132
+ clearable: boolean;
118
133
  browseLabel: string;
119
134
  }>;
120
135
  export default _default;
@@ -100,15 +100,15 @@ export default defineComponent({
100
100
  }
101
101
 
102
102
  &--md {
103
- @apply text-sm px-3 py-1 rounded-[7px];
103
+ @apply text-sm px-3 py-1 rounded-sm;
104
104
  }
105
105
 
106
106
  &--sm {
107
- @apply text-xs px-2 py-[0.125rem] rounded-[6px];
107
+ @apply text-xs px-2 py-[0.125rem] rounded-xs;
108
108
  }
109
109
 
110
110
  &--xs {
111
- @apply px-2 py-0 text-tn rounded-sm;
111
+ @apply px-2 py-0 text-tn rounded-tn;
112
112
  }
113
113
 
114
114
  /**
@@ -45,7 +45,7 @@ declare const _default: import("vue-demi").DefineComponent<{
45
45
  }, {
46
46
  variant: StyleVariant;
47
47
  size: SizeVariant;
48
- color: ColorVariant;
49
48
  dismissable: boolean;
49
+ color: ColorVariant;
50
50
  }>;
51
51
  export default _default;
@@ -1,30 +1,45 @@
1
1
  <template>
2
- <div class="app">
2
+ <main class="main">
3
3
  <slot />
4
- </div>
4
+ </main>
5
5
  </template>
6
6
 
7
7
  <style lang="postcss">
8
- /**
9
- * Global Styling
10
- *
11
- *
12
- */
13
- .app {
8
+ .main {
14
9
  /**
15
- * Hyperlink
10
+ * Permalink
16
11
  */
17
12
  a {
18
13
  --p-color-primary-hover: darken(theme(backgroundColor.accent.emphasis), 5%);
19
14
  @apply underline text-accent hover:bg-[color:var(--p-color-primary-hover)];
20
15
  }
21
16
 
17
+ /**
18
+ * Paragraph
19
+ */
20
+ p {
21
+ @apply text-base;
22
+ }
23
+
24
+ /**
25
+ * Small
26
+ */
27
+ small {
28
+ @apply text-tn;
29
+ }
30
+
31
+ /**
32
+ * Strong
33
+ */
34
+ strong {
35
+ @apply font-bold;
36
+ }
37
+
22
38
  /**
23
39
  * Caption
24
40
  */
25
41
  caption {
26
42
  @apply text-xs text-muted;
27
43
  }
28
-
29
44
  }
30
45
  </style>
@@ -172,7 +172,7 @@ export default defineComponent({
172
172
  /**
173
173
  * Set modal backdrop
174
174
  */
175
- @apply w-full h-full overflow-y-auto fixed left-0 top-0 bg-emphasis bg-opacity-30 z-[1060] overscroll-contain;
175
+ @apply w-full h-full overflow-y-auto fixed left-0 top-0 bg-emphasis/30 z-[1060] overscroll-contain;
176
176
 
177
177
  &--banner {
178
178
  .modal {
@@ -94,9 +94,9 @@ declare const _default: import("vue-demi").DefineComponent<{
94
94
  banner: boolean;
95
95
  size: SizeVariant;
96
96
  dismissable: boolean;
97
+ text: string;
97
98
  modelValue: boolean;
98
99
  title: string;
99
- text: string;
100
100
  centered: boolean;
101
101
  noCloseOnEsc: boolean;
102
102
  noCloseOnBackdrop: boolean;
@@ -39,8 +39,8 @@ declare const _default: import("vue-demi").DefineComponent<{
39
39
  };
40
40
  }>>, {
41
41
  target: string;
42
- disabled: boolean;
43
- active: boolean;
44
42
  href: string;
43
+ active: boolean;
44
+ disabled: boolean;
45
45
  }>;
46
46
  export default _default;
@@ -88,7 +88,7 @@ export default defineComponent({
88
88
  }
89
89
 
90
90
  &&--shadow {
91
- @apply shadow-sm transition-shadow duration-150 ease-in-out;
91
+ @apply shadow-lg transition-shadow duration-150 ease-in-out;
92
92
  }
93
93
 
94
94
  &&--expand {
@@ -53,7 +53,13 @@ export default defineComponent({
53
53
  .dropdown {
54
54
  &__activator {
55
55
  &.btn {
56
- @apply px-3 border-transparent bg-transparent hover:bg-transparent shadow-none rounded font-normal text-subtle dark:text-muted hover:text-default dark:hover:text-on-emphasis hover:shadow-none hover:border-transparent;
56
+ @apply px-3 bg-transparent hover:bg-transparent shadow-none rounded font-normal text-subtle dark:text-muted hover:text-default dark:hover:text-on-emphasis hover:shadow-none;
57
+ }
58
+
59
+ &:not(.btn--variant-outline) {
60
+ &.btn {
61
+ @apply border-transparent hover:border-transparent;
62
+ }
57
63
  }
58
64
  }
59
65
 
@@ -0,0 +1,101 @@
1
+ <template>
2
+ <div
3
+ class="page"
4
+ data-testid="page"
5
+ :class="classNames">
6
+ <slot />
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ import {
12
+ computed,
13
+ defineComponent
14
+ } from "vue-demi";
15
+ import { useVModel } from "../input";
16
+ export default defineComponent({
17
+ props: {
18
+ expand: {
19
+ type: String,
20
+ default: void 0
21
+ },
22
+ type: {
23
+ type: String,
24
+ default: "narrow"
25
+ },
26
+ modelValue: {
27
+ type: Boolean,
28
+ default: true
29
+ }
30
+ },
31
+ models: {
32
+ prop: "modelValue",
33
+ event: "update:modelValue"
34
+ },
35
+ emits: ["update:modelValue"],
36
+ setup(props) {
37
+ const model = useVModel(props);
38
+ const classNames = computed(() => {
39
+ const result = [""];
40
+ if (props.expand)
41
+ result.push(`page--expand page--expand-${props.expand}`);
42
+ if (props.expand && model.value)
43
+ result.push("page--expanded");
44
+ if (props.type)
45
+ result.push(`page--type-${props.type}`);
46
+ return result;
47
+ });
48
+ return { classNames };
49
+ }
50
+ });
51
+ </script>
52
+
53
+ <style lang="postcss">
54
+ .page {
55
+ @apply w-full;
56
+
57
+ &&--expand {
58
+ &:where(&&-all, &&-lg, &&-md, &&-sm) {
59
+ &:is(.page--expanded) {
60
+ @apply transition-[padding] ease-out delay-75;
61
+
62
+ &.page--type-wide {
63
+ @apply pl-[60px];
64
+ }
65
+
66
+ &.page--type-narrow {
67
+ @apply pl-[230px];
68
+ }
69
+ }
70
+ }
71
+
72
+ &:where(&&-all, &&-lg, &&-md, &&-sm) {
73
+ @apply pl-0 transition-[padding] ease-in delay-75;
74
+ }
75
+
76
+ &&-lg {
77
+ @apply lg:pl-[230px];
78
+
79
+ &:not(.page--type-narrow) {
80
+ @apply lg:pl-[60px];
81
+ }
82
+ }
83
+
84
+ &&-md {
85
+ @apply md:pl-[230px];
86
+
87
+ &:not(.page--type-narrow) {
88
+ @apply md:pl-[60px];
89
+ }
90
+ }
91
+
92
+ &&-sm {
93
+ @apply sm:pl-[230px];
94
+
95
+ &:not(.page--type-narrow) {
96
+ @apply sm:pl-[60px];
97
+ }
98
+ }
99
+ }
100
+ }
101
+ </style>
@@ -0,0 +1,39 @@
1
+ import { PropType } from 'vue-demi';
2
+ import { ToggleableVariant } from '../navbar';
3
+ import { TypeVariant } from '../sidebar';
4
+ declare const _default: import("vue-demi").DefineComponent<{
5
+ expand: {
6
+ type: PropType<ToggleableVariant>;
7
+ default: any;
8
+ };
9
+ type: {
10
+ type: PropType<TypeVariant>;
11
+ default: string;
12
+ };
13
+ modelValue: {
14
+ type: BooleanConstructor;
15
+ default: boolean;
16
+ };
17
+ }, {
18
+ classNames: import("vue-demi").ComputedRef<string[]>;
19
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
20
+ expand: {
21
+ type: PropType<ToggleableVariant>;
22
+ default: any;
23
+ };
24
+ type: {
25
+ type: PropType<TypeVariant>;
26
+ default: string;
27
+ };
28
+ modelValue: {
29
+ type: BooleanConstructor;
30
+ default: boolean;
31
+ };
32
+ }>> & {
33
+ "onUpdate:modelValue"?: (...args: any[]) => any;
34
+ }, {
35
+ type: TypeVariant;
36
+ modelValue: boolean;
37
+ expand: ToggleableVariant;
38
+ }>;
39
+ export default _default;
@@ -0,0 +1,134 @@
1
+ <template>
2
+ <div
3
+ data-testid="pdf-helipad"
4
+ class="pdf-helipad"
5
+ :class="classNames">
6
+ <div
7
+ ref="object"
8
+ data-testid="pdf-helipad-object"
9
+ class="pdf-object pdf-object--external"
10
+ :style="{ width: `${width}px`, height: `${height}px` }">
11
+ <div class="pdf-object__container">
12
+ <slot />
13
+ </div>
14
+ </div>
15
+ <div
16
+ class="pdf-object pdf-object--external pdf-helipad__ghost"
17
+ :style="{ width: `${width}px`, height: `${height}px` }">
18
+ <div class="pdf-object__container">
19
+ <slot />
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <script>
26
+ import { templateRef } from "@vueuse/core";
27
+ import {
28
+ computed,
29
+ defineComponent,
30
+ ref,
31
+ toRef,
32
+ watch,
33
+ watchEffect
34
+ } from "vue-demi";
35
+ import { getPosition } from "../pdf-object/utils/position";
36
+ import useDrag from "./utils/use-drag";
37
+ export default defineComponent({
38
+ props: {
39
+ scale: {
40
+ type: Number,
41
+ default: 1
42
+ },
43
+ width: {
44
+ type: Number,
45
+ default: 198
46
+ },
47
+ height: {
48
+ type: Number,
49
+ default: 106
50
+ },
51
+ disabled: {
52
+ type: Boolean,
53
+ default: false
54
+ }
55
+ },
56
+ emits: ["landed"],
57
+ setup(props, { emit }) {
58
+ const object = templateRef("object");
59
+ const scale = toRef(props, "scale");
60
+ const width = toRef(props, "width");
61
+ const height = toRef(props, "height");
62
+ const isDragged = ref(false);
63
+ const x = ref(0);
64
+ const y = ref(0);
65
+ const classNames = computed(() => {
66
+ const result = [];
67
+ if (props.disabled)
68
+ result.push("pdf-helipad--disabled");
69
+ return result;
70
+ });
71
+ const draggable = useDrag(object, {
72
+ onstart() {
73
+ const { left, top } = object.value.getBoundingClientRect();
74
+ isDragged.value = true;
75
+ x.value = left;
76
+ y.value = top;
77
+ },
78
+ onmove(event) {
79
+ x.value = event.clientX - event.rect.width * scale.value / 2;
80
+ y.value = event.clientY - event.rect.height * scale.value / 2;
81
+ },
82
+ onend(event) {
83
+ if (event.relatedTarget) {
84
+ const reference = event.relatedTarget;
85
+ const container = reference.closest(".pdf-objects");
86
+ const result = getPosition({
87
+ reference,
88
+ container,
89
+ object: object.value,
90
+ scale: scale.value
91
+ });
92
+ emit("landed", {
93
+ ...result,
94
+ width: width.value,
95
+ height: height.value
96
+ });
97
+ }
98
+ isDragged.value = false;
99
+ }
100
+ });
101
+ watchEffect(() => {
102
+ if (object.value) {
103
+ if (isDragged.value) {
104
+ object.value.style.position = "fixed";
105
+ object.value.style.transform = `translate(${x.value}px, ${y.value}px) scale(${scale.value})`;
106
+ object.value.style.zIndex = "50";
107
+ } else {
108
+ object.value.style.position = "absolute";
109
+ object.value.style.transform = "translate(0px, 0px)";
110
+ object.value.style.zIndex = "2";
111
+ }
112
+ }
113
+ });
114
+ watch(() => props.disabled, (isDisabled) => {
115
+ draggable.value = !isDisabled;
116
+ }, { immediate: true });
117
+ return { classNames };
118
+ }
119
+ });
120
+ </script>
121
+
122
+ <style lang="postcss">
123
+ .pdf-helipad {
124
+ @apply relative inline-block;
125
+
126
+ &__ghost {
127
+ @apply opacity-25 z-1 touch-none pointer-events-none;
128
+ }
129
+
130
+ &&--disabled {
131
+ @apply opacity-50;
132
+ }
133
+ }
134
+ </style>
@@ -0,0 +1,45 @@
1
+ declare const _default: import("vue-demi").DefineComponent<{
2
+ scale: {
3
+ type: NumberConstructor;
4
+ default: number;
5
+ };
6
+ width: {
7
+ type: NumberConstructor;
8
+ default: number;
9
+ };
10
+ height: {
11
+ type: NumberConstructor;
12
+ default: number;
13
+ };
14
+ disabled: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
18
+ }, {
19
+ classNames: import("vue-demi").ComputedRef<string[]>;
20
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "landed"[], "landed", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
21
+ scale: {
22
+ type: NumberConstructor;
23
+ default: number;
24
+ };
25
+ width: {
26
+ type: NumberConstructor;
27
+ default: number;
28
+ };
29
+ height: {
30
+ type: NumberConstructor;
31
+ default: number;
32
+ };
33
+ disabled: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
37
+ }>> & {
38
+ onLanded?: (...args: any[]) => any;
39
+ }, {
40
+ disabled: boolean;
41
+ width: number;
42
+ height: number;
43
+ scale: number;
44
+ }>;
45
+ export default _default;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1706.667" height="853.333" preserveAspectRatio="xMidYMid meet" version="1.0" viewBox="0 0 1280 640"><metadata>Created by potrace 1.15, written by Peter Selinger 2001-2017</metadata><g fill="#000" stroke="none"><path d="M11181 5765 c-35 -8 -98 -25 -140 -39 -74 -24 -313 -90 -456 -126 -38 -10 -149 -39 -245 -64 -190 -50 -196 -52 -475 -127 -104 -28 -224 -59 -265 -69 -103 -24 -350 -87 -435 -110 -119 -33 -187 -51 -270 -71 -44 -10 -102 -25 -130 -33 -27 -8 -113 -31 -190 -51 -77 -21 -178 -48 -225 -61 -47 -12 -130 -35 -185 -49 -55 -15 -113 -31 -130 -35 -74 -20 -244 -65 -400 -105 -93 -24 -197 -51 -230 -60 -213 -57 -536 -139 -830 -210 -104 -25 -218 -53 -253 -62 -49 -13 -68 -14 -88 -4 -18 8 -36 8 -62 1 -38 -10 -125 -30 -224 -51 -50 -10 -60 -10 -75 3 -29 26 -92 38 -199 38 -175 0 -339 -39 -408 -97 -29 -24 -34 -25 -106 -18 -129 13 -202 11 -238 -9 -31 -16 -46 -16 -160 -7 -70 6 -181 15 -247 21 -66 5 -237 23 -380 40 -143 17 -386 44 -540 60 -154 16 -320 34 -370 40 -49 6 -175 19 -280 30 -448 45 -1141 121 -1275 139 -213 29 -316 40 -505 56 -464 39 -744 66 -880 85 -38 5 -116 12 -171 16 -99 6 -102 6 -109 -16 -4 -14 -2 -27 6 -36 9 -8 124 -25 344 -49 605 -65 1244 -135 1895 -206 1352 -146 1580 -171 2115 -229 303 -33 553 -60 556 -60 3 0 11 -11 17 -25 8 -18 19 -25 40 -25 16 0 31 -3 34 -6 4 -3 53 -6 111 -7 123 -2 133 -8 179 -103 43 -90 38 -108 -47 -166 -67 -46 -104 -80 -123 -114 -5 -10 -52 -27 -121 -45 -204 -52 -330 -129 -564 -348 l-88 -82 -62 3 c-42 2 -65 -1 -72 -10 -7 -9 -43 -15 -101 -17 -50 -2 -102 -9 -118 -14 -15 -6 -66 -20 -114 -31 -48 -12 -116 -28 -151 -36 -77 -18 -117 -38 -152 -75 -34 -36 -44 -36 -58 -1 -6 15 -23 41 -37 57 l-25 30 21 -42 c30 -63 26 -77 -32 -119 -64 -45 -271 -227 -543 -477 -11 -11 -89 -80 -172 -155 -84 -74 -153 -139 -153 -144 0 -16 -19 -8 -25 12 -11 33 -41 23 -89 -31 -44 -49 -56 -81 -18 -46 23 21 32 21 32 0 0 -9 -46 -64 -103 -122 -127 -131 -162 -193 -162 -292 0 -59 4 -72 34 -116 52 -76 181 -151 364 -212 105 -35 473 -95 677 -111 69 -5 270 -10 447 -10 197 0 324 -4 328 -10 9 -14 -7 -17 -238 -36 -43 -4 -80 -11 -83 -15 -8 -14 35 -49 61 -49 17 0 46 -19 89 -59 35 -32 74 -62 87 -65 70 -19 99 -30 99 -37 0 -11 -20 -15 -200 -33 -363 -38 -500 -56 -500 -67 0 -11 54 -39 77 -39 10 0 43 -25 73 -55 40 -40 62 -55 82 -55 28 0 122 -33 238 -83 73 -32 218 -86 282 -106 92 -29 236 -28 518 4 124 14 286 32 360 40 74 8 176 19 225 25 50 5 128 14 175 20 47 5 159 17 250 26 91 8 201 19 245 24 215 23 287 30 370 35 273 15 1193 76 1211 80 35 8 42 56 10 68 -6 3 -200 -8 -431 -24 -427 -29 -543 -33 -582 -23 -23 6 -42 43 -46 89 -2 27 1 30 38 37 63 12 422 37 898 62 435 24 467 28 467 61 0 35 -24 38 -238 26 -248 -14 -349 -16 -422 -6 -51 6 -57 10 -77 44 -34 59 -99 358 -87 401 4 14 6 35 5 47 -1 13 5 23 16 27 10 3 27 20 36 36 16 27 17 31 2 36 -8 4 -35 3 -60 0 -44 -7 -44 -7 -60 30 -9 21 -13 44 -11 51 6 14 159 92 500 253 236 111 241 113 405 147 91 18 218 42 282 53 64 11 128 24 141 29 14 5 105 26 204 46 165 33 350 73 1494 325 626 138 1309 286 1479 321 l155 32 22 -27 c13 -14 26 -26 29 -26 9 0 75 -50 100 -75 43 -43 224 -188 309 -249 40 -28 68 -59 103 -117 43 -71 53 -81 104 -103 32 -14 104 -37 161 -51 56 -15 150 -40 207 -56 111 -31 170 -39 116 -15 -16 7 -59 20 -95 30 -121 32 -235 68 -244 77 -17 15 26 50 119 96 50 25 91 47 93 48 3 3 -34 104 -68 185 -46 107 -150 375 -150 385 0 10 112 38 206 52 38 6 80 40 89 72 l7 24 -161 -7 c-139 -6 -161 -5 -161 8 0 8 17 84 39 168 21 84 59 241 85 348 26 107 50 209 55 225 8 26 49 191 122 489 10 44 19 83 19 88 0 4 -36 8 -80 8 l-80 0 -14 35 c-27 63 -66 56 -66 -12 0 -30 -3 -33 -29 -33 -16 0 -38 -8 -49 -17 -17 -16 -131 -265 -132 -289 -1 -5 -9 -27 -20 -49 -11 -22 -19 -43 -20 -47 0 -4 -13 -35 -29 -70 -48 -104 -68 -152 -76 -178 -4 -14 -11 -30 -16 -36 -5 -6 -15 -28 -23 -50 -7 -21 -23 -59 -34 -84 -11 -25 -36 -85 -57 -135 -20 -49 -49 -119 -64 -155 l-27 -65 -90 -7 c-49 -4 -168 -11 -264 -17 -97 -5 -188 -15 -204 -21 -25 -9 -32 -7 -60 18 -38 34 -204 208 -307 323 -89 98 -118 117 -153 101 -14 -6 -32 -23 -42 -36 -15 -24 -15 -29 1 -68 20 -51 43 -78 208 -248 86 -88 125 -136 119 -142 -6 -6 -109 -14 -229 -19 -120 -5 -294 -13 -388 -19 -93 -5 -318 -17 -500 -25 -325 -14 -530 -26 -835 -46 -241 -15 -535 -29 -772 -36 l-216 -6 -22 44 c-22 44 -58 89 -70 89 -4 0 -73 36 -155 81 -82 44 -176 93 -210 109 -71 34 -204 107 -225 124 -35 29 -85 37 -275 44 l-199 7 -13 44 c-14 48 -38 81 -60 81 -8 0 -32 -9 -54 -21 -39 -19 -42 -19 -60 -3 -10 9 -24 32 -31 52 l-13 34 -305 -7 c-168 -4 -323 -10 -345 -15 -98 -20 -275 -33 -298 -23 -12 6 -29 13 -38 16 -19 6 -29 72 -29 188 0 49 4 80 13 87 6 5 379 107 827 227 1672 445 2513 674 3090 842 162 47 385 110 495 140 110 29 247 69 305 87 120 39 261 79 475 134 165 44 343 96 351 105 17 17 -37 97 -64 96 -9 0 -46 -7 -81 -14z m-4467 -3956 c42 -33 33 -46 -36 -53 -35 -4 -78 -9 -95 -13 -26 -4 -33 -2 -33 12 0 10 22 27 63 45 34 16 65 29 68 30 4 0 18 -9 33 -21z m211 -135 c0 -11 5 -27 12 -35 11 -14 38 -118 68 -264 11 -53 14 -99 10 -137 -8 -68 6 -62 -205 -78 -74 -5 -186 -15 -248 -21 -62 -6 -116 -8 -120 -4 -4 4 -9 91 -12 193 -3 103 -8 192 -12 198 -4 6 -3 39 3 73 9 50 15 62 33 65 11 3 102 10 201 16 99 6 191 13 205 14 50 6 65 2 65 -20z m-577 -102 c3 -99 9 -95 -158 -112 -120 -11 -233 -24 -360 -40 -41 -5 -127 -14 -190 -20 -63 -6 -124 -13 -136 -15 -29 -6 -54 63 -35 98 11 21 32 27 194 56 100 18 198 37 217 42 147 37 262 61 337 68 137 13 128 19 131 -77z m-9 -190 c9 -16 16 -72 19 -143 4 -106 2 -117 -14 -123 -10 -4 -93 -11 -184 -16 -91 -6 -235 -17 -320 -25 -85 -9 -184 -15 -220 -13 l-65 3 -27 55 c-34 67 -54 179 -35 196 6 6 91 18 187 28 96 10 261 28 365 40 265 32 277 32 294 -2z m-1469 -51 c0 -5 -9 -13 -20 -16 -32 -10 -23 -33 20 -55 46 -23 49 -38 16 -69 -20 -19 -47 -25 -192 -41 -93 -11 -216 -26 -274 -34 -99 -13 -108 -12 -155 6 -69 27 -85 44 -85 90 0 33 5 41 33 58 43 27 54 25 72 -10 21 -40 48 -38 73 4 25 42 31 43 253 60 213 17 259 18 259 7z m553 -96 c17 -70 16 -154 -2 -184 -7 -10 -62 -19 -188 -32 -98 -10 -193 -19 -210 -19 l-33 0 0 81 c0 44 5 90 11 102 9 16 9 22 0 25 -17 6 -13 27 7 45 12 11 52 20 123 28 57 6 131 14 164 19 108 14 108 14 128 -65z m-1349 9 c3 -9 6 -25 6 -35 0 -18 -6 -20 -51 -17 -55 3 -78 21 -66 52 9 23 102 23 111 0z m849 -184 c6 -48 5 -66 -5 -72 -7 -5 -78 -7 -158 -5 -123 4 -156 8 -219 30 -40 14 -76 29 -80 32 -17 18 45 33 205 49 97 10 188 22 203 26 41 13 45 8 54 -60z m1447 -49 c0 -40 -19 -90 -39 -100 -18 -10 -24 -11 -586 -71 -382 -41 -671 -70 -692 -70 -18 0 -44 69 -41 105 l3 30 110 12 c143 16 482 51 665 68 80 8 195 19 255 25 61 6 152 15 204 20 52 6 96 12 99 15 10 10 22 -8 22 -34z m-2008 -20 c202 -81 291 -101 441 -101 l127 0 0 -30 c0 -17 -6 -46 -14 -65 -11 -26 -23 -36 -53 -44 -82 -21 -474 -53 -591 -49 -116 4 -119 5 -214 51 -54 26 -101 47 -106 47 -20 0 -128 53 -149 73 -15 13 -23 32 -23 54 0 31 4 36 46 54 25 12 86 25 137 30 51 5 124 13 162 18 39 4 80 9 92 10 13 0 78 -21 145 -48z m-678 -37 c16 -42 8 -54 -37 -54 -46 0 -67 13 -67 41 0 28 94 40 104 13z" transform="translate(0.000000,640.000000) scale(0.100000,-0.100000)"/></g></svg>