playbook_ui 13.32.0.pre.alpha.PLAY14103236 → 13.32.0.pre.alpha.play1416movealiaslogic3239

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfcc3d00f2ba85516f391b73f539917fe75b524bf076df79aab7cae826e31da9
4
- data.tar.gz: f5cd5f8e5eec0305a9e2664d9297ccc8c5175985d8f170c489ce0a6848c993fb
3
+ metadata.gz: 38d2ad5fae80d023caae7a74a96bf549e74693d82376000d2d056ecdd94e5948
4
+ data.tar.gz: c3de45c50a99868c1a157179eb8912acfd173337bd94af3eb166c42d01c051ac
5
5
  SHA512:
6
- metadata.gz: 14fb1e5915b55f24b752cf67fe0618f245c672072a2ca5bbf845c91bb983e9e6f593e9d910294852d3e924bb5df821eba923d10d6da9527aaebc2ef36e1d6b86
7
- data.tar.gz: 945a1394b31fba92c98aa5a8fc46d722482ed1f1fbc87bdb2494c63c106587326ec69b3b8338616aa17862251f5b82f08b2a4403b5c4be764f94b2c26aea56dd
6
+ metadata.gz: e83a30785c99181d6f62a6632ad1d52c6c7970f8a53dd42e01041814fe5c9f09ee969aa0c2a39b180b20f565492c096e94744ce3149cf407c8c2ed09c99636ec
7
+ data.tar.gz: 37992e6abfc459bdb39b5a62292a43c3d49a79e17261136c955929836de307c9677653338fe9635c619dc0314ca69b498348cbacea044279d1dd924e5edac86f
@@ -78,7 +78,7 @@ test('returns correct icon', () => {
78
78
  expect(screen.getByTestId('test-cell').querySelector('.pb_icon_kit')).toHaveClass('fa-mobile')
79
79
  expect(screen.getByTestId('test-home').querySelector('.pb_icon_kit')).toHaveClass('fa-phone')
80
80
  expect(screen.getByTestId('test-work').querySelector('.pb_icon_kit')).toHaveClass('fa-phone-office')
81
- // expect(screen.getByTestId('test-work-cell').querySelector('.pb_icon_kit')).toHaveClass('fa-phone-laptop')
81
+ expect(screen.getByTestId('test-work-cell').querySelector('.pb_icon_kit')).toHaveClass('fa-phone-laptop')
82
82
  expect(screen.getByTestId('test-email').querySelector('.pb_icon_kit')).toHaveClass('fa-envelope')
83
83
  expect(screen.getByTestId('test-wrong-phone').querySelector('.pb_icon_kit')).toHaveClass('fa-phone-slash')
84
84
  expect(screen.getByTestId('test-wrong-type').querySelector('.pb_icon_kit')).toHaveClass('fa-phone')
@@ -3,7 +3,6 @@ import classnames from 'classnames'
3
3
  import { buildAriaProps, buildDataProps, buildHtmlProps } from '../utilities/props'
4
4
  import { GlobalProps, globalProps } from '../utilities/globalProps'
5
5
  import { isValidEmoji } from '../utilities/validEmojiChecker'
6
- import aliasesJson from './icon_aliases.json'
7
6
 
8
7
  export type IconSizes = "lg"
9
8
  | "xs"
@@ -41,19 +40,6 @@ type IconProps = {
41
40
  spin?: boolean,
42
41
  } & GlobalProps
43
42
 
44
- type AliasType = string | string[];
45
-
46
- interface Aliases {
47
- [key: string]: AliasType;
48
- }
49
-
50
- interface AliasesJson {
51
- aliases: Aliases;
52
- }
53
-
54
- const aliases: AliasesJson = aliasesJson;
55
-
56
-
57
43
  const flipMap = {
58
44
  horizontal: 'fa-flip-horizontal',
59
45
  vertical: 'fa-flip-vertical',
@@ -66,22 +52,6 @@ declare global {
66
52
  var PB_ICONS: {[key: string]: React.FunctionComponent<any>}
67
53
  }
68
54
 
69
- // Resolve alias function
70
- const resolveAlias = (icon: string): string => {
71
- const alias = aliases.aliases[icon];
72
-
73
- if (alias) {
74
- if (Array.isArray(alias)) {
75
- return alias[0];
76
- } else {
77
- return alias;
78
- }
79
- }
80
-
81
- return icon;
82
- };
83
-
84
-
85
55
  const Icon = (props: IconProps) => {
86
56
  const {
87
57
  aria = {},
@@ -104,8 +74,7 @@ const Icon = (props: IconProps) => {
104
74
  spin = false,
105
75
  } = props
106
76
 
107
- const resolvedIcon = resolveAlias(icon as string)
108
- let iconElement: ReactSVGElement | null = typeof(resolvedIcon) === "object" ? resolvedIcon : null
77
+ let iconElement: ReactSVGElement | null = typeof(icon) === "object" ? icon : null
109
78
 
110
79
  const faClasses = {
111
80
  'fa-border': border,
@@ -121,12 +90,12 @@ const Icon = (props: IconProps) => {
121
90
 
122
91
  if (!customIcon && !iconElement) {
123
92
  const PowerIcon: React.FunctionComponent<any> | undefined =
124
- window.PB_ICONS ? window.PB_ICONS[resolvedIcon as string] : null
93
+ window.PB_ICONS ? window.PB_ICONS[icon as string] : null
125
94
 
126
95
  if (PowerIcon) {
127
96
  iconElement = <PowerIcon /> as ReactSVGElement
128
97
  } else {
129
- faClasses[`fa-${resolvedIcon}`] = resolvedIcon as string
98
+ faClasses[`fa-${icon}`] = icon as string
130
99
  }
131
100
  }
132
101
 
@@ -146,7 +115,7 @@ const Icon = (props: IconProps) => {
146
115
  className
147
116
  )
148
117
 
149
- aria.label ? null : aria.label = `${resolvedIcon} icon`
118
+ aria.label ? null : aria.label = `${icon} icon`
150
119
  const ariaProps: {[key: string]: any} = buildAriaProps(aria)
151
120
  const dataProps: {[key: string]: any} = buildDataProps(data)
152
121
  const htmlProps = buildHtmlProps(htmlOptions)
@@ -168,7 +137,7 @@ const Icon = (props: IconProps) => {
168
137
  }
169
138
  </>
170
139
  )
171
- else if (isValidEmoji(resolvedIcon as string))
140
+ else if (isValidEmoji(icon as string))
172
141
  return (
173
142
  <>
174
143
  <span
@@ -177,7 +146,7 @@ const Icon = (props: IconProps) => {
177
146
  className={classesEmoji}
178
147
  id={id}
179
148
  >
180
- {resolvedIcon}
149
+ {icon}
181
150
  </span>
182
151
  </>
183
152
  )
@@ -39,8 +39,6 @@ module Playbook
39
39
  prop :spin, type: Playbook::Props::Boolean,
40
40
  default: false
41
41
 
42
- ALIASES = JSON.parse(File.read(Playbook::Engine.root.join("app/pb_kits/playbook/pb_icon/icon_aliases.json")))["aliases"].freeze
43
-
44
42
  def valid_emoji?
45
43
  emoji_regex = /\p{Emoji}/
46
44
  emoji_regex.match?(icon)
@@ -82,6 +80,14 @@ module Playbook
82
80
  )
83
81
  end
84
82
 
83
+ def icon_alias_map
84
+ return unless Rails.application.config.respond_to?(:icon_alias_path)
85
+
86
+ base_path = Rails.application.config.icon_alias_path
87
+ json = File.read(Rails.root.join(base_path))
88
+ JSON.parse(json)["aliases"].freeze
89
+ end
90
+
85
91
  def asset_path
86
92
  return unless Rails.application.config.respond_to?(:icon_path)
87
93
 
@@ -111,7 +117,7 @@ module Playbook
111
117
  private
112
118
 
113
119
  def resolve_alias(icon)
114
- aliases = ALIASES[icon]
120
+ aliases = icon_alias_map[icon]
115
121
  return icon unless aliases
116
122
 
117
123
  if aliases.is_a?(Array)
@@ -1,20 +1,13 @@
1
1
  {
2
2
  "aliases": {
3
- "angles-down": "angle-double-down",
4
- "arrow-alt-circle-left": "circle-left",
5
3
  "arrow-alt-circle-right": "circle-right",
4
+ "angles-down": "angle-double-down",
6
5
  "arrow-alt-down": "down",
7
6
  "arrow-alt-up": "up",
8
- "arrow-circle-down": "circle-down-arrow",
9
7
  "arrow-right-long": "long-arrow-right",
10
8
  "arrow-to-bottom": "arrow-down-to-line",
11
9
  "arrows-h": "arrows-left-right",
12
- "backward-step": "step-backward",
13
10
  "calendar-days": "calendar-alt",
14
- "chevrondown": "chevron-down",
15
- "chevrons-down": "chevron-double-down",
16
- "chevrons-left": "chevron-double-left",
17
- "chevrons-right": "chevron-double-right",
18
11
  "circle-arrow-right": "arrow-circle-right",
19
12
  "clock-rotate-left": "history",
20
13
  "close": [
@@ -25,37 +18,22 @@
25
18
  "exclamation-circle": "circle-exclamation",
26
19
  "external-link": "arrow-up-right-from-square",
27
20
  "file-lines": "file-alt",
28
- "floppy-disk": "save",
29
- "forward-step": "step-forward",
30
21
  "gear": "cog",
31
- "hand-holding-dollar": "hand-holding-usd",
32
22
  "home": "house",
33
23
  "info-circle": "circle-info",
34
- "location-pin": "map-marker",
35
24
  "map-o": "map",
36
25
  "message": "comment-alt",
37
26
  "minus-circle": "circle-minus",
38
- "mobile-screen-button": "mobile-alt",
39
27
  "money": "money-bill",
40
28
  "mouse-pointer": "arrow-pointer",
41
29
  "nitro": "nitro-n",
42
- "phone-laptop": "laptop-mobile",
43
30
  "play-circle": "circle-play",
44
31
  "plus-circle": "circle-plus",
45
32
  "plus-square": "square-plus",
46
33
  "powergon": "powergon-p",
47
34
  "question-circle": "circle-question",
48
35
  "roofing": "product-roofing",
49
- "scissors": "shelves",
50
36
  "shelves": "inventory",
51
- "shield-alt": "shield-halved",
52
- "shuffle": "random",
53
- "th-large": "table-cells-large",
54
- "th-list": "table-list",
55
- "thumbs-o-down": "thumbs-down",
56
- "unlock": "lock-unlocked",
57
- "unlock-keyhole": "lock-keyhole-unlocked",
58
- "unlock-alt": "lock-keyhole-unlocked",
59
- "usd-circle": "circle-dollar"
37
+ "th-list": "table-list"
60
38
  }
61
39
  }